From 1014b82c22405a6e57ef82d6323e07616e675621 Mon Sep 17 00:00:00 2001 From: Mausham Date: Wed, 10 Dec 2025 18:02:47 -0800 Subject: [PATCH] Initial commit --- .gitattributes | 2 + .gitignore | 75 + .vscode/extensions.json | 5 + .vscode/launch.json | 10 + .vscode/settings.json | 71 + .vsconfig | 6 + AGENTS.md | 14 + Assets/GameInputs.cs | 1240 +++++++++++ Assets/GameInputs.cs.meta | 2 + Assets/GameInputs.inputactions | 612 ++++++ Assets/GameInputs.inputactions.meta | 14 + Assets/Readme.asset | 34 + Assets/Readme.asset.meta | 8 + Assets/Resources.meta | 8 + Assets/Resources/Materials.meta | 8 + Assets/Resources/Materials/Green.mat | 138 ++ Assets/Resources/Materials/Green.mat.meta | 8 + Assets/Resources/Materials/Red.mat | 138 ++ Assets/Resources/Materials/Red.mat.meta | 8 + Assets/Resources/Materials/Tower.mat | 138 ++ Assets/Resources/Materials/Tower.mat.meta | 8 + Assets/Resources/Models.meta | 8 + Assets/Resources/Models/FBX.meta | 8 + Assets/Resources/Models/FBX/Slices.fbx | Bin 0 -> 18892 bytes Assets/Resources/Models/FBX/Slices.fbx.meta | 109 + Assets/Resources/PlatformPrefabs.meta | 8 + .../PlatformPrefabs/PlatformPiece (1).prefab | 1073 ++++++++++ .../PlatformPiece (1).prefab.meta | 7 + .../PlatformPrefabs/PlatformPiece (2).prefab | 1073 ++++++++++ .../PlatformPiece (2).prefab.meta | 7 + .../PlatformPrefabs/PlatformPiece (3).prefab | 1073 ++++++++++ .../PlatformPiece (3).prefab.meta | 7 + .../PlatformPrefabs/PlatformPiece (4).prefab | 1073 ++++++++++ .../PlatformPiece (4).prefab.meta | 7 + .../PlatformPrefabs/PlatformPiece (5).prefab | 1073 ++++++++++ .../PlatformPiece (5).prefab.meta | 7 + .../PlatformPrefabs/PlatformPiece.prefab | 1073 ++++++++++ .../PlatformPrefabs/PlatformPiece.prefab.meta | 7 + Assets/Resources/Soccer Ball.meta | 8 + Assets/Resources/Soccer Ball/Materials.meta | 9 + .../Materials/Black-Ball-Material.mat | 141 ++ .../Materials/Black-Ball-Material.mat.meta | 15 + .../Materials/White-Ball-Material.mat | 141 ++ .../Materials/White-Ball-Material.mat.meta | 15 + Assets/Resources/Soccer Ball/Meshes.meta | 9 + .../Soccer Ball/Meshes/Soccer Ball Mesh.fbx | Bin 0 -> 20956 bytes .../Meshes/Soccer Ball Mesh.fbx.meta | 87 + Assets/Resources/Soccer Ball/Prefabs.meta | 9 + .../Soccer Ball/Prefabs/Soccer Ball.prefab | 115 + .../Prefabs/Soccer Ball.prefab.meta | 15 + Assets/Resources/Soccer Ball/Textures.meta | 9 + .../Textures/Soccer Ball Normal Map.png | Bin 0 -> 532887 bytes .../Textures/Soccer Ball Normal Map.png.meta | 83 + Assets/Scenes.meta | 8 + Assets/Scenes/SampleScene.unity | 953 +++++++++ Assets/Scenes/SampleScene.unity.meta | 7 + Assets/Scripts.meta | 8 + Assets/Scripts/IInputReader.cs | 6 + Assets/Scripts/IInputReader.cs.meta | 2 + Assets/Scripts/InputReader.cs | 26 + Assets/Scripts/InputReader.cs.meta | 2 + Assets/Scripts/LifeTimeScope.meta | 8 + .../LifeTimeScope/GameLifeTimeScope.cs | 22 + .../LifeTimeScope/GameLifeTimeScope.cs.meta | 2 + Assets/Scripts/PlatformScript.meta | 8 + Assets/Scripts/PlatformScript/Platform.cs | 27 + .../Scripts/PlatformScript/Platform.cs.meta | 2 + .../Scripts/PlatformScript/PlatformManager.cs | 38 + .../PlatformScript/PlatformManager.cs.meta | 2 + Assets/Scripts/PlatformScript/PlatformPool.cs | 52 + .../PlatformScript/PlatformPool.cs.meta | 2 + Assets/Scripts/PlayerScript.meta | 8 + Assets/Scripts/PlayerScript/JumpingBall.cs | 25 + .../Scripts/PlayerScript/JumpingBall.cs.meta | 2 + Assets/Settings.meta | 8 + Assets/Settings/DefaultVolumeProfile.asset | 986 +++++++++ .../Settings/DefaultVolumeProfile.asset.meta | 8 + Assets/Settings/Mobile_RPAsset.asset | 143 ++ Assets/Settings/Mobile_RPAsset.asset.meta | 8 + Assets/Settings/Mobile_Renderer.asset | 52 + Assets/Settings/Mobile_Renderer.asset.meta | 8 + Assets/Settings/PC_RPAsset.asset | 143 ++ Assets/Settings/PC_RPAsset.asset.meta | 8 + Assets/Settings/PC_Renderer.asset | 95 + Assets/Settings/PC_Renderer.asset.meta | 8 + Assets/Settings/SampleSceneProfile.asset | 159 ++ Assets/Settings/SampleSceneProfile.asset.meta | 8 + ...niversalRenderPipelineGlobalSettings.asset | 387 ++++ ...salRenderPipelineGlobalSettings.asset.meta | 8 + Assets/TutorialInfo.meta | 8 + Assets/TutorialInfo/Icons.meta | 9 + Assets/TutorialInfo/Icons/URP.png | Bin 0 -> 24069 bytes Assets/TutorialInfo/Icons/URP.png.meta | 134 ++ Assets/TutorialInfo/Layout.wlt | 654 ++++++ Assets/TutorialInfo/Layout.wlt.meta | 8 + Assets/TutorialInfo/Scripts.meta | 9 + Assets/TutorialInfo/Scripts/Editor.meta | 9 + .../Scripts/Editor/ReadmeEditor.cs | 242 +++ .../Scripts/Editor/ReadmeEditor.cs.meta | 12 + Assets/TutorialInfo/Scripts/Readme.cs | 16 + Assets/TutorialInfo/Scripts/Readme.cs.meta | 12 + ComputeCommandBuffer.cs | 1012 +++++++++ HelixJump.slnx | 5 + IBaseCommandBuffer.cs | 406 ++++ IComputeCommandBuffer.cs | 641 ++++++ IRasterCommandBuffer.cs | 424 ++++ IUnsafeCommandBuffer.cs | 489 +++++ .../com.merry-yellow.code-assist/CHANGELOG.md | 304 +++ .../CHANGELOG.md.meta | 7 + .../com.merry-yellow.code-assist/Editor.meta | 8 + .../Editor/AboutWindow.cs | 75 + .../Editor/AboutWindow.cs.meta | 11 + .../Editor/AnalyzerPostProcessor.cs | 87 + .../Editor/AnalyzerPostProcessor.cs.meta | 11 + .../Editor/Assister.cs | 609 ++++++ .../Editor/Assister.cs.meta | 11 + .../Editor/Cleanup.cs | 390 ++++ .../Editor/Cleanup.cs.meta | 11 + .../Editor/EditorCoroutines.meta | 8 + .../EditorCoroutines/EditorCoroutine.cs | 157 ++ .../EditorCoroutines/EditorCoroutine.cs.meta | 11 + .../EditorCoroutineUtility.cs | 128 ++ .../EditorCoroutineUtility.cs.meta | 11 + .../EditorCoroutines/EditorWaitForSeconds.cs | 49 + .../EditorWaitForSeconds.cs.meta | 11 + .../EditorWindowCoroutineExtension.cs | 109 + .../EditorWindowCoroutineExtension.cs.meta | 11 + .../Editor/ExternalReferences.meta | 8 + .../Meryel.UnityCodeAssist.AnalyzersLite.dll | Bin 0 -> 56832 bytes ...yel.UnityCodeAssist.AnalyzersLite.dll.meta | 69 + .../Meryel.UnityCodeAssist.Common.dll | Bin 0 -> 35328 bytes .../Meryel.UnityCodeAssist.Common.dll.meta | 69 + .../Meryel.UnityCodeAssist.Completion.dll | Bin 0 -> 31744 bytes ...Meryel.UnityCodeAssist.Completion.dll.meta | 43 + ...el.UnityCodeAssist.CompletionInternals.dll | Bin 0 -> 74752 bytes ...ityCodeAssist.CompletionInternals.dll.meta | 43 + .../Meryel.UnityCodeAssist.Logger.dll | Bin 0 -> 30720 bytes .../Meryel.UnityCodeAssist.Logger.dll.meta | 33 + ...ssist.MQTTnet.Extensions.ManagedClient.dll | Bin 0 -> 49664 bytes ....MQTTnet.Extensions.ManagedClient.dll.meta | 33 + .../Meryel.UnityCodeAssist.MQTTnet.dll | Bin 0 -> 333824 bytes .../Meryel.UnityCodeAssist.MQTTnet.dll.meta | 33 + ...Meryel.UnityCodeAssist.Newtonsoft.Json.dll | Bin 0 -> 691712 bytes ...l.UnityCodeAssist.Newtonsoft.Json.dll.meta | 33 + .../Meryel.UnityCodeAssist.ProjectData.dll | Bin 0 -> 352256 bytes ...eryel.UnityCodeAssist.ProjectData.dll.meta | 33 + ....UnityCodeAssist.RoslynAnalyzerManager.dll | Bin 0 -> 72704 bytes ...yCodeAssist.RoslynAnalyzerManager.dll.meta | 43 + .../Meryel.UnityCodeAssist.Synchronizer.dll | Bin 0 -> 28672 bytes ...ryel.UnityCodeAssist.Synchronizer.dll.meta | 33 + ...ryel.UnityCodeAssist.SynchronizerModel.dll | Bin 0 -> 38400 bytes ...UnityCodeAssist.SynchronizerModel.dll.meta | 33 + .../Meryel.UnityCodeAssist.VSIXLibrary.dll | Bin 0 -> 61440 bytes ...eryel.UnityCodeAssist.VSIXLibrary.dll.meta | 43 + .../Meryel.UnityCodeAssist.YamlDotNet.dll | Bin 0 -> 275968 bytes ...Meryel.UnityCodeAssist.YamlDotNet.dll.meta | 33 + .../Editor/FeedbackWindow.cs | 181 ++ .../Editor/FeedbackWindow.cs.meta | 11 + .../Editor/Input.meta | 8 + .../Editor/Input/Binary2TextExec.cs | 146 ++ .../Editor/Input/Binary2TextExec.cs.meta | 11 + .../Editor/Input/InputManagerMonitor.cs | 164 ++ .../Editor/Input/InputManagerMonitor.cs.meta | 11 + .../Editor/Input/Text2Yaml.cs | 215 ++ .../Editor/Input/Text2Yaml.cs.meta | 11 + .../Editor/Input/UnityInputManager.cs | 429 ++++ .../Editor/Input/UnityInputManager.cs.meta | 11 + .../Editor/LazyInitializer.cs | 49 + .../Editor/LazyInitializer.cs.meta | 11 + .../Editor/Logger.meta | 8 + .../Editor/Logger/CommonTools.cs | 151 ++ .../Editor/Logger/CommonTools.cs.meta | 11 + .../Editor/Logger/ELogger.cs | 203 ++ .../Editor/Logger/ELogger.cs.meta | 11 + .../Editor/Logger/LoggerExtensions.cs | 137 ++ .../Editor/Logger/LoggerExtensions.cs.meta | 11 + .../Editor/Logger/UnitySink.cs | 62 + .../Editor/Logger/UnitySink.cs.meta | 11 + .../Editor/MQTTnetInitializer.cs | 134 ++ .../Editor/MQTTnetInitializer.cs.meta | 11 + .../Editor/MQTTnetPublisher.cs | 926 +++++++++ .../Editor/MQTTnetPublisher.cs.meta | 11 + .../Editor/MainThreadDispatcher.cs | 45 + .../Editor/MainThreadDispatcher.cs.meta | 11 + .../MerryYellow.CodeAssist.Editor.asmdef | 16 + .../MerryYellow.CodeAssist.Editor.asmdef.meta | 7 + .../Editor/Monitor.cs | 332 +++ .../Editor/Monitor.cs.meta | 11 + .../Editor/Preferences.meta | 8 + .../Preferences/PreferenceEntryHolder.cs | 65 + .../Preferences/PreferenceEntryHolder.cs.meta | 11 + .../Editor/Preferences/PreferenceMonitor.cs | 375 ++++ .../Preferences/PreferenceMonitor.cs.meta | 11 + .../Preferences/PreferenceStorageAccessor.cs | 292 +++ .../PreferenceStorageAccessor.cs.meta | 11 + .../Editor/Preferences/RegistryMonitor.cs | 339 +++ .../Preferences/RegistryMonitor.cs.meta | 11 + .../Editor/ScriptFinder.cs | 309 +++ .../Editor/ScriptFinder.cs.meta | 11 + .../Editor/SetupManager.cs | 43 + .../Editor/SetupManager.cs.meta | 11 + .../Editor/StatusWindow.cs | 86 + .../Editor/StatusWindow.cs.meta | 11 + .../Editor/UnityClassExtensions.cs | 683 ++++++ .../Editor/UnityClassExtensions.cs.meta | 11 + .../Editor/UnityEditorShell.cs | 305 +++ .../Editor/UnityEditorShell.cs.meta | 11 + .../Editor/Updater.cs | 150 ++ .../Editor/Updater.cs.meta | 11 + .../Editor/csc.rsp | 1 + .../Editor/csc.rsp.meta | 7 + .../GPT Notice.md | 47 + .../GPT Notice.md.meta | 7 + .../Installers~/Extension Installation.md | 8 + .../Extension Installation.md.meta | 7 + .../com.merry-yellow.code-assist/README.md | 128 ++ .../README.md.meta | 7 + .../Third Party Notices.md | 647 ++++++ .../Third Party Notices.md.meta | 7 + .../com.merry-yellow.code-assist/package.json | 33 + .../package.json.meta | 7 + Packages/manifest.json | 51 + Packages/packages-lock.json | 513 +++++ ProjectSettings/AudioManager.asset | 19 + ProjectSettings/ClusterInputManager.asset | 6 + ProjectSettings/DynamicsManager.asset | 36 + ProjectSettings/EditorBuildSettings.asset | 13 + ProjectSettings/EditorSettings.asset | 50 + ProjectSettings/GraphicsSettings.asset | 69 + ProjectSettings/InputManager.asset | 487 +++++ ProjectSettings/MemorySettings.asset | 35 + ProjectSettings/MultiplayerManager.asset | 7 + ProjectSettings/NavMeshAreas.asset | 91 + ProjectSettings/PackageManagerSettings.asset | 43 + .../MultiplayerRolesSettings.asset | 17 + ProjectSettings/Physics2DSettings.asset | 56 + ProjectSettings/PresetManager.asset | 7 + ProjectSettings/ProjectSettings.asset | 942 +++++++++ ProjectSettings/ProjectVersion.txt | 2 + ProjectSettings/QualitySettings.asset | 135 ++ ProjectSettings/SceneTemplateSettings.json | 121 ++ ProjectSettings/ShaderGraphSettings.asset | 19 + ProjectSettings/TagManager.asset | 53 + ProjectSettings/TimeManager.asset | 9 + ProjectSettings/URPProjectSettings.asset | 16 + ProjectSettings/UnityConnectSettings.asset | 40 + ProjectSettings/VFXManager.asset | 12 + ProjectSettings/VersionControlSettings.asset | 8 + ProjectSettings/XRSettings.asset | 10 + RasterCommandBuffer.cs | 795 +++++++ UnsafeCommandBuffer.cs | 1851 +++++++++++++++++ 251 files changed, 32297 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vsconfig create mode 100644 AGENTS.md create mode 100644 Assets/GameInputs.cs create mode 100644 Assets/GameInputs.cs.meta create mode 100644 Assets/GameInputs.inputactions create mode 100644 Assets/GameInputs.inputactions.meta create mode 100644 Assets/Readme.asset create mode 100644 Assets/Readme.asset.meta create mode 100644 Assets/Resources.meta create mode 100644 Assets/Resources/Materials.meta create mode 100644 Assets/Resources/Materials/Green.mat create mode 100644 Assets/Resources/Materials/Green.mat.meta create mode 100644 Assets/Resources/Materials/Red.mat create mode 100644 Assets/Resources/Materials/Red.mat.meta create mode 100644 Assets/Resources/Materials/Tower.mat create mode 100644 Assets/Resources/Materials/Tower.mat.meta create mode 100644 Assets/Resources/Models.meta create mode 100644 Assets/Resources/Models/FBX.meta create mode 100644 Assets/Resources/Models/FBX/Slices.fbx create mode 100644 Assets/Resources/Models/FBX/Slices.fbx.meta create mode 100644 Assets/Resources/PlatformPrefabs.meta create mode 100644 Assets/Resources/PlatformPrefabs/PlatformPiece (1).prefab create mode 100644 Assets/Resources/PlatformPrefabs/PlatformPiece (1).prefab.meta create mode 100644 Assets/Resources/PlatformPrefabs/PlatformPiece (2).prefab create mode 100644 Assets/Resources/PlatformPrefabs/PlatformPiece (2).prefab.meta create mode 100644 Assets/Resources/PlatformPrefabs/PlatformPiece (3).prefab create mode 100644 Assets/Resources/PlatformPrefabs/PlatformPiece (3).prefab.meta create mode 100644 Assets/Resources/PlatformPrefabs/PlatformPiece (4).prefab create mode 100644 Assets/Resources/PlatformPrefabs/PlatformPiece (4).prefab.meta create mode 100644 Assets/Resources/PlatformPrefabs/PlatformPiece (5).prefab create mode 100644 Assets/Resources/PlatformPrefabs/PlatformPiece (5).prefab.meta create mode 100644 Assets/Resources/PlatformPrefabs/PlatformPiece.prefab create mode 100644 Assets/Resources/PlatformPrefabs/PlatformPiece.prefab.meta create mode 100644 Assets/Resources/Soccer Ball.meta create mode 100644 Assets/Resources/Soccer Ball/Materials.meta create mode 100644 Assets/Resources/Soccer Ball/Materials/Black-Ball-Material.mat create mode 100644 Assets/Resources/Soccer Ball/Materials/Black-Ball-Material.mat.meta create mode 100644 Assets/Resources/Soccer Ball/Materials/White-Ball-Material.mat create mode 100644 Assets/Resources/Soccer Ball/Materials/White-Ball-Material.mat.meta create mode 100644 Assets/Resources/Soccer Ball/Meshes.meta create mode 100644 Assets/Resources/Soccer Ball/Meshes/Soccer Ball Mesh.fbx create mode 100644 Assets/Resources/Soccer Ball/Meshes/Soccer Ball Mesh.fbx.meta create mode 100644 Assets/Resources/Soccer Ball/Prefabs.meta create mode 100644 Assets/Resources/Soccer Ball/Prefabs/Soccer Ball.prefab create mode 100644 Assets/Resources/Soccer Ball/Prefabs/Soccer Ball.prefab.meta create mode 100644 Assets/Resources/Soccer Ball/Textures.meta create mode 100644 Assets/Resources/Soccer Ball/Textures/Soccer Ball Normal Map.png create mode 100644 Assets/Resources/Soccer Ball/Textures/Soccer Ball Normal Map.png.meta create mode 100644 Assets/Scenes.meta create mode 100644 Assets/Scenes/SampleScene.unity create mode 100644 Assets/Scenes/SampleScene.unity.meta create mode 100644 Assets/Scripts.meta create mode 100644 Assets/Scripts/IInputReader.cs create mode 100644 Assets/Scripts/IInputReader.cs.meta create mode 100644 Assets/Scripts/InputReader.cs create mode 100644 Assets/Scripts/InputReader.cs.meta create mode 100644 Assets/Scripts/LifeTimeScope.meta create mode 100644 Assets/Scripts/LifeTimeScope/GameLifeTimeScope.cs create mode 100644 Assets/Scripts/LifeTimeScope/GameLifeTimeScope.cs.meta create mode 100644 Assets/Scripts/PlatformScript.meta create mode 100644 Assets/Scripts/PlatformScript/Platform.cs create mode 100644 Assets/Scripts/PlatformScript/Platform.cs.meta create mode 100644 Assets/Scripts/PlatformScript/PlatformManager.cs create mode 100644 Assets/Scripts/PlatformScript/PlatformManager.cs.meta create mode 100644 Assets/Scripts/PlatformScript/PlatformPool.cs create mode 100644 Assets/Scripts/PlatformScript/PlatformPool.cs.meta create mode 100644 Assets/Scripts/PlayerScript.meta create mode 100644 Assets/Scripts/PlayerScript/JumpingBall.cs create mode 100644 Assets/Scripts/PlayerScript/JumpingBall.cs.meta create mode 100644 Assets/Settings.meta create mode 100644 Assets/Settings/DefaultVolumeProfile.asset create mode 100644 Assets/Settings/DefaultVolumeProfile.asset.meta create mode 100644 Assets/Settings/Mobile_RPAsset.asset create mode 100644 Assets/Settings/Mobile_RPAsset.asset.meta create mode 100644 Assets/Settings/Mobile_Renderer.asset create mode 100644 Assets/Settings/Mobile_Renderer.asset.meta create mode 100644 Assets/Settings/PC_RPAsset.asset create mode 100644 Assets/Settings/PC_RPAsset.asset.meta create mode 100644 Assets/Settings/PC_Renderer.asset create mode 100644 Assets/Settings/PC_Renderer.asset.meta create mode 100644 Assets/Settings/SampleSceneProfile.asset create mode 100644 Assets/Settings/SampleSceneProfile.asset.meta create mode 100644 Assets/Settings/UniversalRenderPipelineGlobalSettings.asset create mode 100644 Assets/Settings/UniversalRenderPipelineGlobalSettings.asset.meta create mode 100644 Assets/TutorialInfo.meta create mode 100644 Assets/TutorialInfo/Icons.meta create mode 100644 Assets/TutorialInfo/Icons/URP.png create mode 100644 Assets/TutorialInfo/Icons/URP.png.meta create mode 100644 Assets/TutorialInfo/Layout.wlt create mode 100644 Assets/TutorialInfo/Layout.wlt.meta create mode 100644 Assets/TutorialInfo/Scripts.meta create mode 100644 Assets/TutorialInfo/Scripts/Editor.meta create mode 100644 Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs create mode 100644 Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs.meta create mode 100644 Assets/TutorialInfo/Scripts/Readme.cs create mode 100644 Assets/TutorialInfo/Scripts/Readme.cs.meta create mode 100644 ComputeCommandBuffer.cs create mode 100644 HelixJump.slnx create mode 100644 IBaseCommandBuffer.cs create mode 100644 IComputeCommandBuffer.cs create mode 100644 IRasterCommandBuffer.cs create mode 100644 IUnsafeCommandBuffer.cs create mode 100644 Packages/com.merry-yellow.code-assist/CHANGELOG.md create mode 100644 Packages/com.merry-yellow.code-assist/CHANGELOG.md.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/AboutWindow.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/AboutWindow.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/AnalyzerPostProcessor.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/AnalyzerPostProcessor.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Assister.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Assister.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Cleanup.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Cleanup.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutine.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutine.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutineUtility.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutineUtility.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWaitForSeconds.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWaitForSeconds.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWindowCoroutineExtension.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWindowCoroutineExtension.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.AnalyzersLite.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.AnalyzersLite.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Common.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Common.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Completion.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Completion.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.CompletionInternals.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.CompletionInternals.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Logger.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Logger.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.MQTTnet.Extensions.ManagedClient.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.MQTTnet.Extensions.ManagedClient.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.MQTTnet.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.MQTTnet.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Newtonsoft.Json.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Newtonsoft.Json.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.ProjectData.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.ProjectData.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.RoslynAnalyzerManager.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.RoslynAnalyzerManager.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Synchronizer.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Synchronizer.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.SynchronizerModel.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.SynchronizerModel.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.VSIXLibrary.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.VSIXLibrary.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.YamlDotNet.dll create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.YamlDotNet.dll.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/FeedbackWindow.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/FeedbackWindow.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Input.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Input/Binary2TextExec.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Input/Binary2TextExec.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Input/InputManagerMonitor.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Input/InputManagerMonitor.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Input/Text2Yaml.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Input/Text2Yaml.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Input/UnityInputManager.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Input/UnityInputManager.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/LazyInitializer.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/LazyInitializer.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Logger.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Logger/CommonTools.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Logger/CommonTools.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Logger/ELogger.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Logger/ELogger.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Logger/LoggerExtensions.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Logger/LoggerExtensions.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Logger/UnitySink.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Logger/UnitySink.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/MQTTnetInitializer.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/MQTTnetInitializer.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/MQTTnetPublisher.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/MQTTnetPublisher.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/MainThreadDispatcher.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/MainThreadDispatcher.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/MerryYellow.CodeAssist.Editor.asmdef create mode 100644 Packages/com.merry-yellow.code-assist/Editor/MerryYellow.CodeAssist.Editor.asmdef.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Monitor.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Monitor.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Preferences.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceEntryHolder.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceEntryHolder.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceMonitor.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceMonitor.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceStorageAccessor.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceStorageAccessor.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Preferences/RegistryMonitor.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Preferences/RegistryMonitor.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ScriptFinder.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/ScriptFinder.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/SetupManager.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/SetupManager.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/StatusWindow.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/StatusWindow.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/UnityClassExtensions.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/UnityClassExtensions.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/UnityEditorShell.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/UnityEditorShell.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Updater.cs create mode 100644 Packages/com.merry-yellow.code-assist/Editor/Updater.cs.meta create mode 100644 Packages/com.merry-yellow.code-assist/Editor/csc.rsp create mode 100644 Packages/com.merry-yellow.code-assist/Editor/csc.rsp.meta create mode 100644 Packages/com.merry-yellow.code-assist/GPT Notice.md create mode 100644 Packages/com.merry-yellow.code-assist/GPT Notice.md.meta create mode 100644 Packages/com.merry-yellow.code-assist/Installers~/Extension Installation.md create mode 100644 Packages/com.merry-yellow.code-assist/Installers~/Extension Installation.md.meta create mode 100644 Packages/com.merry-yellow.code-assist/README.md create mode 100644 Packages/com.merry-yellow.code-assist/README.md.meta create mode 100644 Packages/com.merry-yellow.code-assist/Third Party Notices.md create mode 100644 Packages/com.merry-yellow.code-assist/Third Party Notices.md.meta create mode 100644 Packages/com.merry-yellow.code-assist/package.json create mode 100644 Packages/com.merry-yellow.code-assist/package.json.meta create mode 100644 Packages/manifest.json create mode 100644 Packages/packages-lock.json create mode 100644 ProjectSettings/AudioManager.asset create mode 100644 ProjectSettings/ClusterInputManager.asset create mode 100644 ProjectSettings/DynamicsManager.asset create mode 100644 ProjectSettings/EditorBuildSettings.asset create mode 100644 ProjectSettings/EditorSettings.asset create mode 100644 ProjectSettings/GraphicsSettings.asset create mode 100644 ProjectSettings/InputManager.asset create mode 100644 ProjectSettings/MemorySettings.asset create mode 100644 ProjectSettings/MultiplayerManager.asset create mode 100644 ProjectSettings/NavMeshAreas.asset create mode 100644 ProjectSettings/PackageManagerSettings.asset create mode 100644 ProjectSettings/Packages/com.unity.dedicated-server/MultiplayerRolesSettings.asset create mode 100644 ProjectSettings/Physics2DSettings.asset create mode 100644 ProjectSettings/PresetManager.asset create mode 100644 ProjectSettings/ProjectSettings.asset create mode 100644 ProjectSettings/ProjectVersion.txt create mode 100644 ProjectSettings/QualitySettings.asset create mode 100644 ProjectSettings/SceneTemplateSettings.json create mode 100644 ProjectSettings/ShaderGraphSettings.asset create mode 100644 ProjectSettings/TagManager.asset create mode 100644 ProjectSettings/TimeManager.asset create mode 100644 ProjectSettings/URPProjectSettings.asset create mode 100644 ProjectSettings/UnityConnectSettings.asset create mode 100644 ProjectSettings/VFXManager.asset create mode 100644 ProjectSettings/VersionControlSettings.asset create mode 100644 ProjectSettings/XRSettings.asset create mode 100644 RasterCommandBuffer.cs create mode 100644 UnsafeCommandBuffer.cs diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..96ae0de --- /dev/null +++ b/.gitignore @@ -0,0 +1,75 @@ +# This .gitignore file should be placed at the root of your Unity project directory +# +# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore +# +.utmp/ +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ +*.log + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# Recordings can get excessive in size +/[Rr]ecordings/ + +# Uncomment this line if you wish to ignore the asset store tools plugin +# /[Aa]ssets/AssetStoreTools* + +# Autogenerated Jetbrains Rider plugin +/[Aa]ssets/Plugins/Editor/JetBrains* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.unitypackage.meta +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..ddb6ff8 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "visualstudiotoolsforunity.vstuc" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..da60e25 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,10 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Attach to Unity", + "type": "vstuc", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d666137 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,71 @@ +{ + "files.exclude": { + "**/.DS_Store": true, + "**/.git": true, + "**/.vs": true, + "**/.gitmodules": true, + "**/.vsconfig": true, + "**/*.booproj": true, + "**/*.pidb": true, + "**/*.suo": true, + "**/*.user": true, + "**/*.userprefs": true, + "**/*.unityproj": true, + "**/*.dll": true, + "**/*.exe": true, + "**/*.pdf": true, + "**/*.mid": true, + "**/*.midi": true, + "**/*.wav": true, + "**/*.gif": true, + "**/*.ico": true, + "**/*.jpg": true, + "**/*.jpeg": true, + "**/*.png": true, + "**/*.psd": true, + "**/*.tga": true, + "**/*.tif": true, + "**/*.tiff": true, + "**/*.3ds": true, + "**/*.3DS": true, + "**/*.fbx": true, + "**/*.FBX": true, + "**/*.lxo": true, + "**/*.LXO": true, + "**/*.ma": true, + "**/*.MA": true, + "**/*.obj": true, + "**/*.OBJ": true, + "**/*.asset": true, + "**/*.cubemap": true, + "**/*.flare": true, + "**/*.mat": true, + "**/*.meta": true, + "**/*.prefab": true, + "**/*.unity": true, + "build/": true, + "Build/": true, + "Library/": true, + "library/": true, + "obj/": true, + "Obj/": true, + "Logs/": true, + "logs/": true, + "ProjectSettings/": true, + "UserSettings/": true, + "temp/": true, + "Temp/": true + }, + "files.associations": { + "*.asset": "yaml", + "*.meta": "yaml", + "*.prefab": "yaml", + "*.unity": "yaml", + }, + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.patterns": { + "*.sln": "*.csproj", + "*.slnx": "*.csproj" + }, + "dotnet.defaultSolution": "HelixJump.slnx" +} \ No newline at end of file diff --git a/.vsconfig b/.vsconfig new file mode 100644 index 0000000..f019fd0 --- /dev/null +++ b/.vsconfig @@ -0,0 +1,6 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.VisualStudio.Workload.ManagedGame" + ] +} diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..0d797c3 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,14 @@ + +- Project name: HelixJump +- Unity version: Unity 6000.3.0f1 +- Active scene: + - Name: SampleScene + - Tags: + - Untagged, Respawn, Finish, EditorOnly, MainCamera, Player, GameController, Platform + - Layers: + - Default, TransparentFX, Ignore Raycast, Water, UI +- Active game object: + - Name: CinemachineCamera + - Tag: Untagged + - Layer: Default + \ No newline at end of file diff --git a/Assets/GameInputs.cs b/Assets/GameInputs.cs new file mode 100644 index 0000000..5538070 --- /dev/null +++ b/Assets/GameInputs.cs @@ -0,0 +1,1240 @@ +//------------------------------------------------------------------------------ +// +// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator +// version 1.16.0 +// from Assets/GameInputs.inputactions +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine.InputSystem; +using UnityEngine.InputSystem.Utilities; + +/// +/// Provides programmatic access to , , and instances defined in asset "Assets/GameInputs.inputactions". +/// +/// +/// This class is source generated and any manual edits will be discarded if the associated asset is reimported or modified. +/// +/// +/// +/// using namespace UnityEngine; +/// using UnityEngine.InputSystem; +/// +/// // Example of using an InputActionMap named "Player" from a UnityEngine.MonoBehaviour implementing callback interface. +/// public class Example : MonoBehaviour, MyActions.IPlayerActions +/// { +/// private MyActions_Actions m_Actions; // Source code representation of asset. +/// private MyActions_Actions.PlayerActions m_Player; // Source code representation of action map. +/// +/// void Awake() +/// { +/// m_Actions = new MyActions_Actions(); // Create asset object. +/// m_Player = m_Actions.Player; // Extract action map object. +/// m_Player.AddCallbacks(this); // Register callback interface IPlayerActions. +/// } +/// +/// void OnDestroy() +/// { +/// m_Actions.Dispose(); // Destroy asset object. +/// } +/// +/// void OnEnable() +/// { +/// m_Player.Enable(); // Enable all actions within map. +/// } +/// +/// void OnDisable() +/// { +/// m_Player.Disable(); // Disable all actions within map. +/// } +/// +/// #region Interface implementation of MyActions.IPlayerActions +/// +/// // Invoked when "Move" action is either started, performed or canceled. +/// public void OnMove(InputAction.CallbackContext context) +/// { +/// Debug.Log($"OnMove: {context.ReadValue<Vector2>()}"); +/// } +/// +/// // Invoked when "Attack" action is either started, performed or canceled. +/// public void OnAttack(InputAction.CallbackContext context) +/// { +/// Debug.Log($"OnAttack: {context.ReadValue<float>()}"); +/// } +/// +/// #endregion +/// } +/// +/// +public partial class @GameInputs: IInputActionCollection2, IDisposable +{ + /// + /// Provides access to the underlying asset instance. + /// + public InputActionAsset asset { get; } + + /// + /// Constructs a new instance. + /// + public @GameInputs() + { + asset = InputActionAsset.FromJson(@"{ + ""version"": 1, + ""name"": ""GameInputs"", + ""maps"": [ + { + ""name"": ""Player"", + ""id"": ""df70fa95-8a34-4494-b137-73ab6b9c7d37"", + ""actions"": [ + { + ""name"": ""Drag"", + ""type"": ""Value"", + ""id"": ""54e956de-82e3-4015-81a8-136684fb454d"", + ""expectedControlType"": """", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": true + } + ], + ""bindings"": [ + { + ""name"": """", + ""id"": ""cd60ba9b-f92e-4ec7-bfb6-c97e1cccedab"", + ""path"": ""/touch0/delta"", + ""interactions"": """", + ""processors"": """", + ""groups"": "";XR"", + ""action"": ""Drag"", + ""isComposite"": false, + ""isPartOfComposite"": false + } + ] + }, + { + ""name"": ""UI"", + ""id"": ""272f6d14-89ba-496f-b7ff-215263d3219f"", + ""actions"": [ + { + ""name"": ""Navigate"", + ""type"": ""PassThrough"", + ""id"": ""c95b2375-e6d9-4b88-9c4c-c5e76515df4b"", + ""expectedControlType"": ""Vector2"", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false + }, + { + ""name"": ""Submit"", + ""type"": ""Button"", + ""id"": ""7607c7b6-cd76-4816-beef-bd0341cfe950"", + ""expectedControlType"": ""Button"", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false + }, + { + ""name"": ""Cancel"", + ""type"": ""Button"", + ""id"": ""15cef263-9014-4fd5-94d9-4e4a6234a6ef"", + ""expectedControlType"": ""Button"", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false + }, + { + ""name"": ""Point"", + ""type"": ""PassThrough"", + ""id"": ""32b35790-4ed0-4e9a-aa41-69ac6d629449"", + ""expectedControlType"": ""Vector2"", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": true + }, + { + ""name"": ""Click"", + ""type"": ""PassThrough"", + ""id"": ""3c7022bf-7922-4f7c-a998-c437916075ad"", + ""expectedControlType"": ""Button"", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": true + }, + { + ""name"": ""RightClick"", + ""type"": ""PassThrough"", + ""id"": ""44b200b1-1557-4083-816c-b22cbdf77ddf"", + ""expectedControlType"": ""Button"", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false + }, + { + ""name"": ""MiddleClick"", + ""type"": ""PassThrough"", + ""id"": ""dad70c86-b58c-4b17-88ad-f5e53adf419e"", + ""expectedControlType"": ""Button"", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false + }, + { + ""name"": ""ScrollWheel"", + ""type"": ""PassThrough"", + ""id"": ""0489e84a-4833-4c40-bfae-cea84b696689"", + ""expectedControlType"": ""Vector2"", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false + }, + { + ""name"": ""TrackedDevicePosition"", + ""type"": ""PassThrough"", + ""id"": ""24908448-c609-4bc3-a128-ea258674378a"", + ""expectedControlType"": ""Vector3"", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false + }, + { + ""name"": ""TrackedDeviceOrientation"", + ""type"": ""PassThrough"", + ""id"": ""9caa3d8a-6b2f-4e8e-8bad-6ede561bd9be"", + ""expectedControlType"": ""Quaternion"", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false + } + ], + ""bindings"": [ + { + ""name"": ""Gamepad"", + ""id"": ""809f371f-c5e2-4e7a-83a1-d867598f40dd"", + ""path"": ""2DVector"", + ""interactions"": """", + ""processors"": """", + ""groups"": """", + ""action"": ""Navigate"", + ""isComposite"": true, + ""isPartOfComposite"": false + }, + { + ""name"": ""up"", + ""id"": ""14a5d6e8-4aaf-4119-a9ef-34b8c2c548bf"", + ""path"": ""/leftStick/up"", + ""interactions"": """", + ""processors"": """", + ""groups"": "";Gamepad"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""up"", + ""id"": ""9144cbe6-05e1-4687-a6d7-24f99d23dd81"", + ""path"": ""/rightStick/up"", + ""interactions"": """", + ""processors"": """", + ""groups"": "";Gamepad"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""down"", + ""id"": ""2db08d65-c5fb-421b-983f-c71163608d67"", + ""path"": ""/leftStick/down"", + ""interactions"": """", + ""processors"": """", + ""groups"": "";Gamepad"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""down"", + ""id"": ""58748904-2ea9-4a80-8579-b500e6a76df8"", + ""path"": ""/rightStick/down"", + ""interactions"": """", + ""processors"": """", + ""groups"": "";Gamepad"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""left"", + ""id"": ""8ba04515-75aa-45de-966d-393d9bbd1c14"", + ""path"": ""/leftStick/left"", + ""interactions"": """", + ""processors"": """", + ""groups"": "";Gamepad"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""left"", + ""id"": ""712e721c-bdfb-4b23-a86c-a0d9fcfea921"", + ""path"": ""/rightStick/left"", + ""interactions"": """", + ""processors"": """", + ""groups"": "";Gamepad"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""right"", + ""id"": ""fcd248ae-a788-4676-a12e-f4d81205600b"", + ""path"": ""/leftStick/right"", + ""interactions"": """", + ""processors"": """", + ""groups"": "";Gamepad"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""right"", + ""id"": ""1f04d9bc-c50b-41a1-bfcc-afb75475ec20"", + ""path"": ""/rightStick/right"", + ""interactions"": """", + ""processors"": """", + ""groups"": "";Gamepad"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": """", + ""id"": ""fb8277d4-c5cd-4663-9dc7-ee3f0b506d90"", + ""path"": ""/dpad"", + ""interactions"": """", + ""processors"": """", + ""groups"": "";Gamepad"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": ""Joystick"", + ""id"": ""e25d9774-381c-4a61-b47c-7b6b299ad9f9"", + ""path"": ""2DVector"", + ""interactions"": """", + ""processors"": """", + ""groups"": """", + ""action"": ""Navigate"", + ""isComposite"": true, + ""isPartOfComposite"": false + }, + { + ""name"": ""up"", + ""id"": ""3db53b26-6601-41be-9887-63ac74e79d19"", + ""path"": ""/stick/up"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Joystick"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""down"", + ""id"": ""0cb3e13e-3d90-4178-8ae6-d9c5501d653f"", + ""path"": ""/stick/down"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Joystick"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""left"", + ""id"": ""0392d399-f6dd-4c82-8062-c1e9c0d34835"", + ""path"": ""/stick/left"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Joystick"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""right"", + ""id"": ""942a66d9-d42f-43d6-8d70-ecb4ba5363bc"", + ""path"": ""/stick/right"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Joystick"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""Keyboard"", + ""id"": ""ff527021-f211-4c02-933e-5976594c46ed"", + ""path"": ""2DVector"", + ""interactions"": """", + ""processors"": """", + ""groups"": """", + ""action"": ""Navigate"", + ""isComposite"": true, + ""isPartOfComposite"": false + }, + { + ""name"": ""up"", + ""id"": ""563fbfdd-0f09-408d-aa75-8642c4f08ef0"", + ""path"": ""/w"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""up"", + ""id"": ""eb480147-c587-4a33-85ed-eb0ab9942c43"", + ""path"": ""/upArrow"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""down"", + ""id"": ""2bf42165-60bc-42ca-8072-8c13ab40239b"", + ""path"": ""/s"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""down"", + ""id"": ""85d264ad-e0a0-4565-b7ff-1a37edde51ac"", + ""path"": ""/downArrow"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""left"", + ""id"": ""74214943-c580-44e4-98eb-ad7eebe17902"", + ""path"": ""/a"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""left"", + ""id"": ""cea9b045-a000-445b-95b8-0c171af70a3b"", + ""path"": ""/leftArrow"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""right"", + ""id"": ""8607c725-d935-4808-84b1-8354e29bab63"", + ""path"": ""/d"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": ""right"", + ""id"": ""4cda81dc-9edd-4e03-9d7c-a71a14345d0b"", + ""path"": ""/rightArrow"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Navigate"", + ""isComposite"": false, + ""isPartOfComposite"": true + }, + { + ""name"": """", + ""id"": ""9e92bb26-7e3b-4ec4-b06b-3c8f8e498ddc"", + ""path"": ""*/{Submit}"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse;Gamepad;Touch;Joystick;XR"", + ""action"": ""Submit"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""82627dcc-3b13-4ba9-841d-e4b746d6553e"", + ""path"": ""*/{Cancel}"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse;Gamepad;Touch;Joystick;XR"", + ""action"": ""Cancel"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""c52c8e0b-8179-41d3-b8a1-d149033bbe86"", + ""path"": ""/position"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Point"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""e1394cbc-336e-44ce-9ea8-6007ed6193f7"", + ""path"": ""/position"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Point"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""5693e57a-238a-46ed-b5ae-e64e6e574302"", + ""path"": ""/touch*/position"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Touch"", + ""action"": ""Point"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""4faf7dc9-b979-4210-aa8c-e808e1ef89f5"", + ""path"": ""/leftButton"", + ""interactions"": """", + ""processors"": """", + ""groups"": "";Keyboard&Mouse"", + ""action"": ""Click"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""8d66d5ba-88d7-48e6-b1cd-198bbfef7ace"", + ""path"": ""/tip"", + ""interactions"": """", + ""processors"": """", + ""groups"": "";Keyboard&Mouse"", + ""action"": ""Click"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""47c2a644-3ebc-4dae-a106-589b7ca75b59"", + ""path"": ""/touch*/press"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Touch"", + ""action"": ""Click"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""bb9e6b34-44bf-4381-ac63-5aa15d19f677"", + ""path"": ""/trigger"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""XR"", + ""action"": ""Click"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""38c99815-14ea-4617-8627-164d27641299"", + ""path"": ""/scroll"", + ""interactions"": """", + ""processors"": """", + ""groups"": "";Keyboard&Mouse"", + ""action"": ""ScrollWheel"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""4c191405-5738-4d4b-a523-c6a301dbf754"", + ""path"": ""/rightButton"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""RightClick"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""24066f69-da47-44f3-a07e-0015fb02eb2e"", + ""path"": ""/middleButton"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""MiddleClick"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""7236c0d9-6ca3-47cf-a6ee-a97f5b59ea77"", + ""path"": ""/devicePosition"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""XR"", + ""action"": ""TrackedDevicePosition"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""23e01e3a-f935-4948-8d8b-9bcac77714fb"", + ""path"": ""/deviceRotation"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""XR"", + ""action"": ""TrackedDeviceOrientation"", + ""isComposite"": false, + ""isPartOfComposite"": false + } + ] + } + ], + ""controlSchemes"": [ + { + ""name"": ""Keyboard&Mouse"", + ""bindingGroup"": ""Keyboard&Mouse"", + ""devices"": [ + { + ""devicePath"": """", + ""isOptional"": false, + ""isOR"": false + }, + { + ""devicePath"": """", + ""isOptional"": false, + ""isOR"": false + } + ] + }, + { + ""name"": ""Gamepad"", + ""bindingGroup"": ""Gamepad"", + ""devices"": [ + { + ""devicePath"": """", + ""isOptional"": false, + ""isOR"": false + } + ] + }, + { + ""name"": ""Touch"", + ""bindingGroup"": ""Touch"", + ""devices"": [ + { + ""devicePath"": """", + ""isOptional"": false, + ""isOR"": false + } + ] + }, + { + ""name"": ""Joystick"", + ""bindingGroup"": ""Joystick"", + ""devices"": [ + { + ""devicePath"": """", + ""isOptional"": false, + ""isOR"": false + } + ] + }, + { + ""name"": ""XR"", + ""bindingGroup"": ""XR"", + ""devices"": [ + { + ""devicePath"": """", + ""isOptional"": false, + ""isOR"": false + } + ] + } + ] +}"); + // Player + m_Player = asset.FindActionMap("Player", throwIfNotFound: true); + m_Player_Drag = m_Player.FindAction("Drag", throwIfNotFound: true); + // UI + m_UI = asset.FindActionMap("UI", throwIfNotFound: true); + m_UI_Navigate = m_UI.FindAction("Navigate", throwIfNotFound: true); + m_UI_Submit = m_UI.FindAction("Submit", throwIfNotFound: true); + m_UI_Cancel = m_UI.FindAction("Cancel", throwIfNotFound: true); + m_UI_Point = m_UI.FindAction("Point", throwIfNotFound: true); + m_UI_Click = m_UI.FindAction("Click", throwIfNotFound: true); + m_UI_RightClick = m_UI.FindAction("RightClick", throwIfNotFound: true); + m_UI_MiddleClick = m_UI.FindAction("MiddleClick", throwIfNotFound: true); + m_UI_ScrollWheel = m_UI.FindAction("ScrollWheel", throwIfNotFound: true); + m_UI_TrackedDevicePosition = m_UI.FindAction("TrackedDevicePosition", throwIfNotFound: true); + m_UI_TrackedDeviceOrientation = m_UI.FindAction("TrackedDeviceOrientation", throwIfNotFound: true); + } + + ~@GameInputs() + { + UnityEngine.Debug.Assert(!m_Player.enabled, "This will cause a leak and performance issues, GameInputs.Player.Disable() has not been called."); + UnityEngine.Debug.Assert(!m_UI.enabled, "This will cause a leak and performance issues, GameInputs.UI.Disable() has not been called."); + } + + /// + /// Destroys this asset and all associated instances. + /// + public void Dispose() + { + UnityEngine.Object.Destroy(asset); + } + + /// + public InputBinding? bindingMask + { + get => asset.bindingMask; + set => asset.bindingMask = value; + } + + /// + public ReadOnlyArray? devices + { + get => asset.devices; + set => asset.devices = value; + } + + /// + public ReadOnlyArray controlSchemes => asset.controlSchemes; + + /// + public bool Contains(InputAction action) + { + return asset.Contains(action); + } + + /// + public IEnumerator GetEnumerator() + { + return asset.GetEnumerator(); + } + + /// + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + /// + public void Enable() + { + asset.Enable(); + } + + /// + public void Disable() + { + asset.Disable(); + } + + /// + public IEnumerable bindings => asset.bindings; + + /// + public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false) + { + return asset.FindAction(actionNameOrId, throwIfNotFound); + } + + /// + public int FindBinding(InputBinding bindingMask, out InputAction action) + { + return asset.FindBinding(bindingMask, out action); + } + + // Player + private readonly InputActionMap m_Player; + private List m_PlayerActionsCallbackInterfaces = new List(); + private readonly InputAction m_Player_Drag; + /// + /// Provides access to input actions defined in input action map "Player". + /// + public struct PlayerActions + { + private @GameInputs m_Wrapper; + + /// + /// Construct a new instance of the input action map wrapper class. + /// + public PlayerActions(@GameInputs wrapper) { m_Wrapper = wrapper; } + /// + /// Provides access to the underlying input action "Player/Drag". + /// + public InputAction @Drag => m_Wrapper.m_Player_Drag; + /// + /// Provides access to the underlying input action map instance. + /// + public InputActionMap Get() { return m_Wrapper.m_Player; } + /// + public void Enable() { Get().Enable(); } + /// + public void Disable() { Get().Disable(); } + /// + public bool enabled => Get().enabled; + /// + /// Implicitly converts an to an instance. + /// + public static implicit operator InputActionMap(PlayerActions set) { return set.Get(); } + /// + /// Adds , and callbacks provided via on all input actions contained in this map. + /// + /// Callback instance. + /// + /// If is null or have already been added this method does nothing. + /// + /// + public void AddCallbacks(IPlayerActions instance) + { + if (instance == null || m_Wrapper.m_PlayerActionsCallbackInterfaces.Contains(instance)) return; + m_Wrapper.m_PlayerActionsCallbackInterfaces.Add(instance); + @Drag.started += instance.OnDrag; + @Drag.performed += instance.OnDrag; + @Drag.canceled += instance.OnDrag; + } + + /// + /// Removes , and callbacks provided via on all input actions contained in this map. + /// + /// + /// Calling this method when have not previously been registered has no side-effects. + /// + /// + private void UnregisterCallbacks(IPlayerActions instance) + { + @Drag.started -= instance.OnDrag; + @Drag.performed -= instance.OnDrag; + @Drag.canceled -= instance.OnDrag; + } + + /// + /// Unregisters and unregisters all input action callbacks via . + /// + /// + public void RemoveCallbacks(IPlayerActions instance) + { + if (m_Wrapper.m_PlayerActionsCallbackInterfaces.Remove(instance)) + UnregisterCallbacks(instance); + } + + /// + /// Replaces all existing callback instances and previously registered input action callbacks associated with them with callbacks provided via . + /// + /// + /// If is null, calling this method will only unregister all existing callbacks but not register any new callbacks. + /// + /// + /// + /// + public void SetCallbacks(IPlayerActions instance) + { + foreach (var item in m_Wrapper.m_PlayerActionsCallbackInterfaces) + UnregisterCallbacks(item); + m_Wrapper.m_PlayerActionsCallbackInterfaces.Clear(); + AddCallbacks(instance); + } + } + /// + /// Provides a new instance referencing this action map. + /// + public PlayerActions @Player => new PlayerActions(this); + + // UI + private readonly InputActionMap m_UI; + private List m_UIActionsCallbackInterfaces = new List(); + private readonly InputAction m_UI_Navigate; + private readonly InputAction m_UI_Submit; + private readonly InputAction m_UI_Cancel; + private readonly InputAction m_UI_Point; + private readonly InputAction m_UI_Click; + private readonly InputAction m_UI_RightClick; + private readonly InputAction m_UI_MiddleClick; + private readonly InputAction m_UI_ScrollWheel; + private readonly InputAction m_UI_TrackedDevicePosition; + private readonly InputAction m_UI_TrackedDeviceOrientation; + /// + /// Provides access to input actions defined in input action map "UI". + /// + public struct UIActions + { + private @GameInputs m_Wrapper; + + /// + /// Construct a new instance of the input action map wrapper class. + /// + public UIActions(@GameInputs wrapper) { m_Wrapper = wrapper; } + /// + /// Provides access to the underlying input action "UI/Navigate". + /// + public InputAction @Navigate => m_Wrapper.m_UI_Navigate; + /// + /// Provides access to the underlying input action "UI/Submit". + /// + public InputAction @Submit => m_Wrapper.m_UI_Submit; + /// + /// Provides access to the underlying input action "UI/Cancel". + /// + public InputAction @Cancel => m_Wrapper.m_UI_Cancel; + /// + /// Provides access to the underlying input action "UI/Point". + /// + public InputAction @Point => m_Wrapper.m_UI_Point; + /// + /// Provides access to the underlying input action "UI/Click". + /// + public InputAction @Click => m_Wrapper.m_UI_Click; + /// + /// Provides access to the underlying input action "UI/RightClick". + /// + public InputAction @RightClick => m_Wrapper.m_UI_RightClick; + /// + /// Provides access to the underlying input action "UI/MiddleClick". + /// + public InputAction @MiddleClick => m_Wrapper.m_UI_MiddleClick; + /// + /// Provides access to the underlying input action "UI/ScrollWheel". + /// + public InputAction @ScrollWheel => m_Wrapper.m_UI_ScrollWheel; + /// + /// Provides access to the underlying input action "UI/TrackedDevicePosition". + /// + public InputAction @TrackedDevicePosition => m_Wrapper.m_UI_TrackedDevicePosition; + /// + /// Provides access to the underlying input action "UI/TrackedDeviceOrientation". + /// + public InputAction @TrackedDeviceOrientation => m_Wrapper.m_UI_TrackedDeviceOrientation; + /// + /// Provides access to the underlying input action map instance. + /// + public InputActionMap Get() { return m_Wrapper.m_UI; } + /// + public void Enable() { Get().Enable(); } + /// + public void Disable() { Get().Disable(); } + /// + public bool enabled => Get().enabled; + /// + /// Implicitly converts an to an instance. + /// + public static implicit operator InputActionMap(UIActions set) { return set.Get(); } + /// + /// Adds , and callbacks provided via on all input actions contained in this map. + /// + /// Callback instance. + /// + /// If is null or have already been added this method does nothing. + /// + /// + public void AddCallbacks(IUIActions instance) + { + if (instance == null || m_Wrapper.m_UIActionsCallbackInterfaces.Contains(instance)) return; + m_Wrapper.m_UIActionsCallbackInterfaces.Add(instance); + @Navigate.started += instance.OnNavigate; + @Navigate.performed += instance.OnNavigate; + @Navigate.canceled += instance.OnNavigate; + @Submit.started += instance.OnSubmit; + @Submit.performed += instance.OnSubmit; + @Submit.canceled += instance.OnSubmit; + @Cancel.started += instance.OnCancel; + @Cancel.performed += instance.OnCancel; + @Cancel.canceled += instance.OnCancel; + @Point.started += instance.OnPoint; + @Point.performed += instance.OnPoint; + @Point.canceled += instance.OnPoint; + @Click.started += instance.OnClick; + @Click.performed += instance.OnClick; + @Click.canceled += instance.OnClick; + @RightClick.started += instance.OnRightClick; + @RightClick.performed += instance.OnRightClick; + @RightClick.canceled += instance.OnRightClick; + @MiddleClick.started += instance.OnMiddleClick; + @MiddleClick.performed += instance.OnMiddleClick; + @MiddleClick.canceled += instance.OnMiddleClick; + @ScrollWheel.started += instance.OnScrollWheel; + @ScrollWheel.performed += instance.OnScrollWheel; + @ScrollWheel.canceled += instance.OnScrollWheel; + @TrackedDevicePosition.started += instance.OnTrackedDevicePosition; + @TrackedDevicePosition.performed += instance.OnTrackedDevicePosition; + @TrackedDevicePosition.canceled += instance.OnTrackedDevicePosition; + @TrackedDeviceOrientation.started += instance.OnTrackedDeviceOrientation; + @TrackedDeviceOrientation.performed += instance.OnTrackedDeviceOrientation; + @TrackedDeviceOrientation.canceled += instance.OnTrackedDeviceOrientation; + } + + /// + /// Removes , and callbacks provided via on all input actions contained in this map. + /// + /// + /// Calling this method when have not previously been registered has no side-effects. + /// + /// + private void UnregisterCallbacks(IUIActions instance) + { + @Navigate.started -= instance.OnNavigate; + @Navigate.performed -= instance.OnNavigate; + @Navigate.canceled -= instance.OnNavigate; + @Submit.started -= instance.OnSubmit; + @Submit.performed -= instance.OnSubmit; + @Submit.canceled -= instance.OnSubmit; + @Cancel.started -= instance.OnCancel; + @Cancel.performed -= instance.OnCancel; + @Cancel.canceled -= instance.OnCancel; + @Point.started -= instance.OnPoint; + @Point.performed -= instance.OnPoint; + @Point.canceled -= instance.OnPoint; + @Click.started -= instance.OnClick; + @Click.performed -= instance.OnClick; + @Click.canceled -= instance.OnClick; + @RightClick.started -= instance.OnRightClick; + @RightClick.performed -= instance.OnRightClick; + @RightClick.canceled -= instance.OnRightClick; + @MiddleClick.started -= instance.OnMiddleClick; + @MiddleClick.performed -= instance.OnMiddleClick; + @MiddleClick.canceled -= instance.OnMiddleClick; + @ScrollWheel.started -= instance.OnScrollWheel; + @ScrollWheel.performed -= instance.OnScrollWheel; + @ScrollWheel.canceled -= instance.OnScrollWheel; + @TrackedDevicePosition.started -= instance.OnTrackedDevicePosition; + @TrackedDevicePosition.performed -= instance.OnTrackedDevicePosition; + @TrackedDevicePosition.canceled -= instance.OnTrackedDevicePosition; + @TrackedDeviceOrientation.started -= instance.OnTrackedDeviceOrientation; + @TrackedDeviceOrientation.performed -= instance.OnTrackedDeviceOrientation; + @TrackedDeviceOrientation.canceled -= instance.OnTrackedDeviceOrientation; + } + + /// + /// Unregisters and unregisters all input action callbacks via . + /// + /// + public void RemoveCallbacks(IUIActions instance) + { + if (m_Wrapper.m_UIActionsCallbackInterfaces.Remove(instance)) + UnregisterCallbacks(instance); + } + + /// + /// Replaces all existing callback instances and previously registered input action callbacks associated with them with callbacks provided via . + /// + /// + /// If is null, calling this method will only unregister all existing callbacks but not register any new callbacks. + /// + /// + /// + /// + public void SetCallbacks(IUIActions instance) + { + foreach (var item in m_Wrapper.m_UIActionsCallbackInterfaces) + UnregisterCallbacks(item); + m_Wrapper.m_UIActionsCallbackInterfaces.Clear(); + AddCallbacks(instance); + } + } + /// + /// Provides a new instance referencing this action map. + /// + public UIActions @UI => new UIActions(this); + private int m_KeyboardMouseSchemeIndex = -1; + /// + /// Provides access to the input control scheme. + /// + /// + public InputControlScheme KeyboardMouseScheme + { + get + { + if (m_KeyboardMouseSchemeIndex == -1) m_KeyboardMouseSchemeIndex = asset.FindControlSchemeIndex("Keyboard&Mouse"); + return asset.controlSchemes[m_KeyboardMouseSchemeIndex]; + } + } + private int m_GamepadSchemeIndex = -1; + /// + /// Provides access to the input control scheme. + /// + /// + public InputControlScheme GamepadScheme + { + get + { + if (m_GamepadSchemeIndex == -1) m_GamepadSchemeIndex = asset.FindControlSchemeIndex("Gamepad"); + return asset.controlSchemes[m_GamepadSchemeIndex]; + } + } + private int m_TouchSchemeIndex = -1; + /// + /// Provides access to the input control scheme. + /// + /// + public InputControlScheme TouchScheme + { + get + { + if (m_TouchSchemeIndex == -1) m_TouchSchemeIndex = asset.FindControlSchemeIndex("Touch"); + return asset.controlSchemes[m_TouchSchemeIndex]; + } + } + private int m_JoystickSchemeIndex = -1; + /// + /// Provides access to the input control scheme. + /// + /// + public InputControlScheme JoystickScheme + { + get + { + if (m_JoystickSchemeIndex == -1) m_JoystickSchemeIndex = asset.FindControlSchemeIndex("Joystick"); + return asset.controlSchemes[m_JoystickSchemeIndex]; + } + } + private int m_XRSchemeIndex = -1; + /// + /// Provides access to the input control scheme. + /// + /// + public InputControlScheme XRScheme + { + get + { + if (m_XRSchemeIndex == -1) m_XRSchemeIndex = asset.FindControlSchemeIndex("XR"); + return asset.controlSchemes[m_XRSchemeIndex]; + } + } + /// + /// Interface to implement callback methods for all input action callbacks associated with input actions defined by "Player" which allows adding and removing callbacks. + /// + /// + /// + public interface IPlayerActions + { + /// + /// Method invoked when associated input action "Drag" is either , or . + /// + /// + /// + /// + void OnDrag(InputAction.CallbackContext context); + } + /// + /// Interface to implement callback methods for all input action callbacks associated with input actions defined by "UI" which allows adding and removing callbacks. + /// + /// + /// + public interface IUIActions + { + /// + /// Method invoked when associated input action "Navigate" is either , or . + /// + /// + /// + /// + void OnNavigate(InputAction.CallbackContext context); + /// + /// Method invoked when associated input action "Submit" is either , or . + /// + /// + /// + /// + void OnSubmit(InputAction.CallbackContext context); + /// + /// Method invoked when associated input action "Cancel" is either , or . + /// + /// + /// + /// + void OnCancel(InputAction.CallbackContext context); + /// + /// Method invoked when associated input action "Point" is either , or . + /// + /// + /// + /// + void OnPoint(InputAction.CallbackContext context); + /// + /// Method invoked when associated input action "Click" is either , or . + /// + /// + /// + /// + void OnClick(InputAction.CallbackContext context); + /// + /// Method invoked when associated input action "RightClick" is either , or . + /// + /// + /// + /// + void OnRightClick(InputAction.CallbackContext context); + /// + /// Method invoked when associated input action "MiddleClick" is either , or . + /// + /// + /// + /// + void OnMiddleClick(InputAction.CallbackContext context); + /// + /// Method invoked when associated input action "ScrollWheel" is either , or . + /// + /// + /// + /// + void OnScrollWheel(InputAction.CallbackContext context); + /// + /// Method invoked when associated input action "TrackedDevicePosition" is either , or . + /// + /// + /// + /// + void OnTrackedDevicePosition(InputAction.CallbackContext context); + /// + /// Method invoked when associated input action "TrackedDeviceOrientation" is either , or . + /// + /// + /// + /// + void OnTrackedDeviceOrientation(InputAction.CallbackContext context); + } +} diff --git a/Assets/GameInputs.cs.meta b/Assets/GameInputs.cs.meta new file mode 100644 index 0000000..348ffc7 --- /dev/null +++ b/Assets/GameInputs.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 057d2bf293930d445b37a43054749679 \ No newline at end of file diff --git a/Assets/GameInputs.inputactions b/Assets/GameInputs.inputactions new file mode 100644 index 0000000..c9cff82 --- /dev/null +++ b/Assets/GameInputs.inputactions @@ -0,0 +1,612 @@ +{ + "version": 1, + "name": "GameInputs", + "maps": [ + { + "name": "Player", + "id": "df70fa95-8a34-4494-b137-73ab6b9c7d37", + "actions": [ + { + "name": "Drag", + "type": "Value", + "id": "54e956de-82e3-4015-81a8-136684fb454d", + "expectedControlType": "", + "processors": "", + "interactions": "", + "initialStateCheck": true + } + ], + "bindings": [ + { + "name": "", + "id": "cd60ba9b-f92e-4ec7-bfb6-c97e1cccedab", + "path": "/touch0/delta", + "interactions": "", + "processors": "", + "groups": ";XR", + "action": "Drag", + "isComposite": false, + "isPartOfComposite": false + } + ] + }, + { + "name": "UI", + "id": "272f6d14-89ba-496f-b7ff-215263d3219f", + "actions": [ + { + "name": "Navigate", + "type": "PassThrough", + "id": "c95b2375-e6d9-4b88-9c4c-c5e76515df4b", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Submit", + "type": "Button", + "id": "7607c7b6-cd76-4816-beef-bd0341cfe950", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Cancel", + "type": "Button", + "id": "15cef263-9014-4fd5-94d9-4e4a6234a6ef", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Point", + "type": "PassThrough", + "id": "32b35790-4ed0-4e9a-aa41-69ac6d629449", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Click", + "type": "PassThrough", + "id": "3c7022bf-7922-4f7c-a998-c437916075ad", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "RightClick", + "type": "PassThrough", + "id": "44b200b1-1557-4083-816c-b22cbdf77ddf", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "MiddleClick", + "type": "PassThrough", + "id": "dad70c86-b58c-4b17-88ad-f5e53adf419e", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "ScrollWheel", + "type": "PassThrough", + "id": "0489e84a-4833-4c40-bfae-cea84b696689", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "TrackedDevicePosition", + "type": "PassThrough", + "id": "24908448-c609-4bc3-a128-ea258674378a", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "TrackedDeviceOrientation", + "type": "PassThrough", + "id": "9caa3d8a-6b2f-4e8e-8bad-6ede561bd9be", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "Gamepad", + "id": "809f371f-c5e2-4e7a-83a1-d867598f40dd", + "path": "2DVector", + "interactions": "", + "processors": "", + "groups": "", + "action": "Navigate", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "14a5d6e8-4aaf-4119-a9ef-34b8c2c548bf", + "path": "/leftStick/up", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "up", + "id": "9144cbe6-05e1-4687-a6d7-24f99d23dd81", + "path": "/rightStick/up", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "2db08d65-c5fb-421b-983f-c71163608d67", + "path": "/leftStick/down", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "58748904-2ea9-4a80-8579-b500e6a76df8", + "path": "/rightStick/down", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "8ba04515-75aa-45de-966d-393d9bbd1c14", + "path": "/leftStick/left", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "712e721c-bdfb-4b23-a86c-a0d9fcfea921", + "path": "/rightStick/left", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "fcd248ae-a788-4676-a12e-f4d81205600b", + "path": "/leftStick/right", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "1f04d9bc-c50b-41a1-bfcc-afb75475ec20", + "path": "/rightStick/right", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "", + "id": "fb8277d4-c5cd-4663-9dc7-ee3f0b506d90", + "path": "/dpad", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "Joystick", + "id": "e25d9774-381c-4a61-b47c-7b6b299ad9f9", + "path": "2DVector", + "interactions": "", + "processors": "", + "groups": "", + "action": "Navigate", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "3db53b26-6601-41be-9887-63ac74e79d19", + "path": "/stick/up", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "0cb3e13e-3d90-4178-8ae6-d9c5501d653f", + "path": "/stick/down", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "0392d399-f6dd-4c82-8062-c1e9c0d34835", + "path": "/stick/left", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "942a66d9-d42f-43d6-8d70-ecb4ba5363bc", + "path": "/stick/right", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "Keyboard", + "id": "ff527021-f211-4c02-933e-5976594c46ed", + "path": "2DVector", + "interactions": "", + "processors": "", + "groups": "", + "action": "Navigate", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "563fbfdd-0f09-408d-aa75-8642c4f08ef0", + "path": "/w", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "up", + "id": "eb480147-c587-4a33-85ed-eb0ab9942c43", + "path": "/upArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "2bf42165-60bc-42ca-8072-8c13ab40239b", + "path": "/s", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "85d264ad-e0a0-4565-b7ff-1a37edde51ac", + "path": "/downArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "74214943-c580-44e4-98eb-ad7eebe17902", + "path": "/a", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "cea9b045-a000-445b-95b8-0c171af70a3b", + "path": "/leftArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "8607c725-d935-4808-84b1-8354e29bab63", + "path": "/d", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "4cda81dc-9edd-4e03-9d7c-a71a14345d0b", + "path": "/rightArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "", + "id": "9e92bb26-7e3b-4ec4-b06b-3c8f8e498ddc", + "path": "*/{Submit}", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR", + "action": "Submit", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "82627dcc-3b13-4ba9-841d-e4b746d6553e", + "path": "*/{Cancel}", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR", + "action": "Cancel", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c52c8e0b-8179-41d3-b8a1-d149033bbe86", + "path": "/position", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Point", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e1394cbc-336e-44ce-9ea8-6007ed6193f7", + "path": "/position", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Point", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "5693e57a-238a-46ed-b5ae-e64e6e574302", + "path": "/touch*/position", + "interactions": "", + "processors": "", + "groups": "Touch", + "action": "Point", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4faf7dc9-b979-4210-aa8c-e808e1ef89f5", + "path": "/leftButton", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8d66d5ba-88d7-48e6-b1cd-198bbfef7ace", + "path": "/tip", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "47c2a644-3ebc-4dae-a106-589b7ca75b59", + "path": "/touch*/press", + "interactions": "", + "processors": "", + "groups": "Touch", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "bb9e6b34-44bf-4381-ac63-5aa15d19f677", + "path": "/trigger", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "38c99815-14ea-4617-8627-164d27641299", + "path": "/scroll", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "ScrollWheel", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4c191405-5738-4d4b-a523-c6a301dbf754", + "path": "/rightButton", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "RightClick", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "24066f69-da47-44f3-a07e-0015fb02eb2e", + "path": "/middleButton", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "MiddleClick", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "7236c0d9-6ca3-47cf-a6ee-a97f5b59ea77", + "path": "/devicePosition", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "TrackedDevicePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "23e01e3a-f935-4948-8d8b-9bcac77714fb", + "path": "/deviceRotation", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "TrackedDeviceOrientation", + "isComposite": false, + "isPartOfComposite": false + } + ] + } + ], + "controlSchemes": [ + { + "name": "Keyboard&Mouse", + "bindingGroup": "Keyboard&Mouse", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + }, + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Gamepad", + "bindingGroup": "Gamepad", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Touch", + "bindingGroup": "Touch", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Joystick", + "bindingGroup": "Joystick", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "XR", + "bindingGroup": "XR", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + } + ] +} \ No newline at end of file diff --git a/Assets/GameInputs.inputactions.meta b/Assets/GameInputs.inputactions.meta new file mode 100644 index 0000000..e336413 --- /dev/null +++ b/Assets/GameInputs.inputactions.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 052faaac586de48259a63d0c4782560b +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} + generateWrapperCode: 1 + wrapperCodePath: + wrapperClassName: + wrapperCodeNamespace: diff --git a/Assets/Readme.asset b/Assets/Readme.asset new file mode 100644 index 0000000..77c2f83 --- /dev/null +++ b/Assets/Readme.asset @@ -0,0 +1,34 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fcf7219bab7fe46a1ad266029b2fee19, type: 3} + m_Name: Readme + m_EditorClassIdentifier: + icon: {fileID: 2800000, guid: 727a75301c3d24613a3ebcec4a24c2c8, type: 3} + title: URP Empty Template + sections: + - heading: Welcome to the Universal Render Pipeline + text: This template includes the settings and assets you need to start creating with the Universal Render Pipeline. + linkText: + url: + - heading: URP Documentation + text: + linkText: Read more about URP + url: https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest + - heading: Forums + text: + linkText: Get answers and support + url: https://forum.unity.com/forums/universal-render-pipeline.383/ + - heading: Report bugs + text: + linkText: Submit a report + url: https://unity3d.com/unity/qa/bug-reporting + loadedLayout: 1 diff --git a/Assets/Readme.asset.meta b/Assets/Readme.asset.meta new file mode 100644 index 0000000..ab3ad45 --- /dev/null +++ b/Assets/Readme.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8105016687592461f977c054a80ce2f2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources.meta b/Assets/Resources.meta new file mode 100644 index 0000000..8f61df7 --- /dev/null +++ b/Assets/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6bfb2e6d47d52c34dbad4db60e403f3a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials.meta b/Assets/Resources/Materials.meta new file mode 100644 index 0000000..c9c4465 --- /dev/null +++ b/Assets/Resources/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cc2982b96b7f35e43ac2743a2b480b9b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/Green.mat b/Assets/Resources/Materials/Green.mat new file mode 100644 index 0000000..d8f8008 --- /dev/null +++ b/Assets/Resources/Materials/Green.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4014440723097155061 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion + version: 10 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Green + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _SPECULAR_SETUP + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 0 + - _XRMotionVectorsPass: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0.32805273, g: 0.7169812, b: 0.34573126, a: 1} + - _Color: {r: 0.3280527, g: 0.7169812, b: 0.34573123, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/Resources/Materials/Green.mat.meta b/Assets/Resources/Materials/Green.mat.meta new file mode 100644 index 0000000..1b757ed --- /dev/null +++ b/Assets/Resources/Materials/Green.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 97b18b5a446e9f54692a651543b48e8d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/Red.mat b/Assets/Resources/Materials/Red.mat new file mode 100644 index 0000000..540bf22 --- /dev/null +++ b/Assets/Resources/Materials/Red.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4014440723097155061 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion + version: 10 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Red + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _SPECULAR_SETUP + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 0 + - _XRMotionVectorsPass: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0.6603774, g: 0.20870416, b: 0.23180114, a: 1} + - _Color: {r: 0.6603774, g: 0.20870411, b: 0.2318011, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/Resources/Materials/Red.mat.meta b/Assets/Resources/Materials/Red.mat.meta new file mode 100644 index 0000000..654f583 --- /dev/null +++ b/Assets/Resources/Materials/Red.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f707c41b0269f41469470c60b514faeb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/Tower.mat b/Assets/Resources/Materials/Tower.mat new file mode 100644 index 0000000..748e413 --- /dev/null +++ b/Assets/Resources/Materials/Tower.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Tower + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _SPECULAR_SETUP + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 0 + - _XRMotionVectorsPass: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0.4245283, g: 0.16620682, b: 0.38762525, a: 1} + - _Color: {r: 0.42452827, g: 0.16620678, b: 0.38762522, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &5302865439578978914 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion + version: 10 diff --git a/Assets/Resources/Materials/Tower.mat.meta b/Assets/Resources/Materials/Tower.mat.meta new file mode 100644 index 0000000..d5213f3 --- /dev/null +++ b/Assets/Resources/Materials/Tower.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5ad0d636505e689478043e012ee49311 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Models.meta b/Assets/Resources/Models.meta new file mode 100644 index 0000000..40b97bf --- /dev/null +++ b/Assets/Resources/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b8e70760fe790d4e8bf2d4b67cda0d3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Models/FBX.meta b/Assets/Resources/Models/FBX.meta new file mode 100644 index 0000000..d191f39 --- /dev/null +++ b/Assets/Resources/Models/FBX.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 74832680e5e1249a3a73afd7a6dedcbc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Models/FBX/Slices.fbx b/Assets/Resources/Models/FBX/Slices.fbx new file mode 100644 index 0000000000000000000000000000000000000000..e8b878adf8e58a7170dc6578d1f401ec643ab4c8 GIT binary patch literal 18892 zcmc&+30M@zwr&I+L6#86WU#bgryBkFN6Uga=3nWeC1hROUHCr_|?Wv7ncdn?=V$5j78?NopUZ zrxjeOT1(4Wg*K}UN`$&)CRnKQrl`Pe9IepD-ho~`5#_dwXLM|4EcUHEKnN(V(Tdzy zcgXY;Wx9=Gvh`eZ!bQ2Q;?=rrmX7TL(qqN>a$3pgRIx)LpB3e|iC1ehY6D-G0*#cU zpNM2%$dz#&W%Tmb;bypo)`7i!UpKIdDH@vdP;6o!-@d*<{et=h!g*l7fC2pm{~Nl} z0_6SRXf0RLIyzRD&d6Vc+mRY(ib8|8l#96pdzosW_0bAe(H%6Q0aQCU+|c-Pap@pZ ziY_*pSp_$(M7?m2r&$GJsccEl6cw~gQL`Fa4j9xIqHLKwd&*Q=$#Ml7MFp)Qv)N3r z2rB$6%6A`4=jJeam4Pd{DlSQ;XQ+{bT*)I*i7blIYH1x`2?CnZETjWTZIkp&7OiL1 zv|+G+I&>6!9}I^}lDrL^q8Vj2qNM6Ia#R~FXZ31bh8#_Td2pgQ!T#wCm|x#7eTs1_ zfeC>!fbm2Ty|Ot-*8s^4)O+zr=&eM(Is-Zj9TlsokX}6 zJpY}5NATcXZGe-(Zv!9u&5f4faD_MVJQ@xTQ&WMvbP7b4Nh9M^I2#HXW*f?}q5c8= z;a@=TV1HkK|DoK!e*XUc9}{Te+xBAU7`2AB(|x3qh$ROA33^Sv1_#))HJsuU23D?^ zL91*yw@WKYztBo16(_xGB+yBGYhJbmZKr>B+*?A>BYAX~5o|S_n@^hZZ%^PC`Zs}x zdr1N(__LV~W(al|kKF@KChmv^Py&pJ88mv_Mq@$G(exu!iD4Oe+6p0KRmt9P{rdKQ z-2J}S@t+PH-ujRAZ#=1~C30xKwvt&AO^;OV>mLCBd;F0X&@FGUrW@m6QJf{R#Ru_?5p;LfrT}`$*bZpi_ycPz<#ALk5JQyra!NVlcrg- z$$GzTTyGQuQ<(jFp$_VL<9f}SP1gG=7zg_s00)=~Cm(^oO32oK=}r&OJql`9n*I!2*nVctQ%tC(z9=x~<_+1e?@-O*42>3;Ylf)W9D&<|v| zsUgpfmI%QYnKg<>LwZJPr>J3Kk76{?AmA6pT_ukkE=Tk6*>FLT7FoMk1*j-Y!WuFp znod__YuG551@#IWq2UFPgJp**TL}xkBv?Xc!CDBSNjZUg4a%X**e0B*;u#e!$C-lG zWoyl|R4mRX9iS)Jf&s{^3lX>rICIMbJX6U8U;tbL02;;& zz+~Cf-+K0TA$W*dO7um}j>~R*q}IX`%1{BdVqCzk zw~T@%3d@CwvmlHMv+i)X3&L?bneiM5*B5SKY`)qkf|mrUiBNzR>kS97iyR&glyoA$ zazzF+=0z;$mersmaz;lGiR2s`sZ(pg9m;8TW={~7rlWv{eZ+|6p3E?80`MSCDr4== z9fv$g9?5h%t*3QL+8|_c=P!DhZ`%N6)i9!94Q&VpUBRxVfUW}BBvAn|I8tR5$;PgF z@Rs2oE3gUDsp8Yd09cVE-GE6CGtnnvG#m&cX+}%4`rPx4aWGb&C92pcZ?dG%O`)|} z8e|}j{Fo`mc-oM86em`aBo3bnaSG)k;Q)uDADa#h%knYZ36E}cv5&w-^Kghfd^lr- zhe>W+r@@G4^nuab;NWjK3ZXcc8ee!q%Mr#BQDJN@;%Gp`e)fk0x{R?tNw3!8u0R?* zQ%zB8)NC#nd8RN7dDHqW%OATEME=2@=S$_$uZc{+fVe~d> z1We3_YHPFwIqGxJweXEd*NI_WX&<=xqq{dOGqAU!fhKM7TekW-xhc(YwltSDr8(Y~ z=4tzy3Zu=|dcruf(@%xbW@|?^rD?OZbBU%X_z43lQ4iaATraJR@Iypz5cmZ~I6h?y zdaz_u(lLxaPOVk5i8_tdzzgzJJ9ym1{tknKL~RoWt4>eX(FVg?O)t7AD$N0)agG43 zb^vI+BS4o4kU!rw9B=rz6i4ft*6tM%2+s(pLe}`WJWkTnCfndDq8ZcfhXhp=i;@@v z>nv;$z@iu5fWsoz+Ydx9!^WFMFNL-^5rr5#sLc;S-vBChvJc-$jN_uV+8oiB?W)-v z&M&}lvR#|au{_$2nw_xoo?SJYjof2b&1NI3iQ4PDC6U{)x=dQHX1VpYjRl1tZ2zJ~ zL}7}|qxLyA3-pj`POTK8L36R+fG2%ydOVK}j}~TZ!UIR3MT9a@i~(r06 z1>Vfjx(qhcA=iv)62_q(Eo~CUp-xp;f#DtWOr7fO+t@Zz7>7EgZ4$cU4>M}Hr4WarbKpg5&$Sb^EY_-Ip?&tvo=UFn<;L~{=!%T~0h3zJ8jcU0k z_#M$AQ!vssHH%+{+SNNxnhYm29#$;RWOA%MKDj`d&#Qb7hw$Psdr%2<20Yi!pkad< zJ`-SJTL#|uXJ=(Guq%vkR`zsgDGEHS2>aQQEWGxfg5N>FR|-bkZ(Q&d!V-eglWz;| zl*Z_3`dxk#+oD=1q)Hkq#3e?6KQ)+z0la;kRRF$K(B1x3D zwx^#ERJ&fh&&hTZuF^!? zb{4l*5GND;5l{v_g=a63zAsr`Dq!!}UJ-|jf4EISym;310P817#_u5;euga?SIF~& z!(G_=jVruU+5!dTIEtdwdZmV@T!d1NE4ah!@fynTNwPgBWOC;>KnkhQ5)Ll`L-@96 z7G!<{JO3z<4u9OCfK|gLx@rmJVD32hV|3B}QZTwGqI1jpi#(so`sF_v948xm`Rjhg zsVQ0IBM!gL-nrGQ)r!4s&P2{!_rd2cu-=EdY?$w!JiR=2f6k46^J$_d>bhC+N2o$9e^iGbl0*Mz{JOCe>E5 z*Lzh?3fo)o__wz*{x2+i_l;d86<;1!=Zvo&RJ>a-vGVCV2T%Q8E4%yevV%jH zxGug~I8avay7;nJ$c*r;{XQ$10W*#BX3rWjY43?$`h4Zh0Xci?mYk^ntKy_#Z(aW8 z{a-8d9$wk@J6qLyWp(MXJ*To4{rYLyo|JntGpqAA&;DlG>N{t0k6!t1`!4pu)T<4L zCYJA9%~rkA{qgiUb)RgWz4rQ(b7eoaY>*}2dNVu#LM$3t1AjUsF`C>AMu#4tja>9m z7ZN8-;+)X;v$M%9BE3h9eIeQ{CC>fB;JJ?)8V=5NDW3cCDc8t?2XyFyDI0W`!?uV1 za5?mI_xIL#Jqr5Czguz7!#f$Hhfl=cw>$PYID5j(`AVY)Jw`StVXZo4!NSYeb0+@w z%B4%O4_v!0A2#obLTM-|mxX+gk<{VugFh=XJMYBTIcxe4`EdEP?gzFO?D@6)y@jPa zzv;bi-j+4FtQYg!<`_yGJ zZsVgmZGHT4PPvO_b3sGM`?U|-j*m$-?(Ed5X28CMUEi*4t=T+qT*<)7Fy-AL3rYum zzu2QPWMx4^&Er+yW~f${Wp%6HxUt6N=e;>akIo&)DSk9;SC`8D)3q+ai50mqzp7_n z=~=y~_J?`1GuqYB;Xl^agsj+AUl@9#p>y4=P31i%O|D)TeB!SA_nizYiaKhlZVfp# z`rMVuBZ0>E8(elT`uU72Ji4PR(Bv&gs4{4SdNN#M)^<3IF71kry-@_WS644gUvg{b zYsJfo{z#a*>GG{l13nwsv-I>AKMgpd&pP$ljwLs4_~sRQdOnS;7(2<^EpqWIMRgZ4 z4$WEX+1YS%ca-O_YwMJ~Go)kbkDhLsBrZP-BwxPw`zRN@$Y{Bb>ID8-q^Cg;NGTo)%)rXezQ32k>*&ZNwc?W zOLD@WJUGVWRsMB%b%Tdb*ReBU#|4{@1HVI@A{V}K)X?~aR|2Eg!sm04O+}Diqm1b_ z7!5aRq5?PWWgdzzB)RzH^isScD+@Nj@iRQYD zR4C;lbS)0|*yug8>)g8cj?Z`bwUNNvh`784@@r0*QoxCcG-F{Qldj__t#(F8IEuHdNc`LhlPxFQi{M zv7>KEANN5icd2DG?ae4+Xlsc9+|oRM?z0)yjR=ay?<@$b@N_i&iIeJPjKq{BWSBZE%j!qF7EJ3yw< zrSC5?U6H?c^ccSx*B)H?;nd7M4LASriD==|rP8x_+&{a1eni!0z*pS5wj9pGLH3QesOID8UJ?>$|v7cn)Uz&NTDrCj=zwc>6 zZ#-DF^Zq8)7Z?9vcKg&m9$WX*`JAu5jj6p|wP0h&sinoQURuAZ?TK6E+xIOm$(!u8 zWmwH@`is(yPuuqhtxtccM`+-Y6KgYCZO=dQX8IG^Izxvq!I0*(2i8DnUi5ZLjxZcg zE{S+#;t9GU2IPg*R!p$&1PFGV$ydMVc(DXOfPzI8df>LAit`y)s{qWMH`=OcK0!c6 z@ZT4ETGW)9w%XBJBvndoYGB2St3$AaXmzMM|0*ZNtyZIQ;VmS*h=ETw1FWnO`}H>i z+Fm0jf|TF^t82vRM4%lu#I!~3D6E(C7##3<*kBZ7n!BZ?CxxN7dLLjOrRLDfx zCKF&a)1g2}l29>h07ePTmT+Soz9}F{!i{5~;WRgP^_k~E z&5aQp3OjyK-Sg%K4VcbzV>v-_f*XebLNKx=H!4JB7Toxg6iKxLxv>W@o##e1L2-f`oxweV|1IZ~Kv9_mH)2VVlp7k7>nJz= zJG>D$zWSdET$NhHje(ZjI4)|Mgd3d!Qb>}xF)Xb4+^~!rg~D2N?qY)aJh^cOFrDW{ z8!!Z-IKhn|fUw1lL{XUqH)v8M<;Djj*HLa1L^k5aVP-mPlUQ;6i<&0kMi4*> zNy3e>5zXg@<$A-!4Qc~HeV*K?0Ziw);Rl9rk{d|?;R41)7|XaZO;l#Vjd`R<%8mae zxsGz9G^!CdcD~=!7n))bHwIgB!)>^^*%EFf0i=*5+%SNKlXFU8bi$rHUpC~$6h_O} zuWR3_syM8KpgvD-w1X}<&y6U8;zZog0E8`WED)7haAPGYY5{&QKf@N1Tt~U_`v{&J zy#a+h!w${IJs;o(VhDSnmdxk@FEg(l2 zey|^?hc82|{6{bnkiYhAXnpeV>GXmbkLP!*?>$FSNN(`|GW!2Y566Ez^~#^;=TzQl Ldp&z`pEmyiV5z4M literal 0 HcmV?d00001 diff --git a/Assets/Resources/Models/FBX/Slices.fbx.meta b/Assets/Resources/Models/FBX/Slices.fbx.meta new file mode 100644 index 0000000..9d5bcb5 --- /dev/null +++ b/Assets/Resources/Models/FBX/Slices.fbx.meta @@ -0,0 +1,109 @@ +fileFormatVersion: 2 +guid: b1c41e022ae344de08711565989f6bfe +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/PlatformPrefabs.meta b/Assets/Resources/PlatformPrefabs.meta new file mode 100644 index 0000000..1bedb90 --- /dev/null +++ b/Assets/Resources/PlatformPrefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fa9f44bfb77a63144ac3be70456acb20 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/PlatformPrefabs/PlatformPiece (1).prefab b/Assets/Resources/PlatformPrefabs/PlatformPiece (1).prefab new file mode 100644 index 0000000..8baa179 --- /dev/null +++ b/Assets/Resources/PlatformPrefabs/PlatformPiece (1).prefab @@ -0,0 +1,1073 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &262491522691161299 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6204317597981964952} + - component: {fileID: 7069821477942275577} + - component: {fileID: 4467446268311804971} + - component: {fileID: 2963519295179537184} + m_Layer: 0 + m_Name: Circle.004 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6204317597981964952 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 262491522691161299} + serializedVersion: 2 + m_LocalRotation: {x: -1.2509052e-14, y: 0.7071068, z: 0.7071067, w: -0.00000010677015} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 651413663367727230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7069821477942275577 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 262491522691161299} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &4467446268311804971 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 262491522691161299} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &2963519295179537184 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 262491522691161299} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &658806974542451478 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6517736703748504773} + - component: {fileID: 5446605041844367274} + - component: {fileID: 6484944683031657338} + - component: {fileID: 7392658513877077447} + m_Layer: 0 + m_Name: Circle.007 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6517736703748504773 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 658806974542451478} + serializedVersion: 2 + m_LocalRotation: {x: -0.65328157, y: 0.270598, z: 0.270598, w: 0.6532815} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 651413663367727230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5446605041844367274 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 658806974542451478} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &6484944683031657338 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 658806974542451478} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &7392658513877077447 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 658806974542451478} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &1255804431331837945 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6304616555666833587} + - component: {fileID: 6348581412218007389} + - component: {fileID: 6505110412805754007} + - component: {fileID: 9143750016344564919} + m_Layer: 0 + m_Name: Circle + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6304616555666833587 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1255804431331837945} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 651413663367727230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6348581412218007389 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1255804431331837945} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &6505110412805754007 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1255804431331837945} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &9143750016344564919 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1255804431331837945} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &1343519718839818625 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1430584768429526380} + - component: {fileID: 6083695908876797999} + - component: {fileID: 191796048587563177} + - component: {fileID: 5242185045307787918} + m_Layer: 0 + m_Name: Circle.006 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1430584768429526380 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1343519718839818625} + serializedVersion: 2 + m_LocalRotation: {x: 0.5, y: -0.49999997, z: -0.5, w: -0.5} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 651413663367727230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6083695908876797999 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1343519718839818625} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &191796048587563177 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1343519718839818625} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &5242185045307787918 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1343519718839818625} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &4143383919513345753 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4258176208494010658} + - component: {fileID: 5906506451999793890} + - component: {fileID: 884408932856658598} + - component: {fileID: 535984050403346329} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4258176208494010658 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4143383919513345753} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6, y: 0.5, z: 0.6} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 651413663367727230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5906506451999793890 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4143383919513345753} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &884408932856658598 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4143383919513345753} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 5ad0d636505e689478043e012ee49311, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &535984050403346329 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4143383919513345753} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5000001 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} +--- !u!1 &4321926146105179262 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4744349439409036172} + - component: {fileID: 6727833357978203794} + - component: {fileID: 6447211062952425493} + - component: {fileID: 2507090406371487580} + m_Layer: 0 + m_Name: Circle.005 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4744349439409036172 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4321926146105179262} + serializedVersion: 2 + m_LocalRotation: {x: -0.27059802, y: 0.65328157, z: 0.65328145, w: 0.27059808} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 651413663367727230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6727833357978203794 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4321926146105179262} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &6447211062952425493 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4321926146105179262} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &2507090406371487580 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4321926146105179262} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &5103959207660183491 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6552343993920710661} + - component: {fileID: 7657575773578601300} + - component: {fileID: 2223556499096593860} + - component: {fileID: 2399069385747227419} + m_Layer: 0 + m_Name: Circle.003 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6552343993920710661 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5103959207660183491} + serializedVersion: 2 + m_LocalRotation: {x: 0.27059802, y: 0.65328157, z: 0.65328145, w: -0.27059808} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 651413663367727230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7657575773578601300 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5103959207660183491} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &2223556499096593860 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5103959207660183491} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &2399069385747227419 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5103959207660183491} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &6575752772144575557 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2685542387285224337} + - component: {fileID: 4815806536277257988} + - component: {fileID: 1134318083663115596} + - component: {fileID: 7800254606096852991} + m_Layer: 0 + m_Name: Circle.001 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &2685542387285224337 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6575752772144575557} + serializedVersion: 2 + m_LocalRotation: {x: -0.6532815, y: -0.27059802, z: -0.27059808, w: 0.65328145} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 651413663367727230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4815806536277257988 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6575752772144575557} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &1134318083663115596 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6575752772144575557} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &7800254606096852991 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6575752772144575557} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &7665055513743108973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 651413663367727230} + - component: {fileID: 8033809753174762171} + m_Layer: 0 + m_Name: PlatformPiece (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &651413663367727230 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7665055513743108973} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6304616555666833587} + - {fileID: 2685542387285224337} + - {fileID: 4958998992567066165} + - {fileID: 6552343993920710661} + - {fileID: 6204317597981964952} + - {fileID: 4744349439409036172} + - {fileID: 1430584768429526380} + - {fileID: 6517736703748504773} + - {fileID: 4258176208494010658} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8033809753174762171 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7665055513743108973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67c2916908f5f5e4b80dc9c59b8b1592, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Platform +--- !u!1 &8799659110609768844 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4958998992567066165} + - component: {fileID: 6823388116500332988} + - component: {fileID: 6575175740767289691} + - component: {fileID: 1047793596024365301} + m_Layer: 0 + m_Name: Circle.002 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4958998992567066165 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8799659110609768844} + serializedVersion: 2 + m_LocalRotation: {x: 0.5, y: 0.49999997, z: 0.5, w: -0.5} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 651413663367727230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6823388116500332988 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8799659110609768844} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &6575175740767289691 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8799659110609768844} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &1047793596024365301 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8799659110609768844} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} diff --git a/Assets/Resources/PlatformPrefabs/PlatformPiece (1).prefab.meta b/Assets/Resources/PlatformPrefabs/PlatformPiece (1).prefab.meta new file mode 100644 index 0000000..1106b5d --- /dev/null +++ b/Assets/Resources/PlatformPrefabs/PlatformPiece (1).prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a5b9d709e3526c14d837e44eed8d1ee2 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/PlatformPrefabs/PlatformPiece (2).prefab b/Assets/Resources/PlatformPrefabs/PlatformPiece (2).prefab new file mode 100644 index 0000000..04323ea --- /dev/null +++ b/Assets/Resources/PlatformPrefabs/PlatformPiece (2).prefab @@ -0,0 +1,1073 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &140991634993553834 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3850016140220317924} + - component: {fileID: 2860139968162344328} + - component: {fileID: 9157964045076774305} + - component: {fileID: 113841774182651178} + m_Layer: 0 + m_Name: Circle.006 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3850016140220317924 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 140991634993553834} + serializedVersion: 2 + m_LocalRotation: {x: 0.5, y: -0.49999997, z: -0.5, w: -0.5} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3313539815144672320} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2860139968162344328 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 140991634993553834} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &9157964045076774305 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 140991634993553834} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &113841774182651178 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 140991634993553834} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &1110895642441335304 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3313539815144672320} + - component: {fileID: 8185704084469999373} + m_Layer: 0 + m_Name: PlatformPiece (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3313539815144672320 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1110895642441335304} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8726320547956748514} + - {fileID: 992372335494191088} + - {fileID: 5962508057284970097} + - {fileID: 3583944916180194053} + - {fileID: 1986941859120015472} + - {fileID: 374640648751055984} + - {fileID: 3850016140220317924} + - {fileID: 1070671796647437863} + - {fileID: 5955087755349425306} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8185704084469999373 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1110895642441335304} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67c2916908f5f5e4b80dc9c59b8b1592, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Platform +--- !u!1 &2164813138477671084 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 374640648751055984} + - component: {fileID: 3047076942303226290} + - component: {fileID: 3389279985711135909} + - component: {fileID: 8731784961809086278} + m_Layer: 0 + m_Name: Circle.005 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &374640648751055984 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2164813138477671084} + serializedVersion: 2 + m_LocalRotation: {x: -0.27059802, y: 0.65328157, z: 0.65328145, w: 0.27059808} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3313539815144672320} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3047076942303226290 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2164813138477671084} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &3389279985711135909 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2164813138477671084} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &8731784961809086278 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2164813138477671084} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &2949899986852852572 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1986941859120015472} + - component: {fileID: 6906643553858243276} + - component: {fileID: 2462945990676002825} + - component: {fileID: 6802377470366803822} + m_Layer: 0 + m_Name: Circle.004 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1986941859120015472 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2949899986852852572} + serializedVersion: 2 + m_LocalRotation: {x: -1.2509052e-14, y: 0.7071068, z: 0.7071067, w: -0.00000010677015} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3313539815144672320} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6906643553858243276 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2949899986852852572} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &2462945990676002825 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2949899986852852572} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &6802377470366803822 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2949899986852852572} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &3815145935107568919 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8726320547956748514} + - component: {fileID: 5587103199542415465} + - component: {fileID: 3849748475270913016} + - component: {fileID: 7031852574923903786} + m_Layer: 0 + m_Name: Circle + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8726320547956748514 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3815145935107568919} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3313539815144672320} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5587103199542415465 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3815145935107568919} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &3849748475270913016 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3815145935107568919} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &7031852574923903786 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3815145935107568919} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &3822803429236825732 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5962508057284970097} + - component: {fileID: 1957213676555222247} + - component: {fileID: 4477387259329746374} + - component: {fileID: 3068995696433113570} + m_Layer: 0 + m_Name: Circle.002 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5962508057284970097 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3822803429236825732} + serializedVersion: 2 + m_LocalRotation: {x: 0.5, y: 0.49999997, z: 0.5, w: -0.5} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3313539815144672320} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1957213676555222247 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3822803429236825732} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &4477387259329746374 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3822803429236825732} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &3068995696433113570 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3822803429236825732} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &4944924217440609552 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 992372335494191088} + - component: {fileID: 2709212833355878833} + - component: {fileID: 7535915698137700435} + - component: {fileID: 7586545345833566346} + m_Layer: 0 + m_Name: Circle.001 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &992372335494191088 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4944924217440609552} + serializedVersion: 2 + m_LocalRotation: {x: -0.6532815, y: -0.27059802, z: -0.27059808, w: 0.65328145} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3313539815144672320} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2709212833355878833 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4944924217440609552} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &7535915698137700435 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4944924217440609552} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &7586545345833566346 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4944924217440609552} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &5578704923853214251 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1070671796647437863} + - component: {fileID: 2277997231941121211} + - component: {fileID: 1258113564554602888} + - component: {fileID: 8185852486669747795} + m_Layer: 0 + m_Name: Circle.007 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &1070671796647437863 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5578704923853214251} + serializedVersion: 2 + m_LocalRotation: {x: -0.65328157, y: 0.270598, z: 0.270598, w: 0.6532815} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3313539815144672320} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2277997231941121211 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5578704923853214251} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &1258113564554602888 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5578704923853214251} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &8185852486669747795 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5578704923853214251} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &8054488878677529196 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5955087755349425306} + - component: {fileID: 4801976783940853179} + - component: {fileID: 2153374378215860252} + - component: {fileID: 7196395785428297811} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5955087755349425306 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8054488878677529196} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6, y: 0.5, z: 0.6} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3313539815144672320} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4801976783940853179 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8054488878677529196} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &2153374378215860252 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8054488878677529196} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 5ad0d636505e689478043e012ee49311, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &7196395785428297811 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8054488878677529196} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5000001 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} +--- !u!1 &8605473762757961797 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3583944916180194053} + - component: {fileID: 3947261797987965164} + - component: {fileID: 5491368878633141406} + - component: {fileID: 51662103487213354} + m_Layer: 0 + m_Name: Circle.003 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &3583944916180194053 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8605473762757961797} + serializedVersion: 2 + m_LocalRotation: {x: 0.27059802, y: 0.65328157, z: 0.65328145, w: -0.27059808} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3313539815144672320} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3947261797987965164 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8605473762757961797} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &5491368878633141406 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8605473762757961797} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &51662103487213354 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8605473762757961797} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} diff --git a/Assets/Resources/PlatformPrefabs/PlatformPiece (2).prefab.meta b/Assets/Resources/PlatformPrefabs/PlatformPiece (2).prefab.meta new file mode 100644 index 0000000..05eae2a --- /dev/null +++ b/Assets/Resources/PlatformPrefabs/PlatformPiece (2).prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2f645f8c4aed0584b86fd1481464fcac +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/PlatformPrefabs/PlatformPiece (3).prefab b/Assets/Resources/PlatformPrefabs/PlatformPiece (3).prefab new file mode 100644 index 0000000..cfe1a85 --- /dev/null +++ b/Assets/Resources/PlatformPrefabs/PlatformPiece (3).prefab @@ -0,0 +1,1073 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &325838482280749412 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7829378713700354394} + - component: {fileID: 8814177935701361205} + - component: {fileID: 6643959474654269621} + - component: {fileID: 891940722518467983} + m_Layer: 0 + m_Name: Circle.003 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7829378713700354394 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325838482280749412} + serializedVersion: 2 + m_LocalRotation: {x: 0.27059802, y: 0.65328157, z: 0.65328145, w: -0.27059808} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6187818017000816550} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8814177935701361205 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325838482280749412} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &6643959474654269621 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325838482280749412} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &891940722518467983 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325838482280749412} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &1056965212480525314 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6187818017000816550} + - component: {fileID: -1871041913313447106} + m_Layer: 0 + m_Name: PlatformPiece (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6187818017000816550 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1056965212480525314} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3607148183330719361} + - {fileID: 1132049677334782113} + - {fileID: 6395432472893223903} + - {fileID: 7829378713700354394} + - {fileID: 5366091550400986184} + - {fileID: 8811288980662705266} + - {fileID: 4406748924596436185} + - {fileID: 1502086209263209501} + - {fileID: 6395496465086700944} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &-1871041913313447106 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1056965212480525314} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67c2916908f5f5e4b80dc9c59b8b1592, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Platform +--- !u!1 &1096601960769658625 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8811288980662705266} + - component: {fileID: 8789960366224534088} + - component: {fileID: 573096669657044386} + - component: {fileID: 6956209735994543253} + m_Layer: 0 + m_Name: Circle.005 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8811288980662705266 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1096601960769658625} + serializedVersion: 2 + m_LocalRotation: {x: -0.27059802, y: 0.65328157, z: 0.65328145, w: 0.27059808} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6187818017000816550} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8789960366224534088 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1096601960769658625} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &573096669657044386 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1096601960769658625} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &6956209735994543253 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1096601960769658625} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &2171017359041127850 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4406748924596436185} + - component: {fileID: 2186148270129283857} + - component: {fileID: 6419849638205164980} + - component: {fileID: 4922195275776838037} + m_Layer: 0 + m_Name: Circle.006 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4406748924596436185 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2171017359041127850} + serializedVersion: 2 + m_LocalRotation: {x: 0.5, y: -0.49999997, z: -0.5, w: -0.5} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6187818017000816550} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2186148270129283857 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2171017359041127850} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &6419849638205164980 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2171017359041127850} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &4922195275776838037 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2171017359041127850} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &2646538039686984622 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1132049677334782113} + - component: {fileID: 8272484393721454030} + - component: {fileID: 2370864240745515874} + - component: {fileID: 3180933071610780961} + m_Layer: 0 + m_Name: Circle.001 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &1132049677334782113 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2646538039686984622} + serializedVersion: 2 + m_LocalRotation: {x: -0.6532815, y: -0.27059802, z: -0.27059808, w: 0.65328145} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6187818017000816550} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8272484393721454030 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2646538039686984622} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &2370864240745515874 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2646538039686984622} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &3180933071610780961 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2646538039686984622} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &4339693384780881554 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6395496465086700944} + - component: {fileID: 147347051575573249} + - component: {fileID: 666178918607309912} + - component: {fileID: 3600922094688402012} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6395496465086700944 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4339693384780881554} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6, y: 0.5, z: 0.6} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6187818017000816550} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &147347051575573249 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4339693384780881554} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &666178918607309912 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4339693384780881554} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 5ad0d636505e689478043e012ee49311, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &3600922094688402012 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4339693384780881554} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5000001 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} +--- !u!1 &6458438307614168001 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1502086209263209501} + - component: {fileID: 3675061877539994868} + - component: {fileID: 4399200066247147518} + - component: {fileID: 5526949325561151518} + m_Layer: 0 + m_Name: Circle.007 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1502086209263209501 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6458438307614168001} + serializedVersion: 2 + m_LocalRotation: {x: -0.65328157, y: 0.270598, z: 0.270598, w: 0.6532815} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6187818017000816550} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3675061877539994868 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6458438307614168001} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &4399200066247147518 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6458438307614168001} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &5526949325561151518 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6458438307614168001} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &6964544347172026621 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3607148183330719361} + - component: {fileID: 2243100671521597540} + - component: {fileID: 7667677436275406914} + - component: {fileID: 5084196948684152205} + m_Layer: 0 + m_Name: Circle + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3607148183330719361 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6964544347172026621} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6187818017000816550} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2243100671521597540 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6964544347172026621} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &7667677436275406914 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6964544347172026621} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &5084196948684152205 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6964544347172026621} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &7159402459522159240 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6395432472893223903} + - component: {fileID: 2475503848668509043} + - component: {fileID: 2481721182766368094} + - component: {fileID: 3348857772288754417} + m_Layer: 0 + m_Name: Circle.002 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6395432472893223903 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7159402459522159240} + serializedVersion: 2 + m_LocalRotation: {x: 0.5, y: 0.49999997, z: 0.5, w: -0.5} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6187818017000816550} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2475503848668509043 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7159402459522159240} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &2481721182766368094 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7159402459522159240} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &3348857772288754417 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7159402459522159240} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &8794469212118061739 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5366091550400986184} + - component: {fileID: 1022027740092784372} + - component: {fileID: 386973652417556707} + - component: {fileID: 7555125317194081635} + m_Layer: 0 + m_Name: Circle.004 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &5366091550400986184 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8794469212118061739} + serializedVersion: 2 + m_LocalRotation: {x: -1.2509052e-14, y: 0.7071068, z: 0.7071067, w: -0.00000010677015} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6187818017000816550} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1022027740092784372 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8794469212118061739} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &386973652417556707 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8794469212118061739} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &7555125317194081635 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8794469212118061739} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} diff --git a/Assets/Resources/PlatformPrefabs/PlatformPiece (3).prefab.meta b/Assets/Resources/PlatformPrefabs/PlatformPiece (3).prefab.meta new file mode 100644 index 0000000..0a6eaa5 --- /dev/null +++ b/Assets/Resources/PlatformPrefabs/PlatformPiece (3).prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c343dd08989b7844287f75ac3514c559 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/PlatformPrefabs/PlatformPiece (4).prefab b/Assets/Resources/PlatformPrefabs/PlatformPiece (4).prefab new file mode 100644 index 0000000..6ab54fc --- /dev/null +++ b/Assets/Resources/PlatformPrefabs/PlatformPiece (4).prefab @@ -0,0 +1,1073 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &827026668498437861 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7781399265831168795} + - component: {fileID: 5582222077062366915} + - component: {fileID: 4319016490741582859} + - component: {fileID: 8073478500877275767} + m_Layer: 0 + m_Name: Circle.005 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7781399265831168795 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 827026668498437861} + serializedVersion: 2 + m_LocalRotation: {x: -0.27059802, y: 0.65328157, z: 0.65328145, w: 0.27059808} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3581487786871116014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5582222077062366915 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 827026668498437861} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &4319016490741582859 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 827026668498437861} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &8073478500877275767 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 827026668498437861} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &1194068746180947329 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3136552197386103524} + - component: {fileID: 8737301569927984432} + - component: {fileID: 4809564438378102694} + - component: {fileID: 1250355996321919881} + m_Layer: 0 + m_Name: Circle.007 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3136552197386103524 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194068746180947329} + serializedVersion: 2 + m_LocalRotation: {x: -0.65328157, y: 0.270598, z: 0.270598, w: 0.6532815} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3581487786871116014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8737301569927984432 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194068746180947329} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &4809564438378102694 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194068746180947329} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &1250355996321919881 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194068746180947329} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &1674997990249228588 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2443354939896951724} + - component: {fileID: 3877916288127281870} + - component: {fileID: 241204484222885991} + - component: {fileID: 7798353928880899975} + m_Layer: 0 + m_Name: Circle + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2443354939896951724 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1674997990249228588} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3581487786871116014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3877916288127281870 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1674997990249228588} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &241204484222885991 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1674997990249228588} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &7798353928880899975 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1674997990249228588} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &3131011278114451637 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8991284373363410243} + - component: {fileID: 6606169588889862821} + - component: {fileID: 3490058468473639996} + - component: {fileID: 3426737303438891477} + m_Layer: 0 + m_Name: Circle.003 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &8991284373363410243 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3131011278114451637} + serializedVersion: 2 + m_LocalRotation: {x: 0.27059802, y: 0.65328157, z: 0.65328145, w: -0.27059808} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3581487786871116014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6606169588889862821 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3131011278114451637} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &3490058468473639996 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3131011278114451637} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &3426737303438891477 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3131011278114451637} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &4018708325510264286 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5411898917154751843} + - component: {fileID: 6342165616946116509} + - component: {fileID: 6676959372024195655} + - component: {fileID: 8809964674005868795} + m_Layer: 0 + m_Name: Circle.004 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5411898917154751843 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4018708325510264286} + serializedVersion: 2 + m_LocalRotation: {x: -1.2509052e-14, y: 0.7071068, z: 0.7071067, w: -0.00000010677015} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3581487786871116014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6342165616946116509 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4018708325510264286} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &6676959372024195655 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4018708325510264286} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &8809964674005868795 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4018708325510264286} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &5873664087971002951 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8476328515128230553} + - component: {fileID: 3846090243051250331} + - component: {fileID: 3300972148658768068} + - component: {fileID: 4279266410613014893} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8476328515128230553 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5873664087971002951} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6, y: 0.5, z: 0.6} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3581487786871116014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3846090243051250331 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5873664087971002951} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3300972148658768068 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5873664087971002951} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 5ad0d636505e689478043e012ee49311, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &4279266410613014893 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5873664087971002951} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5000001 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} +--- !u!1 &5941790793055860369 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3911971199406534952} + - component: {fileID: 3024831911319786568} + - component: {fileID: 4449363530200829984} + - component: {fileID: 7914866211346677764} + m_Layer: 0 + m_Name: Circle.002 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3911971199406534952 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5941790793055860369} + serializedVersion: 2 + m_LocalRotation: {x: 0.5, y: 0.49999997, z: 0.5, w: -0.5} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3581487786871116014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3024831911319786568 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5941790793055860369} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &4449363530200829984 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5941790793055860369} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &7914866211346677764 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5941790793055860369} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &6347252381903401972 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2718274105544247695} + - component: {fileID: 7510593183968487253} + - component: {fileID: 5927635937043909964} + - component: {fileID: 3330153021053144539} + m_Layer: 0 + m_Name: Circle.006 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &2718274105544247695 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6347252381903401972} + serializedVersion: 2 + m_LocalRotation: {x: 0.5, y: -0.49999997, z: -0.5, w: -0.5} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3581487786871116014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7510593183968487253 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6347252381903401972} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &5927635937043909964 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6347252381903401972} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &3330153021053144539 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6347252381903401972} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &8221419529627920224 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3581487786871116014} + - component: {fileID: -3836827328528211383} + m_Layer: 0 + m_Name: PlatformPiece (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3581487786871116014 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8221419529627920224} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2443354939896951724} + - {fileID: 3494119966234114543} + - {fileID: 3911971199406534952} + - {fileID: 8991284373363410243} + - {fileID: 5411898917154751843} + - {fileID: 7781399265831168795} + - {fileID: 2718274105544247695} + - {fileID: 3136552197386103524} + - {fileID: 8476328515128230553} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &-3836827328528211383 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8221419529627920224} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67c2916908f5f5e4b80dc9c59b8b1592, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Platform +--- !u!1 &8600343344694873376 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3494119966234114543} + - component: {fileID: 2195486998491342569} + - component: {fileID: 2516742433714987739} + - component: {fileID: 6995019004130593180} + m_Layer: 0 + m_Name: Circle.001 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3494119966234114543 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8600343344694873376} + serializedVersion: 2 + m_LocalRotation: {x: -0.6532815, y: -0.27059802, z: -0.27059808, w: 0.65328145} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3581487786871116014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2195486998491342569 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8600343344694873376} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &2516742433714987739 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8600343344694873376} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &6995019004130593180 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8600343344694873376} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} diff --git a/Assets/Resources/PlatformPrefabs/PlatformPiece (4).prefab.meta b/Assets/Resources/PlatformPrefabs/PlatformPiece (4).prefab.meta new file mode 100644 index 0000000..d351131 --- /dev/null +++ b/Assets/Resources/PlatformPrefabs/PlatformPiece (4).prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c76304525f9173640950e2707decaada +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/PlatformPrefabs/PlatformPiece (5).prefab b/Assets/Resources/PlatformPrefabs/PlatformPiece (5).prefab new file mode 100644 index 0000000..08d6391 --- /dev/null +++ b/Assets/Resources/PlatformPrefabs/PlatformPiece (5).prefab @@ -0,0 +1,1073 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1887248325906603053 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6839063566418287411} + - component: {fileID: 3770487565047789733} + - component: {fileID: 4552567732693731566} + - component: {fileID: 6076096134518381890} + m_Layer: 0 + m_Name: Circle.002 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6839063566418287411 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1887248325906603053} + serializedVersion: 2 + m_LocalRotation: {x: 0.5, y: 0.49999997, z: 0.5, w: -0.5} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7640302857485854208} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3770487565047789733 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1887248325906603053} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &4552567732693731566 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1887248325906603053} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &6076096134518381890 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1887248325906603053} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &2683635093858690623 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5010205850144466683} + - component: {fileID: 4135612517136229729} + - component: {fileID: 4607680413242342359} + - component: {fileID: 4683809600451703336} + m_Layer: 0 + m_Name: Circle.007 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5010205850144466683 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2683635093858690623} + serializedVersion: 2 + m_LocalRotation: {x: -0.65328157, y: 0.270598, z: 0.270598, w: 0.6532815} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7640302857485854208} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4135612517136229729 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2683635093858690623} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &4607680413242342359 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2683635093858690623} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &4683809600451703336 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2683635093858690623} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &3970908986770759320 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 558563436327085342} + - component: {fileID: 989049811891029217} + - component: {fileID: 5402512826753006686} + - component: {fileID: 1016739439842388876} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &558563436327085342 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3970908986770759320} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6, y: 0.5, z: 0.6} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7640302857485854208} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &989049811891029217 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3970908986770759320} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &5402512826753006686 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3970908986770759320} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 5ad0d636505e689478043e012ee49311, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &1016739439842388876 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3970908986770759320} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5000001 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} +--- !u!1 &4011385359201401176 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7024752440496526272} + - component: {fileID: 6337065734116100138} + - component: {fileID: 5100813578573931878} + - component: {fileID: 8211983725092658876} + m_Layer: 0 + m_Name: Circle.003 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7024752440496526272 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4011385359201401176} + serializedVersion: 2 + m_LocalRotation: {x: 0.27059802, y: 0.65328157, z: 0.65328145, w: -0.27059808} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7640302857485854208} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6337065734116100138 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4011385359201401176} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &5100813578573931878 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4011385359201401176} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &8211983725092658876 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4011385359201401176} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &4793104391152818951 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3036316967662936531} + - component: {fileID: 959309985073568407} + - component: {fileID: 8829943951943708998} + - component: {fileID: 5679088291850885337} + m_Layer: 0 + m_Name: Circle + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3036316967662936531 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4793104391152818951} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7640302857485854208} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &959309985073568407 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4793104391152818951} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &8829943951943708998 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4793104391152818951} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &5679088291850885337 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4793104391152818951} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &5650469039605901092 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6101052695303045178} + - component: {fileID: 2229440922710433800} + - component: {fileID: 802353435621483260} + - component: {fileID: 4640735256197088132} + m_Layer: 0 + m_Name: Circle.006 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6101052695303045178 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5650469039605901092} + serializedVersion: 2 + m_LocalRotation: {x: 0.5, y: -0.49999997, z: -0.5, w: -0.5} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7640302857485854208} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2229440922710433800 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5650469039605901092} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &802353435621483260 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5650469039605901092} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &4640735256197088132 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5650469039605901092} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &6360168083686095776 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7640302857485854208} + - component: {fileID: 3342142341917082569} + m_Layer: 0 + m_Name: PlatformPiece (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7640302857485854208 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6360168083686095776} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3036316967662936531} + - {fileID: 5462920362587579475} + - {fileID: 6839063566418287411} + - {fileID: 7024752440496526272} + - {fileID: 2066348797367849567} + - {fileID: 3249465990583959690} + - {fileID: 6101052695303045178} + - {fileID: 5010205850144466683} + - {fileID: 558563436327085342} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3342142341917082569 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6360168083686095776} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67c2916908f5f5e4b80dc9c59b8b1592, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Platform +--- !u!1 &7528354912179128027 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2066348797367849567} + - component: {fileID: 4134130408306184093} + - component: {fileID: 2254598035514597675} + - component: {fileID: 627288036220154441} + m_Layer: 0 + m_Name: Circle.004 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2066348797367849567 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7528354912179128027} + serializedVersion: 2 + m_LocalRotation: {x: -1.2509052e-14, y: 0.7071068, z: 0.7071067, w: -0.00000010677015} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7640302857485854208} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4134130408306184093 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7528354912179128027} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &2254598035514597675 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7528354912179128027} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &627288036220154441 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7528354912179128027} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &7665042652887902903 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3249465990583959690} + - component: {fileID: 661257463209643496} + - component: {fileID: 2970424928204584966} + - component: {fileID: 1605067760067352370} + m_Layer: 0 + m_Name: Circle.005 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &3249465990583959690 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7665042652887902903} + serializedVersion: 2 + m_LocalRotation: {x: -0.27059802, y: 0.65328157, z: 0.65328145, w: 0.27059808} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7640302857485854208} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &661257463209643496 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7665042652887902903} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &2970424928204584966 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7665042652887902903} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &1605067760067352370 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7665042652887902903} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &8313973889519196319 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5462920362587579475} + - component: {fileID: 4180853263790233307} + - component: {fileID: 2606655154286931623} + - component: {fileID: 5466279622327250676} + m_Layer: 0 + m_Name: Circle.001 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5462920362587579475 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8313973889519196319} + serializedVersion: 2 + m_LocalRotation: {x: -0.6532815, y: -0.27059802, z: -0.27059808, w: 0.65328145} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7640302857485854208} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4180853263790233307 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8313973889519196319} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &2606655154286931623 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8313973889519196319} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &5466279622327250676 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8313973889519196319} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} diff --git a/Assets/Resources/PlatformPrefabs/PlatformPiece (5).prefab.meta b/Assets/Resources/PlatformPrefabs/PlatformPiece (5).prefab.meta new file mode 100644 index 0000000..6d79864 --- /dev/null +++ b/Assets/Resources/PlatformPrefabs/PlatformPiece (5).prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b131e5111a6b67843a713418b230b7e1 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/PlatformPrefabs/PlatformPiece.prefab b/Assets/Resources/PlatformPrefabs/PlatformPiece.prefab new file mode 100644 index 0000000..0f53381 --- /dev/null +++ b/Assets/Resources/PlatformPrefabs/PlatformPiece.prefab @@ -0,0 +1,1073 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &660871234467227194 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6479988937016786266} + - component: {fileID: 4986172124719566603} + - component: {fileID: 2295050857147622484} + - component: {fileID: 2292524879875215069} + m_Layer: 0 + m_Name: Circle.001 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6479988937016786266 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 660871234467227194} + serializedVersion: 2 + m_LocalRotation: {x: -0.6532815, y: -0.27059802, z: -0.27059808, w: 0.65328145} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1126922888986708822} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4986172124719566603 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 660871234467227194} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &2295050857147622484 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 660871234467227194} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &2292524879875215069 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 660871234467227194} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &732526949790860997 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 959731092646057495} + - component: {fileID: 5784921179078641291} + - component: {fileID: 2053307344226426320} + - component: {fileID: 203081929833728703} + m_Layer: 0 + m_Name: Circle.004 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &959731092646057495 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 732526949790860997} + serializedVersion: 2 + m_LocalRotation: {x: -1.2509052e-14, y: 0.7071068, z: 0.7071067, w: -0.00000010677015} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1126922888986708822} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5784921179078641291 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 732526949790860997} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &2053307344226426320 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 732526949790860997} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &203081929833728703 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 732526949790860997} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &760520525286721220 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3373242829522156601} + - component: {fileID: 6299988265595817021} + - component: {fileID: 5502169261254926476} + - component: {fileID: 3461840977113729566} + m_Layer: 0 + m_Name: Circle.006 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3373242829522156601 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 760520525286721220} + serializedVersion: 2 + m_LocalRotation: {x: 0.5, y: -0.49999997, z: -0.5, w: -0.5} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1126922888986708822} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6299988265595817021 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 760520525286721220} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &5502169261254926476 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 760520525286721220} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &3461840977113729566 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 760520525286721220} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &971353495980976868 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3887839306953282245} + - component: {fileID: 1794278104825595676} + - component: {fileID: 2057187841965471327} + - component: {fileID: 8116566647748522931} + m_Layer: 0 + m_Name: Circle.002 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3887839306953282245 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971353495980976868} + serializedVersion: 2 + m_LocalRotation: {x: 0.5, y: 0.49999997, z: 0.5, w: -0.5} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1126922888986708822} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1794278104825595676 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971353495980976868} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &2057187841965471327 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971353495980976868} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &8116566647748522931 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971353495980976868} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &1129139477387881049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4455788987332933059} + - component: {fileID: 4285575151332511536} + - component: {fileID: 7319276869316724564} + - component: {fileID: 6957279606477285406} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4455788987332933059 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1129139477387881049} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6, y: 0.5, z: 0.6} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1126922888986708822} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4285575151332511536 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1129139477387881049} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &7319276869316724564 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1129139477387881049} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 5ad0d636505e689478043e012ee49311, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &6957279606477285406 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1129139477387881049} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5000001 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} +--- !u!1 &1882323742394903158 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 580042188804674880} + - component: {fileID: 5392233639702901787} + - component: {fileID: 9064665792032253998} + - component: {fileID: 4611543159595422234} + m_Layer: 0 + m_Name: Circle.005 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &580042188804674880 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1882323742394903158} + serializedVersion: 2 + m_LocalRotation: {x: -0.27059802, y: 0.65328157, z: 0.65328145, w: 0.27059808} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1126922888986708822} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5392233639702901787 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1882323742394903158} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &9064665792032253998 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1882323742394903158} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &4611543159595422234 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1882323742394903158} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &2515892100697640133 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5022761284136719656} + - component: {fileID: 5143299092503128587} + - component: {fileID: 5807515227895811066} + - component: {fileID: 5196726719954009297} + m_Layer: 0 + m_Name: Circle.003 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5022761284136719656 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2515892100697640133} + serializedVersion: 2 + m_LocalRotation: {x: 0.27059802, y: 0.65328157, z: 0.65328145, w: -0.27059808} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1126922888986708822} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5143299092503128587 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2515892100697640133} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &5807515227895811066 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2515892100697640133} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &5196726719954009297 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2515892100697640133} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &3633884590794928782 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3439289700840514712} + - component: {fileID: 133140408395828297} + - component: {fileID: 185219476011584015} + - component: {fileID: 1739700793892283054} + m_Layer: 0 + m_Name: Circle + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &3439289700840514712 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3633884590794928782} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1126922888986708822} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &133140408395828297 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3633884590794928782} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &185219476011584015 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3633884590794928782} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &1739700793892283054 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3633884590794928782} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!1 &5033928224164330288 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1126922888986708822} + - component: {fileID: -6749411368352068229} + m_Layer: 0 + m_Name: PlatformPiece + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1126922888986708822 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5033928224164330288} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3439289700840514712} + - {fileID: 6479988937016786266} + - {fileID: 3887839306953282245} + - {fileID: 5022761284136719656} + - {fileID: 959731092646057495} + - {fileID: 580042188804674880} + - {fileID: 3373242829522156601} + - {fileID: 8053669038606407438} + - {fileID: 4455788987332933059} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &-6749411368352068229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5033928224164330288} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67c2916908f5f5e4b80dc9c59b8b1592, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Platform +--- !u!1 &8972845688381097089 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8053669038606407438} + - component: {fileID: 6591111092737670844} + - component: {fileID: 5891203811356308918} + - component: {fileID: 5950527132393317910} + m_Layer: 0 + m_Name: Circle.007 + m_TagString: Platform + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8053669038606407438 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8972845688381097089} + serializedVersion: 2 + m_LocalRotation: {x: -0.65328157, y: 0.270598, z: 0.270598, w: 0.6532815} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1126922888986708822} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6591111092737670844 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8972845688381097089} + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} +--- !u!23 &5891203811356308918 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8972845688381097089} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 97b18b5a446e9f54692a651543b48e8d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &5950527132393317910 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8972845688381097089} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -2124705421725058983, guid: b1c41e022ae344de08711565989f6bfe, type: 3} diff --git a/Assets/Resources/PlatformPrefabs/PlatformPiece.prefab.meta b/Assets/Resources/PlatformPrefabs/PlatformPiece.prefab.meta new file mode 100644 index 0000000..e30fb25 --- /dev/null +++ b/Assets/Resources/PlatformPrefabs/PlatformPiece.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 42f7abe2bad948c4797638c08737847a +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Soccer Ball.meta b/Assets/Resources/Soccer Ball.meta new file mode 100644 index 0000000..cc78276 --- /dev/null +++ b/Assets/Resources/Soccer Ball.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 606e7b8f0a1efe646b98688be13ccab9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Soccer Ball/Materials.meta b/Assets/Resources/Soccer Ball/Materials.meta new file mode 100644 index 0000000..ee8fe5a --- /dev/null +++ b/Assets/Resources/Soccer Ball/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ca25f5934cb6f5e469a9be3010ef64dc +folderAsset: yes +timeCreated: 1488398870 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Soccer Ball/Materials/Black-Ball-Material.mat b/Assets/Resources/Soccer Ball/Materials/Black-Ball-Material.mat new file mode 100644 index 0000000..f0f1749 --- /dev/null +++ b/Assets/Resources/Soccer Ball/Materials/Black-Ball-Material.mat @@ -0,0 +1,141 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4719509676912851614 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion + version: 10 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Black-Ball-Material + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _EMISSION + - _NORMALMAP + m_InvalidKeywords: [] + m_LightmapFlags: 1 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: a0d8751da35d5344ea4738f6a8227a0d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0, g: 0, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/Resources/Soccer Ball/Materials/Black-Ball-Material.mat.meta b/Assets/Resources/Soccer Ball/Materials/Black-Ball-Material.mat.meta new file mode 100644 index 0000000..d0634a7 --- /dev/null +++ b/Assets/Resources/Soccer Ball/Materials/Black-Ball-Material.mat.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: fb69c479c3cec624b96dfe20d305c1b9 +timeCreated: 1488398871 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 84382 + packageName: Low Polygon Soccer Ball + packageVersion: 1.0 + assetPath: Assets/Soccer Ball/Materials/Black-Ball-Material.mat + uploadId: 165157 diff --git a/Assets/Resources/Soccer Ball/Materials/White-Ball-Material.mat b/Assets/Resources/Soccer Ball/Materials/White-Ball-Material.mat new file mode 100644 index 0000000..597906d --- /dev/null +++ b/Assets/Resources/Soccer Ball/Materials/White-Ball-Material.mat @@ -0,0 +1,141 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: White-Ball-Material + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _EMISSION + - _NORMALMAP + m_InvalidKeywords: [] + m_LightmapFlags: 1 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: a0d8751da35d5344ea4738f6a8227a0d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &2056898156351093148 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion + version: 10 diff --git a/Assets/Resources/Soccer Ball/Materials/White-Ball-Material.mat.meta b/Assets/Resources/Soccer Ball/Materials/White-Ball-Material.mat.meta new file mode 100644 index 0000000..3378752 --- /dev/null +++ b/Assets/Resources/Soccer Ball/Materials/White-Ball-Material.mat.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: cff0f8a4e9c85a045be6d610d20b87b3 +timeCreated: 1488398871 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 84382 + packageName: Low Polygon Soccer Ball + packageVersion: 1.0 + assetPath: Assets/Soccer Ball/Materials/White-Ball-Material.mat + uploadId: 165157 diff --git a/Assets/Resources/Soccer Ball/Meshes.meta b/Assets/Resources/Soccer Ball/Meshes.meta new file mode 100644 index 0000000..76e858e --- /dev/null +++ b/Assets/Resources/Soccer Ball/Meshes.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c5d8a6c3714e5f843b93ff540e6ac8c0 +folderAsset: yes +timeCreated: 1488399503 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Soccer Ball/Meshes/Soccer Ball Mesh.fbx b/Assets/Resources/Soccer Ball/Meshes/Soccer Ball Mesh.fbx new file mode 100644 index 0000000000000000000000000000000000000000..06cb090808c335a490018dce4320e41dd5f82d0d GIT binary patch literal 20956 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Π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

M5@P2|AD<2(dV@~@)%jlX8D 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ⅆhIByFZG4#t{Ot2#)~xc&$U@ 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 &P;uUezCg>oS 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�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

2W~D9{;K;?Fz;(H{2B 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 literal 0 HcmV?d00001 diff --git a/Assets/Resources/Soccer Ball/Textures/Soccer Ball Normal Map.png.meta b/Assets/Resources/Soccer Ball/Textures/Soccer Ball Normal Map.png.meta new file mode 100644 index 0000000..86abb3c --- /dev/null +++ b/Assets/Resources/Soccer Ball/Textures/Soccer Ball Normal Map.png.meta @@ -0,0 +1,83 @@ +fileFormatVersion: 2 +guid: a0d8751da35d5344ea4738f6a8227a0d +timeCreated: 1488398870 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 84382 + packageName: Low Polygon Soccer Ball + packageVersion: 1.0 + assetPath: Assets/Soccer Ball/Textures/Soccer Ball Normal Map.png + uploadId: 165157 diff --git a/Assets/Scenes.meta b/Assets/Scenes.meta new file mode 100644 index 0000000..4fefa0d --- /dev/null +++ b/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8b0b97af7855ef440806cc0228d1d24e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity new file mode 100644 index 0000000..c963c56 --- /dev/null +++ b/Assets/Scenes/SampleScene.unity @@ -0,0 +1,953 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &232955010 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 232955011} + m_Layer: 0 + m_Name: PlatformContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &232955011 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 232955010} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 725044587} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &326808875 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 326808876} + - component: {fileID: 326808877} + m_Layer: 0 + m_Name: LifeTimeScope + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &326808876 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326808875} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &326808877 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326808875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f8d7d43c7f4a3d4d876897769dbf418, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::GameLifeTimeScope + parentReference: + TypeName: + autoRun: 1 + autoInjectGameObjects: [] +--- !u!1 &330585543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330585546} + - component: {fileID: 330585545} + - component: {fileID: 330585544} + - component: {fileID: 330585547} + - component: {fileID: 330585548} + - component: {fileID: 330585549} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &330585544 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 +--- !u!20 &330585545 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60.000004 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &330585546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + serializedVersion: 2 + m_LocalRotation: {x: 0.2297529, y: 0.00000002295013, z: -0.0000000054177907, w: 0.973249} + m_LocalPosition: {x: 0, y: 1.5, z: -4.6} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 20, y: 0, z: 0} +--- !u!114 &330585547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 1 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 +--- !u!114 &330585548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b94916e2493e48f488767bcbbb9e3788, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::CameraController + target: {fileID: 2070186952} + smoothSpeed: 5 + yOffset: 1 +--- !u!114 &330585549 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineBrain + ShowDebugText: 0 + ShowCameraFrustum: 1 + IgnoreTimeScale: 0 + WorldUpOverride: {fileID: 0} + ChannelMask: -1 + UpdateMethod: 2 + BlendUpdateMethod: 1 + LensModeOverride: + Enabled: 0 + DefaultMode: 2 + DefaultBlend: + Style: 1 + Time: 2 + CustomCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + CustomBlends: {fileID: 0} +--- !u!1 &410087039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 410087041} + - component: {fileID: 410087040} + - component: {fileID: 410087042} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &410087040 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 2 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize2D: {x: 10, y: 10} + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 5000 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &410087041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 7.79, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &410087042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_CustomShadowLayers: 0 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 1 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 +--- !u!1 &466541255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 466541256} + - component: {fileID: 466541257} + m_Layer: 0 + m_Name: PlatformPool + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &466541256 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 466541255} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 725044587} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &466541257 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 466541255} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2d775e1dfaaa1884088214bc3e182dfa, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::PlatformPool + platformPool: [] + amountToPool: 20 + platformPrefab: + - {fileID: 7665055513743108973, guid: a5b9d709e3526c14d837e44eed8d1ee2, type: 3} + - {fileID: 1110895642441335304, guid: 2f645f8c4aed0584b86fd1481464fcac, type: 3} + - {fileID: 1056965212480525314, guid: c343dd08989b7844287f75ac3514c559, type: 3} + - {fileID: 8221419529627920224, guid: c76304525f9173640950e2707decaada, type: 3} + - {fileID: 6360168083686095776, guid: b131e5111a6b67843a713418b230b7e1, type: 3} + - {fileID: 5033928224164330288, guid: 42f7abe2bad948c4797638c08737847a, type: 3} + PlatformContainer: {fileID: 232955010} +--- !u!1 &470208923 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 470208927} + - component: {fileID: 470208926} + - component: {fileID: 470208925} + - component: {fileID: 470208924} + m_Layer: 0 + m_Name: CinemachineCamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &470208924 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 470208923} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f38bda98361e1de48a4ca2bd86ea3c17, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineRotationComposer + Composition: + ScreenPosition: {x: 0, y: 0} + DeadZone: + Enabled: 1 + Size: {x: 0.2, y: 0.2} + HardLimits: + Enabled: 0 + Size: {x: 1.59, y: 1.91} + Offset: {x: 0, y: 0} + CenterOnActivate: 1 + TargetOffset: {x: 0, y: -1, z: 0} + Damping: {x: 0.5, y: 0.5} + Lookahead: + Enabled: 0 + Time: 0 + Smoothing: 0 + IgnoreY: 0 +--- !u!114 &470208925 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 470208923} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b617507da6d07e749b7efdb34e1173e1, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineFollow + TrackerSettings: + BindingMode: 4 + PositionDamping: {x: 1, y: 1, z: 1} + AngularDampingMode: 0 + RotationDamping: {x: 1, y: 1, z: 1} + QuaternionDamping: 1 + FollowOffset: {x: 0, y: 1, z: -4} +--- !u!114 &470208926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 470208923} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineCamera + Priority: + Enabled: 0 + m_Value: 0 + OutputChannel: 1 + StandbyUpdate: 2 + m_StreamingVersion: 20241001 + m_LegacyPriority: 0 + Target: + TrackingTarget: {fileID: 2070186952} + LookAtTarget: {fileID: 0} + CustomLookAtTarget: 0 + Lens: + FieldOfView: 60.000004 + OrthographicSize: 5 + NearClipPlane: 0.3 + FarClipPlane: 1000 + Dutch: 0 + ModeOverride: 0 + PhysicalProperties: + GateFit: 2 + SensorSize: {x: 21.946, y: 16.002} + LensShift: {x: 0, y: 0} + FocusDistance: 10 + Iso: 200 + ShutterSpeed: 0.005 + Aperture: 16 + BladeCount: 5 + Curvature: {x: 2, y: 11} + BarrelClipping: 0.25 + Anamorphism: 0 + BlendHint: 0 +--- !u!4 &470208927 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 470208923} + serializedVersion: 2 + m_LocalRotation: {x: 0.22975288, y: 0.000000022950132, z: -0.0000000054177907, w: 0.973249} + m_LocalPosition: {x: 0, y: 1.5, z: -4.6} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &725044586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 725044587} + - component: {fileID: 725044588} + m_Layer: 0 + m_Name: PlatformManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &725044587 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 725044586} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 232955011} + - {fileID: 466541256} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &725044588 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 725044586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5581fca74af43824995a825437415c12, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::PlatfromManager +--- !u!1 &832575517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 832575519} + - component: {fileID: 832575518} + m_Layer: 0 + m_Name: Global Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!114 &832575518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: 10fc4df2da32a41aaa32d77bc913491c, type: 2} +--- !u!4 &832575519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2070186948 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2070186952} + - component: {fileID: 2070186951} + - component: {fileID: 2070186950} + - component: {fileID: 2070186949} + - component: {fileID: 2070186953} + - component: {fileID: 2070186954} + m_Layer: 0 + m_Name: PlayerBall + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!135 &2070186949 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070186948} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2070186950 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070186948} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: f707c41b0269f41469470c60b514faeb, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2070186951 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070186948} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &2070186952 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070186948} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.5, z: -0.6} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &2070186953 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070186948} + serializedVersion: 5 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 122 + m_CollisionDetection: 1 +--- !u!114 &2070186954 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070186948} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 747f7dce18fb6a548bafaf8388f331e4, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::JumpingBall + jumpforce: 3 + BallRb: {fileID: 2070186953} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 410087041} + - {fileID: 832575519} + - {fileID: 330585546} + - {fileID: 2070186952} + - {fileID: 725044587} + - {fileID: 326808876} + - {fileID: 470208927} diff --git a/Assets/Scenes/SampleScene.unity.meta b/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 0000000..9531828 --- /dev/null +++ b/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99c9720ab356a0642a771bea13969a05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts.meta b/Assets/Scripts.meta new file mode 100644 index 0000000..74b709b --- /dev/null +++ b/Assets/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ff508de0bf06bd3489c11c23478c832b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/IInputReader.cs b/Assets/Scripts/IInputReader.cs new file mode 100644 index 0000000..7007f46 --- /dev/null +++ b/Assets/Scripts/IInputReader.cs @@ -0,0 +1,6 @@ +using UnityEngine; + +public interface IInputReader +{ + Vector2 DragInput { get; } +} diff --git a/Assets/Scripts/IInputReader.cs.meta b/Assets/Scripts/IInputReader.cs.meta new file mode 100644 index 0000000..56d9a24 --- /dev/null +++ b/Assets/Scripts/IInputReader.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4fd243b30ced38840a3173920b99929f \ No newline at end of file diff --git a/Assets/Scripts/InputReader.cs b/Assets/Scripts/InputReader.cs new file mode 100644 index 0000000..a245242 --- /dev/null +++ b/Assets/Scripts/InputReader.cs @@ -0,0 +1,26 @@ +using UnityEngine; +using UnityEngine.InputSystem; +using static GameInputs; + +public class InputReader : ScriptableObject, IInputReader, IPlayerActions +{ + private GameInputs _inputActions; + + public Vector2 DragInput { get; private set;} + + void OnEnable() + { + if (_inputActions == null) + { + _inputActions = new GameInputs(); + _inputActions.Player.SetCallbacks(this); + } + _inputActions.Enable(); + } + public void OnDrag(InputAction.CallbackContext context) + { + DragInput = context.ReadValue(); + Debug.Log(DragInput); + } + +} diff --git a/Assets/Scripts/InputReader.cs.meta b/Assets/Scripts/InputReader.cs.meta new file mode 100644 index 0000000..4054291 --- /dev/null +++ b/Assets/Scripts/InputReader.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: bf23afefa375da349994d4977b4ffe60 \ No newline at end of file diff --git a/Assets/Scripts/LifeTimeScope.meta b/Assets/Scripts/LifeTimeScope.meta new file mode 100644 index 0000000..53e4df3 --- /dev/null +++ b/Assets/Scripts/LifeTimeScope.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b41ba7e7c457a844493479d95fe677f9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LifeTimeScope/GameLifeTimeScope.cs b/Assets/Scripts/LifeTimeScope/GameLifeTimeScope.cs new file mode 100644 index 0000000..980c241 --- /dev/null +++ b/Assets/Scripts/LifeTimeScope/GameLifeTimeScope.cs @@ -0,0 +1,22 @@ +using JetBrains.Annotations; +using UnityEngine; +using VContainer; +using VContainer.Unity; + +public class GameLifeTimeScope : LifetimeScope +{ + [SerializeField] private InputReader inputReader; + protected override void Configure(IContainerBuilder builder) + { + + builder.RegisterComponentInHierarchy(); + builder.RegisterComponentInHierarchy(); + builder.RegisterComponentInHierarchy(); + builder.RegisterComponent(inputReader); + } + + public void IsWorking() + { + Debug.Log("True"); + } +} diff --git a/Assets/Scripts/LifeTimeScope/GameLifeTimeScope.cs.meta b/Assets/Scripts/LifeTimeScope/GameLifeTimeScope.cs.meta new file mode 100644 index 0000000..48f9941 --- /dev/null +++ b/Assets/Scripts/LifeTimeScope/GameLifeTimeScope.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5f8d7d43c7f4a3d4d876897769dbf418 \ No newline at end of file diff --git a/Assets/Scripts/PlatformScript.meta b/Assets/Scripts/PlatformScript.meta new file mode 100644 index 0000000..014b561 --- /dev/null +++ b/Assets/Scripts/PlatformScript.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f9b8db002cacc004caf00038e55a001f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/PlatformScript/Platform.cs b/Assets/Scripts/PlatformScript/Platform.cs new file mode 100644 index 0000000..7863ee5 --- /dev/null +++ b/Assets/Scripts/PlatformScript/Platform.cs @@ -0,0 +1,27 @@ +using System; +using UnityEngine; +using VContainer; + +public class Platform : MonoBehaviour +{ + private Transform playerTransform; + [Inject] private PlatformPool pool; + [Inject] private PlatformManager manager; + [Inject] private IInputReader inputReader; + + + void Start() + { + playerTransform = GameObject.FindGameObjectWithTag("Player").transform; + } + + void Update() + { + if((playerTransform.position.y-transform.position.y)<-5) + { + pool.ReturnToPool(this.gameObject); + manager.BuildPlatform(); + + } + } +} diff --git a/Assets/Scripts/PlatformScript/Platform.cs.meta b/Assets/Scripts/PlatformScript/Platform.cs.meta new file mode 100644 index 0000000..4ff950c --- /dev/null +++ b/Assets/Scripts/PlatformScript/Platform.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 67c2916908f5f5e4b80dc9c59b8b1592 \ No newline at end of file diff --git a/Assets/Scripts/PlatformScript/PlatformManager.cs b/Assets/Scripts/PlatformScript/PlatformManager.cs new file mode 100644 index 0000000..155723e --- /dev/null +++ b/Assets/Scripts/PlatformScript/PlatformManager.cs @@ -0,0 +1,38 @@ +using UnityEngine; +using VContainer; + +public class PlatformManager : MonoBehaviour +{ + private GameObject currentPlatfrom; + [Inject] private PlatformPool pool; + + private int yPos=0; + + void Start() + { + ShowInitialPlatforms(); + } + + public void ShowInitialPlatforms() + { + + foreach(var platfrom in pool.platformPool) + { + platfrom.gameObject.SetActive(true); + platfrom.transform.position = new Vector3(0,yPos,0); + yPos--; + } + } + public void BuildPlatform() + { + currentPlatfrom = pool.GetPlatformFromPool(); + if(currentPlatfrom!=null) + { + currentPlatfrom.transform.position = new Vector3(0,yPos,0); + currentPlatfrom.SetActive(true); + yPos--; + } + + } + +} diff --git a/Assets/Scripts/PlatformScript/PlatformManager.cs.meta b/Assets/Scripts/PlatformScript/PlatformManager.cs.meta new file mode 100644 index 0000000..8d8dcac --- /dev/null +++ b/Assets/Scripts/PlatformScript/PlatformManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5581fca74af43824995a825437415c12 \ No newline at end of file diff --git a/Assets/Scripts/PlatformScript/PlatformPool.cs b/Assets/Scripts/PlatformScript/PlatformPool.cs new file mode 100644 index 0000000..30a10f5 --- /dev/null +++ b/Assets/Scripts/PlatformScript/PlatformPool.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; +using System.ComponentModel; +using UnityEngine; +using VContainer; +using VContainer.Unity; + +public class PlatformPool : MonoBehaviour +{ + public List platformPool = new List(); + public int amountToPool=10; + public GameObject[] platformPrefab; + public GameObject PlatformContainer; //parent + [Inject] private IObjectResolver container; + + void Awake() + { + for(int i=0; i(); + } + } + + void OnCollisionEnter(Collision collision) + { + if(collision.collider.CompareTag("Platform")) + { + BallRb.linearVelocity = new Vector3(0, jumpforce, 0); + } + } + +} diff --git a/Assets/Scripts/PlayerScript/JumpingBall.cs.meta b/Assets/Scripts/PlayerScript/JumpingBall.cs.meta new file mode 100644 index 0000000..7d975db --- /dev/null +++ b/Assets/Scripts/PlayerScript/JumpingBall.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 747f7dce18fb6a548bafaf8388f331e4 \ No newline at end of file diff --git a/Assets/Settings.meta b/Assets/Settings.meta new file mode 100644 index 0000000..39b94dd --- /dev/null +++ b/Assets/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 709f11a7f3c4041caa4ef136ea32d874 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/DefaultVolumeProfile.asset b/Assets/Settings/DefaultVolumeProfile.asset new file mode 100644 index 0000000..66d98de --- /dev/null +++ b/Assets/Settings/DefaultVolumeProfile.asset @@ -0,0 +1,986 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-9167874883656233139 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5485954d14dfb9a4c8ead8edb0ded5b1, type: 3} + m_Name: LiftGammaGain + m_EditorClassIdentifier: + active: 1 + lift: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + gamma: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + gain: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} +--- !u!114 &-8270506406425502121 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70afe9e12c7a7ed47911bb608a23a8ff, type: 3} + m_Name: SplitToning + m_EditorClassIdentifier: + active: 1 + shadows: + m_OverrideState: 1 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + highlights: + m_OverrideState: 1 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + balance: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-8104416584915340131 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: CopyPasteTestComponent2 + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEditor.Rendering.Tests:VolumeComponentCopyPasteTests/CopyPasteTestComponent2 + active: 1 + p1: + m_OverrideState: 1 + m_Value: 0 + p2: + m_OverrideState: 1 + m_Value: 0 + p21: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-7750755424749557576 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 60f3b30c03e6ba64d9a27dc9dba8f28d, type: 3} + m_Name: OutlineVolumeComponent + m_EditorClassIdentifier: + active: 1 + Enabled: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-7743500325797982168 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccf1aba9553839d41ae37dd52e9ebcce, type: 3} + m_Name: MotionBlur + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + quality: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + clamp: + m_OverrideState: 1 + m_Value: 0.05 +--- !u!114 &-7274224791359825572 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0fd9ee276a1023e439cf7a9c393195fa, type: 3} + m_Name: TestAnimationCurveVolumeComponent + m_EditorClassIdentifier: + active: 1 + testParameter: + m_OverrideState: 1 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.5 + value: 10 + inSlope: 0 + outSlope: 10 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 15 + inSlope: 10 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &-6335409530604852063 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f335fb1ffd8684294ad653bf1c7564, type: 3} + m_Name: ColorAdjustments + m_EditorClassIdentifier: + active: 1 + postExposure: + m_OverrideState: 1 + m_Value: 0 + contrast: + m_OverrideState: 1 + m_Value: 0 + colorFilter: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + hueShift: + m_OverrideState: 1 + m_Value: 0 + saturation: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-6288072647309666549 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 29fa0085f50d5e54f8144f766051a691, type: 3} + m_Name: FilmGrain + m_EditorClassIdentifier: + active: 1 + type: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + response: + m_OverrideState: 1 + m_Value: 0.8 + texture: + m_OverrideState: 1 + m_Value: {fileID: 0} +--- !u!114 &-5520245016509672950 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} + m_Name: Tonemapping + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + neutralHDRRangeReductionMode: + m_OverrideState: 1 + m_Value: 2 + acesPreset: + m_OverrideState: 1 + m_Value: 3 + hueShiftAmount: + m_OverrideState: 1 + m_Value: 0 + detectPaperWhite: + m_OverrideState: 1 + m_Value: 0 + paperWhite: + m_OverrideState: 1 + m_Value: 300 + detectBrightnessLimits: + m_OverrideState: 1 + m_Value: 1 + minNits: + m_OverrideState: 1 + m_Value: 0.005 + maxNits: + m_OverrideState: 1 + m_Value: 1000 +--- !u!114 &-5360449096862653589 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: VolumeComponentSupportedEverywhere + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEngine.Rendering.Tests:VolumeComponentEditorSupportedOnTests/VolumeComponentSupportedEverywhere + active: 1 +--- !u!114 &-5139089513906902183 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a00a63fdd6bd2a45ab1f2d869305ffd, type: 3} + m_Name: OasisFogVolumeComponent + m_EditorClassIdentifier: + active: 1 + Density: + m_OverrideState: 1 + m_Value: 0 + StartDistance: + m_OverrideState: 1 + m_Value: 0 + HeightRange: + m_OverrideState: 1 + m_Value: {x: 0, y: 50} + Tint: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + SunScatteringIntensity: + m_OverrideState: 1 + m_Value: 2 +--- !u!114 &-4463884970436517307 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb60a22f311433c4c962b888d1393f88, type: 3} + m_Name: PaniniProjection + m_EditorClassIdentifier: + active: 1 + distance: + m_OverrideState: 1 + m_Value: 0 + cropToFit: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &-1410297666881709256 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6bd486065ce11414fa40e631affc4900, type: 3} + m_Name: ProbeVolumesOptions + m_EditorClassIdentifier: + active: 1 + normalBias: + m_OverrideState: 1 + m_Value: 0.33 + viewBias: + m_OverrideState: 1 + m_Value: 0 + scaleBiasWithMinProbeDistance: + m_OverrideState: 1 + m_Value: 0 + samplingNoise: + m_OverrideState: 1 + m_Value: 0.1 + animateSamplingNoise: + m_OverrideState: 1 + m_Value: 1 + leakReductionMode: + m_OverrideState: 1 + m_Value: 1 + minValidDotProductValue: + m_OverrideState: 1 + m_Value: 0.1 + occlusionOnlyReflectionNormalization: + m_OverrideState: 1 + m_Value: 1 + intensityMultiplier: + m_OverrideState: 1 + m_Value: 1 + skyOcclusionIntensityMultiplier: + m_OverrideState: 1 + m_Value: 1 + worldOffset: + m_OverrideState: 1 + m_Value: {x: 0, y: 0, z: 0} +--- !u!114 &-1216621516061285780 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + skipIterations: + m_OverrideState: 1 + m_Value: 1 + threshold: + m_OverrideState: 1 + m_Value: 0.9 + intensity: + m_OverrideState: 1 + m_Value: 0 + scatter: + m_OverrideState: 1 + m_Value: 0.7 + clamp: + m_OverrideState: 1 + m_Value: 65472 + tint: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + highQualityFiltering: + m_OverrideState: 1 + m_Value: 0 + filter: + m_OverrideState: 1 + m_Value: 0 + downscale: + m_OverrideState: 1 + m_Value: 0 + maxIterations: + m_OverrideState: 1 + m_Value: 6 + dirtTexture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dimension: 1 + dirtIntensity: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-1170528603972255243 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 221518ef91623a7438a71fef23660601, type: 3} + m_Name: WhiteBalance + m_EditorClassIdentifier: + active: 1 + temperature: + m_OverrideState: 1 + m_Value: 0 + tint: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-581120513425526550 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: CopyPasteTestComponent3 + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEditor.Rendering.Tests:VolumeComponentCopyPasteTests/CopyPasteTestComponent3 + active: 1 + p1: + m_OverrideState: 1 + m_Value: 0 + p2: + m_OverrideState: 1 + m_Value: 0 + p31: + m_OverrideState: 1 + m_Value: {r: 0, g: 0, b: 0, a: 1} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: DefaultVolumeProfile + m_EditorClassIdentifier: + components: + - {fileID: -9167874883656233139} + - {fileID: 1918650496244738858} + - {fileID: 853819529557874667} + - {fileID: 1052315754049611418} + - {fileID: -1170528603972255243} + - {fileID: -8270506406425502121} + - {fileID: -5520245016509672950} + - {fileID: 7173750748008157695} + - {fileID: 1666464333004379222} + - {fileID: 9001657382290151224} + - {fileID: -6335409530604852063} + - {fileID: -1216621516061285780} + - {fileID: 3959858460715838825} + - {fileID: -7743500325797982168} + - {fileID: 4644742534064026673} + - {fileID: -4463884970436517307} + - {fileID: -6288072647309666549} + - {fileID: 7518938298396184218} + - {fileID: -1410297666881709256} +--- !u!114 &853819529557874667 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 06437c1ff663d574d9447842ba0a72e4, type: 3} + m_Name: ScreenSpaceLensFlare + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 + tintColor: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + bloomMip: + m_OverrideState: 1 + m_Value: 1 + firstFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + secondaryFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + warpedFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + warpedFlareScale: + m_OverrideState: 1 + m_Value: {x: 1, y: 1} + samples: + m_OverrideState: 1 + m_Value: 1 + sampleDimmer: + m_OverrideState: 1 + m_Value: 0.5 + vignetteEffect: + m_OverrideState: 1 + m_Value: 1 + startingPosition: + m_OverrideState: 1 + m_Value: 1.25 + scale: + m_OverrideState: 1 + m_Value: 1.5 + streaksIntensity: + m_OverrideState: 1 + m_Value: 0 + streaksLength: + m_OverrideState: 1 + m_Value: 0.5 + streaksOrientation: + m_OverrideState: 1 + m_Value: 0 + streaksThreshold: + m_OverrideState: 1 + m_Value: 0.25 + resolution: + m_OverrideState: 1 + m_Value: 4 + chromaticAbberationIntensity: + m_OverrideState: 1 + m_Value: 0.5 +--- !u!114 &1052315754049611418 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 558a8e2b6826cf840aae193990ba9f2e, type: 3} + m_Name: ShadowsMidtonesHighlights + m_EditorClassIdentifier: + active: 1 + shadows: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + midtones: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + highlights: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + shadowsStart: + m_OverrideState: 1 + m_Value: 0 + shadowsEnd: + m_OverrideState: 1 + m_Value: 0.3 + highlightsStart: + m_OverrideState: 1 + m_Value: 0.55 + highlightsEnd: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &1666464333004379222 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3eb4b772797da9440885e8bd939e9560, type: 3} + m_Name: ColorCurves + m_EditorClassIdentifier: + active: 1 + master: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + red: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + green: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + blue: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + hueVsHue: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + hueVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + satVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + lumVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &1918650496244738858 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e021b4c809a781e468c2988c016ebbea, type: 3} + m_Name: ColorLookup + m_EditorClassIdentifier: + active: 1 + texture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dimension: 1 + contribution: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &3959858460715838825 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3} + m_Name: DepthOfField + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + gaussianStart: + m_OverrideState: 1 + m_Value: 10 + gaussianEnd: + m_OverrideState: 1 + m_Value: 30 + gaussianMaxRadius: + m_OverrideState: 1 + m_Value: 1 + highQualitySampling: + m_OverrideState: 1 + m_Value: 0 + focusDistance: + m_OverrideState: 1 + m_Value: 10 + aperture: + m_OverrideState: 1 + m_Value: 5.6 + focalLength: + m_OverrideState: 1 + m_Value: 50 + bladeCount: + m_OverrideState: 1 + m_Value: 5 + bladeCurvature: + m_OverrideState: 1 + m_Value: 1 + bladeRotation: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &4251301726029935498 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 74955a4b0b4243bc87231e8b59ed9140, type: 3} + m_Name: TestVolume + m_EditorClassIdentifier: + active: 1 + param: + m_OverrideState: 1 + m_Value: 123 +--- !u!114 &4644742534064026673 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 81180773991d8724ab7f2d216912b564, type: 3} + m_Name: ChromaticAberration + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &6940869943325143175 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: VolumeComponentSupportedOnAnySRP + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEngine.Rendering.Tests:VolumeComponentEditorSupportedOnTests/VolumeComponentSupportedOnAnySRP + active: 1 +--- !u!114 &7173750748008157695 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} + m_Name: Vignette + m_EditorClassIdentifier: + active: 1 + color: + m_OverrideState: 1 + m_Value: {r: 0, g: 0, b: 0, a: 1} + center: + m_OverrideState: 1 + m_Value: {x: 0.5, y: 0.5} + intensity: + m_OverrideState: 1 + m_Value: 0 + smoothness: + m_OverrideState: 1 + m_Value: 0.2 + rounded: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &7518938298396184218 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c5e1dc532bcb41949b58bc4f2abfbb7e, type: 3} + m_Name: LensDistortion + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 + xMultiplier: + m_OverrideState: 1 + m_Value: 1 + yMultiplier: + m_OverrideState: 1 + m_Value: 1 + center: + m_OverrideState: 1 + m_Value: {x: 0.5, y: 0.5} + scale: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &9001657382290151224 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cdfbdbb87d3286943a057f7791b43141, type: 3} + m_Name: ChannelMixer + m_EditorClassIdentifier: + active: 1 + redOutRedIn: + m_OverrideState: 1 + m_Value: 100 + redOutGreenIn: + m_OverrideState: 1 + m_Value: 0 + redOutBlueIn: + m_OverrideState: 1 + m_Value: 0 + greenOutRedIn: + m_OverrideState: 1 + m_Value: 0 + greenOutGreenIn: + m_OverrideState: 1 + m_Value: 100 + greenOutBlueIn: + m_OverrideState: 1 + m_Value: 0 + blueOutRedIn: + m_OverrideState: 1 + m_Value: 0 + blueOutGreenIn: + m_OverrideState: 1 + m_Value: 0 + blueOutBlueIn: + m_OverrideState: 1 + m_Value: 100 +--- !u!114 &9122958982931076880 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: CopyPasteTestComponent1 + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEditor.Rendering.Tests:VolumeComponentCopyPasteTests/CopyPasteTestComponent1 + active: 1 + p1: + m_OverrideState: 1 + m_Value: 0 + p2: + m_OverrideState: 1 + m_Value: 0 diff --git a/Assets/Settings/DefaultVolumeProfile.asset.meta b/Assets/Settings/DefaultVolumeProfile.asset.meta new file mode 100644 index 0000000..53b314a --- /dev/null +++ b/Assets/Settings/DefaultVolumeProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ab09877e2e707104187f6f83e2f62510 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/Mobile_RPAsset.asset b/Assets/Settings/Mobile_RPAsset.asset new file mode 100644 index 0000000..fedee07 --- /dev/null +++ b/Assets/Settings/Mobile_RPAsset.asset @@ -0,0 +1,143 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: Mobile_RPAsset + m_EditorClassIdentifier: + k_AssetVersion: 13 + k_AssetPreviousVersion: 13 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: 65bc7dbf4170f435aa868c779acfb082, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 0 + m_SupportsTerrainHoles: 1 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 0.8 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 1 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_LightProbeSystem: 0 + m_ProbeVolumeMemoryBudget: 1024 + m_ProbeVolumeBlendingMemoryBudget: 256 + m_SupportProbeVolumeGPUStreaming: 0 + m_SupportProbeVolumeDiskStreaming: 0 + m_SupportProbeVolumeScenarios: 0 + m_SupportProbeVolumeScenarioBlending: 0 + m_ProbeVolumeSHBands: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 1024 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 4 + m_AdditionalLightShadowsSupported: 0 + m_AdditionalLightsShadowmapResolution: 2048 + m_AdditionalLightsShadowResolutionTierLow: 256 + m_AdditionalLightsShadowResolutionTierMedium: 512 + m_AdditionalLightsShadowResolutionTierHigh: 1024 + m_ReflectionProbeBlending: 1 + m_ReflectionProbeBoxProjection: 1 + m_ReflectionProbeAtlas: 1 + m_ShadowDistance: 50 + m_ShadowCascadeCount: 1 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.1, y: 0.3} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.2 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 0 + m_ConservativeEnclosingSphere: 1 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 2 + m_AdditionalLightsCookieResolution: 1024 + m_AdditionalLightsCookieFormat: 1 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightCookies: 1 + m_SupportsLightLayers: 1 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 + m_UseFastSRGBLinearConversion: 1 + m_SupportDataDrivenLensFlare: 1 + m_SupportScreenSpaceLensFlare: 1 + m_GPUResidentDrawerMode: 0 + m_SmallMeshScreenPercentage: 0 + m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_VolumeFrameworkUpdateMode: 0 + m_VolumeProfile: {fileID: 11400000, guid: 10fc4df2da32a41aaa32d77bc913491c, type: 2} + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 4 + m_PrefilteringModeAdditionalLightShadows: 0 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 1 + m_PrefilteringModeDeferredRendering: 0 + m_PrefilteringModeScreenSpaceOcclusion: 0 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 0 + m_PrefilterSSAODepthNormals: 1 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 0 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 0 + m_PrefilterSSAOBlueNoise: 1 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 0 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 1 + m_PrefilterSoftShadowsQualityMedium: 1 + m_PrefilterSoftShadowsQualityHigh: 1 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterScreenSpaceIrradiance: 0 + m_PrefilterNativeRenderPass: 1 + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 + m_PrefilterReflectionProbeRotation: 0 + m_PrefilterReflectionProbeBlending: 0 + m_PrefilterReflectionProbeBoxProjection: 0 + m_PrefilterReflectionProbeAtlas: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 0 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/Assets/Settings/Mobile_RPAsset.asset.meta b/Assets/Settings/Mobile_RPAsset.asset.meta new file mode 100644 index 0000000..3660d15 --- /dev/null +++ b/Assets/Settings/Mobile_RPAsset.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5e6cbd92db86f4b18aec3ed561671858 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/Mobile_Renderer.asset b/Assets/Settings/Mobile_Renderer.asset new file mode 100644 index 0000000..ea246b2 --- /dev/null +++ b/Assets/Settings/Mobile_Renderer.asset @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} + m_Name: Mobile_Renderer + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} + probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, + type: 3} + probeVolumeResources: + probeVolumeDebugShader: {fileID: 0} + probeVolumeFragmentationDebugShader: {fileID: 0} + probeVolumeOffsetDebugShader: {fileID: 0} + probeVolumeSamplingDebugShader: {fileID: 0} + probeSamplingDebugMesh: {fileID: 0} + probeSamplingDebugTexture: {fileID: 0} + probeVolumeBlendStatesCS: {fileID: 0} + m_RendererFeatures: [] + m_RendererFeatureMap: + m_UseNativeRenderPass: 1 + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + m_AssetVersion: 2 + m_OpaqueLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparentLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_DefaultStencilState: + overrideStencilState: 0 + stencilReference: 0 + stencilCompareFunction: 8 + passOperation: 2 + failOperation: 0 + zFailOperation: 0 + m_ShadowTransparentReceive: 0 + m_RenderingMode: 0 + m_DepthPrimingMode: 0 + m_CopyDepthMode: 0 + m_AccurateGbufferNormals: 0 + m_IntermediateTextureMode: 0 diff --git a/Assets/Settings/Mobile_Renderer.asset.meta b/Assets/Settings/Mobile_Renderer.asset.meta new file mode 100644 index 0000000..a3588b1 --- /dev/null +++ b/Assets/Settings/Mobile_Renderer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65bc7dbf4170f435aa868c779acfb082 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/PC_RPAsset.asset b/Assets/Settings/PC_RPAsset.asset new file mode 100644 index 0000000..9b2b046 --- /dev/null +++ b/Assets/Settings/PC_RPAsset.asset @@ -0,0 +1,143 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: PC_RPAsset + m_EditorClassIdentifier: + k_AssetVersion: 13 + k_AssetPreviousVersion: 13 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: f288ae1f4751b564a96ac7587541f7a2, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 1 + m_RequireOpaqueTexture: 1 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 1 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 1 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_LightProbeSystem: 0 + m_ProbeVolumeMemoryBudget: 1024 + m_ProbeVolumeBlendingMemoryBudget: 256 + m_SupportProbeVolumeGPUStreaming: 0 + m_SupportProbeVolumeDiskStreaming: 0 + m_SupportProbeVolumeScenarios: 0 + m_SupportProbeVolumeScenarioBlending: 0 + m_ProbeVolumeSHBands: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 2048 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 4 + m_AdditionalLightShadowsSupported: 1 + m_AdditionalLightsShadowmapResolution: 2048 + m_AdditionalLightsShadowResolutionTierLow: 256 + m_AdditionalLightsShadowResolutionTierMedium: 512 + m_AdditionalLightsShadowResolutionTierHigh: 1024 + m_ReflectionProbeBlending: 1 + m_ReflectionProbeBoxProjection: 1 + m_ReflectionProbeAtlas: 1 + m_ShadowDistance: 50 + m_ShadowCascadeCount: 4 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.1, y: 0.3} + m_Cascade4Split: {x: 0.12299999, y: 0.2926, z: 0.53599995} + m_CascadeBorder: 0.107758604 + m_ShadowDepthBias: 0.1 + m_ShadowNormalBias: 0.5 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 1 + m_ConservativeEnclosingSphere: 1 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 3 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightCookies: 1 + m_SupportsLightLayers: 1 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 + m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 1 + m_SupportScreenSpaceLensFlare: 1 + m_GPUResidentDrawerMode: 0 + m_SmallMeshScreenPercentage: 0 + m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_VolumeFrameworkUpdateMode: 0 + m_VolumeProfile: {fileID: 11400000, guid: 10fc4df2da32a41aaa32d77bc913491c, type: 2} + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 4 + m_PrefilteringModeAdditionalLightShadows: 0 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 1 + m_PrefilteringModeDeferredRendering: 0 + m_PrefilteringModeScreenSpaceOcclusion: 1 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 0 + m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 0 + m_PrefilterSSAODepthNormals: 0 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 1 + m_PrefilterSSAOBlueNoise: 0 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 0 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 0 + m_PrefilterSoftShadowsQualityLow: 0 + m_PrefilterSoftShadowsQualityMedium: 0 + m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterScreenSpaceIrradiance: 0 + m_PrefilterNativeRenderPass: 1 + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 + m_PrefilterReflectionProbeRotation: 0 + m_PrefilterReflectionProbeBlending: 0 + m_PrefilterReflectionProbeBoxProjection: 0 + m_PrefilterReflectionProbeAtlas: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 0 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/Assets/Settings/PC_RPAsset.asset.meta b/Assets/Settings/PC_RPAsset.asset.meta new file mode 100644 index 0000000..e286b2f --- /dev/null +++ b/Assets/Settings/PC_RPAsset.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4b83569d67af61e458304325a23e5dfd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/PC_Renderer.asset b/Assets/Settings/PC_Renderer.asset new file mode 100644 index 0000000..475b02e --- /dev/null +++ b/Assets/Settings/PC_Renderer.asset @@ -0,0 +1,95 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} + m_Name: PC_Renderer + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} + probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, + type: 3} + probeVolumeResources: + probeVolumeDebugShader: {fileID: 4800000, guid: e5c6678ed2aaa91408dd3df699057aae, + type: 3} + probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 03cfc4915c15d504a9ed85ecc404e607, + type: 3} + probeVolumeOffsetDebugShader: {fileID: 4800000, guid: 53a11f4ebaebf4049b3638ef78dc9664, + type: 3} + probeVolumeSamplingDebugShader: {fileID: 4800000, guid: 8f96cd657dc40064aa21efcc7e50a2e7, + type: 3} + probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 57d7c4c16e2765b47a4d2069b311bffe, + type: 3} + probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e, + type: 3} + probeVolumeBlendStatesCS: {fileID: 7200000, guid: b9a23f869c4fd45f19c5ada54dd82176, + type: 3} + m_RendererFeatures: + - {fileID: 7833122117494664109} + m_RendererFeatureMap: ad6b866f10d7b46c + m_UseNativeRenderPass: 1 + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + m_AssetVersion: 2 + m_OpaqueLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparentLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_DefaultStencilState: + overrideStencilState: 0 + stencilReference: 1 + stencilCompareFunction: 3 + passOperation: 2 + failOperation: 0 + zFailOperation: 0 + m_ShadowTransparentReceive: 1 + m_RenderingMode: 2 + m_DepthPrimingMode: 0 + m_CopyDepthMode: 0 + m_AccurateGbufferNormals: 0 + m_IntermediateTextureMode: 0 +--- !u!114 &7833122117494664109 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f62c9c65cf3354c93be831c8bc075510, type: 3} + m_Name: ScreenSpaceAmbientOcclusion + m_EditorClassIdentifier: + m_Active: 1 + m_Settings: + AOMethod: 0 + Downsample: 0 + AfterOpaque: 0 + Source: 1 + NormalSamples: 1 + Intensity: 0.4 + DirectLightingStrength: 0.25 + Radius: 0.3 + Samples: 1 + BlurQuality: 0 + Falloff: 100 + SampleCount: -1 + m_BlueNoise256Textures: + - {fileID: 2800000, guid: 36f118343fc974119bee3d09e2111500, type: 3} + - {fileID: 2800000, guid: 4b7b083e6b6734e8bb2838b0b50a0bc8, type: 3} + - {fileID: 2800000, guid: c06cc21c692f94f5fb5206247191eeee, type: 3} + - {fileID: 2800000, guid: cb76dd40fa7654f9587f6a344f125c9a, type: 3} + - {fileID: 2800000, guid: e32226222ff144b24bf3a5a451de54bc, type: 3} + - {fileID: 2800000, guid: 3302065f671a8450b82c9ddf07426f3a, type: 3} + - {fileID: 2800000, guid: 56a77a3e8d64f47b6afe9e3c95cb57d5, type: 3} + m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3} diff --git a/Assets/Settings/PC_Renderer.asset.meta b/Assets/Settings/PC_Renderer.asset.meta new file mode 100644 index 0000000..ddae6a5 --- /dev/null +++ b/Assets/Settings/PC_Renderer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f288ae1f4751b564a96ac7587541f7a2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/SampleSceneProfile.asset b/Assets/Settings/SampleSceneProfile.asset new file mode 100644 index 0000000..c1b0f63 --- /dev/null +++ b/Assets/Settings/SampleSceneProfile.asset @@ -0,0 +1,159 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7893295128165547882 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + skipIterations: + m_OverrideState: 1 + m_Value: 0 + threshold: + m_OverrideState: 1 + m_Value: 1 + intensity: + m_OverrideState: 1 + m_Value: 0.25 + scatter: + m_OverrideState: 1 + m_Value: 0.5 + clamp: + m_OverrideState: 0 + m_Value: 65472 + tint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + highQualityFiltering: + m_OverrideState: 1 + m_Value: 1 + downscale: + m_OverrideState: 0 + m_Value: 0 + maxIterations: + m_OverrideState: 0 + m_Value: 6 + dirtTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + dimension: 1 + dirtIntensity: + m_OverrideState: 0 + m_Value: 0 +--- !u!114 &-3357603926938260329 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} + m_Name: Vignette + m_EditorClassIdentifier: + active: 1 + color: + m_OverrideState: 0 + m_Value: {r: 0, g: 0, b: 0, a: 1} + center: + m_OverrideState: 0 + m_Value: {x: 0.5, y: 0.5} + intensity: + m_OverrideState: 1 + m_Value: 0.2 + smoothness: + m_OverrideState: 0 + m_Value: 0.2 + rounded: + m_OverrideState: 0 + m_Value: 0 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: SampleSceneProfile + m_EditorClassIdentifier: + components: + - {fileID: 849379129802519247} + - {fileID: -7893295128165547882} + - {fileID: 7391319092446245454} + - {fileID: -3357603926938260329} +--- !u!114 &849379129802519247 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} + m_Name: Tonemapping + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 1 + neutralHDRRangeReductionMode: + m_OverrideState: 0 + m_Value: 2 + acesPreset: + m_OverrideState: 0 + m_Value: 3 + hueShiftAmount: + m_OverrideState: 0 + m_Value: 0 + detectPaperWhite: + m_OverrideState: 1 + m_Value: 0 + paperWhite: + m_OverrideState: 1 + m_Value: 234 + detectBrightnessLimits: + m_OverrideState: 1 + m_Value: 1 + minNits: + m_OverrideState: 1 + m_Value: 0.005 + maxNits: + m_OverrideState: 1 + m_Value: 647 +--- !u!114 &7391319092446245454 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccf1aba9553839d41ae37dd52e9ebcce, type: 3} + m_Name: MotionBlur + m_EditorClassIdentifier: + active: 0 + mode: + m_OverrideState: 0 + m_Value: 0 + quality: + m_OverrideState: 1 + m_Value: 2 + intensity: + m_OverrideState: 1 + m_Value: 0.6 + clamp: + m_OverrideState: 0 + m_Value: 0.05 diff --git a/Assets/Settings/SampleSceneProfile.asset.meta b/Assets/Settings/SampleSceneProfile.asset.meta new file mode 100644 index 0000000..b82270c --- /dev/null +++ b/Assets/Settings/SampleSceneProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 10fc4df2da32a41aaa32d77bc913491c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset b/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset new file mode 100644 index 0000000..831b137 --- /dev/null +++ b/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset @@ -0,0 +1,387 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3} + m_Name: UniversalRenderPipelineGlobalSettings + m_EditorClassIdentifier: + m_ShaderStrippingSetting: + m_Version: 0 + m_ExportShaderVariants: 1 + m_ShaderVariantLogLevel: 0 + m_StripRuntimeDebugShaders: 1 + m_URPShaderStrippingSetting: + m_Version: 0 + m_StripUnusedPostProcessingVariants: 1 + m_StripUnusedVariants: 1 + m_StripScreenCoordOverrideVariants: 1 + m_ShaderVariantLogLevel: 0 + m_ExportShaderVariants: 1 + m_StripDebugVariants: 1 + m_StripUnusedPostProcessingVariants: 1 + m_StripUnusedVariants: 1 + m_StripScreenCoordOverrideVariants: 1 + supportRuntimeDebugDisplay: 0 + m_EnableRenderGraph: 0 + m_Settings: + m_SettingsList: + m_List: + - rid: 6852985685364965376 + - rid: 6852985685364965377 + - rid: 6852985685364965378 + - rid: 6852985685364965379 + - rid: 6852985685364965380 + - rid: 6852985685364965381 + - rid: 6852985685364965382 + - rid: 6852985685364965383 + - rid: 6852985685364965384 + - rid: 6852985685364965385 + - rid: 6852985685364965386 + - rid: 6852985685364965387 + - rid: 6852985685364965388 + - rid: 6852985685364965389 + - rid: 6852985685364965390 + - rid: 6852985685364965391 + - rid: 6852985685364965392 + - rid: 6852985685364965393 + - rid: 6852985685364965394 + - rid: 8712630790384254976 + - rid: 2214980711876132864 + - rid: 2214980711876132865 + - rid: 2214980711876132866 + - rid: 2214980711876132867 + - rid: 2214980711876132868 + - rid: 2214980711876132869 + - rid: 2214980711876132870 + - rid: 2214980711876132871 + - rid: 2214980711876132872 + - rid: 2214980711876132873 + - rid: 2214980711876132874 + - rid: 2214980711876132875 + m_RuntimeSettings: + m_List: [] + m_AssetVersion: 9 + m_ObsoleteDefaultVolumeProfile: {fileID: 0} + m_RenderingLayerNames: + - Light Layer default + - Light Layer 1 + - Light Layer 2 + - Light Layer 3 + - Light Layer 4 + - Light Layer 5 + - Light Layer 6 + - Light Layer 7 + m_ValidRenderingLayers: 0 + lightLayerName0: Light Layer default + lightLayerName1: Light Layer 1 + lightLayerName2: Light Layer 2 + lightLayerName3: Light Layer 3 + lightLayerName4: Light Layer 4 + lightLayerName5: Light Layer 5 + lightLayerName6: Light Layer 6 + lightLayerName7: Light Layer 7 + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + references: + version: 2 + RefIds: + - rid: 2214980711876132864 + type: {class: RayTracingRenderPipelineResources, ns: UnityEngine.Rendering.UnifiedRayTracing, asm: Unity.UnifiedRayTracing.Runtime} + data: + m_Version: 1 + m_GeometryPoolKernels: {fileID: 7200000, guid: 98e3d58cae7210c4786f67f504c9e899, type: 3} + m_CopyBuffer: {fileID: 7200000, guid: 1b95b5dcf48d1914c9e1e7405c7660e3, type: 3} + m_CopyPositions: {fileID: 7200000, guid: 1ad53a96b58d3c3488dde4f14db1aaeb, type: 3} + m_BitHistogram: {fileID: 7200000, guid: 8670f7ce4b60cef43bed36148aa1b0a2, type: 3} + m_BlockReducePart: {fileID: 7200000, guid: 4e034cc8ea2635c4e9f063e5ddc7ea7a, type: 3} + m_BlockScan: {fileID: 7200000, guid: 4d6d5de35fa45ef4a92119397a045cc9, type: 3} + m_BuildHlbvh: {fileID: 7200000, guid: 2d70cd6be91bd7843a39a54b51c15b13, type: 3} + m_RestructureBvh: {fileID: 7200000, guid: 56641cb88dcb31a4398a4997ef7a7a8c, type: 3} + m_Scatter: {fileID: 7200000, guid: a2eaeefdac4637a44b734e85b7be9186, type: 3} + - rid: 2214980711876132865 + type: {class: ScreenSpaceAmbientOcclusionPersistentResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3} + m_Version: 0 + - rid: 2214980711876132866 + type: {class: ScreenSpaceAmbientOcclusionDynamicResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_BlueNoise256Textures: + - {fileID: 2800000, guid: 36f118343fc974119bee3d09e2111500, type: 3} + - {fileID: 2800000, guid: 4b7b083e6b6734e8bb2838b0b50a0bc8, type: 3} + - {fileID: 2800000, guid: c06cc21c692f94f5fb5206247191eeee, type: 3} + - {fileID: 2800000, guid: cb76dd40fa7654f9587f6a344f125c9a, type: 3} + - {fileID: 2800000, guid: e32226222ff144b24bf3a5a451de54bc, type: 3} + - {fileID: 2800000, guid: 3302065f671a8450b82c9ddf07426f3a, type: 3} + - {fileID: 2800000, guid: 56a77a3e8d64f47b6afe9e3c95cb57d5, type: 3} + m_Version: 0 + - rid: 2214980711876132867 + type: {class: OnTilePostProcessResource, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_UberPostShader: {fileID: 4800000, guid: fe4f13c1004a07d4ea1e30bfd0326d9e, type: 3} + - rid: 2214980711876132868 + type: {class: PostProcessData/TextureResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + blueNoise16LTex: [] + filmGrainTex: + - {fileID: 2800000, guid: 654c582f7f8a5a14dbd7d119cbde215d, type: 3} + - {fileID: 2800000, guid: dd77ffd079630404e879388999033049, type: 3} + - {fileID: 2800000, guid: 1097e90e1306e26439701489f391a6c0, type: 3} + - {fileID: 2800000, guid: f0b67500f7fad3b4c9f2b13e8f41ba6e, type: 3} + - {fileID: 2800000, guid: 9930fb4528622b34687b00bbe6883de7, type: 3} + - {fileID: 2800000, guid: bd9e8c758250ef449a4b4bfaad7a2133, type: 3} + - {fileID: 2800000, guid: 510a2f57334933e4a8dbabe4c30204e4, type: 3} + - {fileID: 2800000, guid: b4db8180660810945bf8d55ab44352ad, type: 3} + - {fileID: 2800000, guid: fd2fd78b392986e42a12df2177d3b89c, type: 3} + - {fileID: 2800000, guid: 5cdee82a77d13994f83b8fdabed7c301, type: 3} + smaaAreaTex: {fileID: 2800000, guid: d1f1048909d55cd4fa1126ab998f617e, type: 3} + smaaSearchTex: {fileID: 2800000, guid: 51eee22c2a633ef4aada830eed57c3fd, type: 3} + m_TexturesResourcesVersion: 0 + - rid: 2214980711876132869 + type: {class: UniversalRenderPipelineRuntimeXRResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_xrOcclusionMeshPS: {fileID: 4800000, guid: 4431b1f1f743fbf4eb310a967890cbea, type: 3} + m_xrMirrorViewPS: {fileID: 4800000, guid: d5a307c014552314b9f560906d708772, type: 3} + m_xrMotionVector: {fileID: 4800000, guid: f89aac1e4f84468418fe30e611dff395, type: 3} + - rid: 2214980711876132870 + type: {class: PostProcessData/ShaderResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + stopNanPS: {fileID: 4800000, guid: 1121bb4e615ca3c48b214e79e841e823, type: 3} + subpixelMorphologicalAntialiasingPS: {fileID: 4800000, guid: 63eaba0ebfb82cc43bde059b4a8c65f6, type: 3} + gaussianDepthOfFieldPS: {fileID: 4800000, guid: 5e7134d6e63e0bc47a1dd2669cedb379, type: 3} + bokehDepthOfFieldPS: {fileID: 4800000, guid: 2aed67ad60045d54ba3a00c91e2d2631, type: 3} + cameraMotionBlurPS: {fileID: 4800000, guid: 1edcd131364091c46a17cbff0b1de97a, type: 3} + paniniProjectionPS: {fileID: 4800000, guid: a15b78cf8ca26ca4fb2090293153c62c, type: 3} + lutBuilderLdrPS: {fileID: 4800000, guid: 65df88701913c224d95fc554db28381a, type: 3} + lutBuilderHdrPS: {fileID: 4800000, guid: ec9fec698a3456d4fb18cf8bacb7a2bc, type: 3} + bloomPS: {fileID: 4800000, guid: 5f1864addb451f54bae8c86d230f736e, type: 3} + temporalAntialiasingPS: {fileID: 4800000, guid: 9c70c1a35ff15f340b38ea84842358bf, type: 3} + LensFlareDataDrivenPS: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92, type: 3} + LensFlareScreenSpacePS: {fileID: 4800000, guid: 701880fecb344ea4c9cd0db3407ab287, type: 3} + scalingSetupPS: {fileID: 4800000, guid: e8ee25143a34b8c4388709ea947055d1, type: 3} + easuPS: {fileID: 4800000, guid: 562b7ae4f629f144aa97780546fce7c6, type: 3} + uberPostPS: {fileID: 4800000, guid: e7857e9d0c934dc4f83f270f8447b006, type: 3} + finalPostPassPS: {fileID: 4800000, guid: c49e63ed1bbcb334780a3bd19dfed403, type: 3} + m_ShaderResourcesVersion: 0 + - rid: 2214980711876132871 + type: {class: URPReflectionProbeSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Universal.Runtime} + data: + version: 1 + useReflectionProbeRotation: 0 + - rid: 2214980711876132872 + type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_DefaultSettingsVolumeProfile: {fileID: 11400000, guid: eda47df5b85f4f249abf7abd73db2cb2, type: 2} + - rid: 2214980711876132873 + type: {class: RenderingDebuggerRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_version: 0 + - rid: 2214980711876132874 + type: {class: LightmapSamplingSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + m_UseBicubicLightmapSampling: 0 + - rid: 2214980711876132875 + type: {class: VrsRenderPipelineRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_TextureComputeShader: {fileID: 7200000, guid: cacb30de6c40c7444bbc78cb0a81fd2a, type: 3} + m_VisualizationShader: {fileID: 4800000, guid: 620b55b8040a88d468e94abe55bed5ba, type: 3} + m_VisualizationLookupTable: + m_Data: + - {r: 0.785, g: 0.23, b: 0.2, a: 1} + - {r: 1, g: 0.8, b: 0.8, a: 1} + - {r: 0.4, g: 0.2, b: 0.2, a: 1} + - {r: 0.51, g: 0.8, b: 0.6, a: 1} + - {r: 0.6, g: 0.8, b: 1, a: 1} + - {r: 0.2, g: 0.4, b: 0.6, a: 1} + - {r: 0.8, g: 1, b: 0.8, a: 1} + - {r: 0.2, g: 0.4, b: 0.2, a: 1} + - {r: 0.125, g: 0.22, b: 0.36, a: 1} + m_ConversionLookupTable: + m_Data: + - {r: 0.785, g: 0.23, b: 0.2, a: 1} + - {r: 1, g: 0.8, b: 0.8, a: 1} + - {r: 0.4, g: 0.2, b: 0.2, a: 1} + - {r: 0.51, g: 0.8, b: 0.6, a: 1} + - {r: 0.6, g: 0.8, b: 1, a: 1} + - {r: 0.2, g: 0.4, b: 0.6, a: 1} + - {r: 0.8, g: 1, b: 0.8, a: 1} + - {r: 0.2, g: 0.4, b: 0.2, a: 1} + - {r: 0.125, g: 0.22, b: 0.36, a: 1} + - rid: 6852985685364965376 + type: {class: URPShaderStrippingSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_StripUnusedPostProcessingVariants: 1 + m_StripUnusedVariants: 1 + m_StripScreenCoordOverrideVariants: 1 + - rid: 6852985685364965377 + type: {class: UniversalRenderPipelineEditorShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3} + m_AutodeskInteractiveTransparent: {fileID: 4800000, guid: 5c81372d981403744adbdda4433c9c11, type: 3} + m_AutodeskInteractiveMasked: {fileID: 4800000, guid: 80aa867ac363ac043847b06ad71604cd, type: 3} + m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3} + m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3} + m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3} + - rid: 6852985685364965378 + type: {class: UniversalRendererResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + m_CameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3} + m_StencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} + m_ClusterDeferred: {fileID: 4800000, guid: 222cce62363a44a380c36bf03b392608, type: 3} + m_StencilDitherMaskSeedPS: {fileID: 4800000, guid: 8c3ee818f2efa514c889881ccb2e95a2, type: 3} + m_DBufferClear: {fileID: 4800000, guid: f056d8bd2a1c7e44e9729144b4c70395, type: 3} + - rid: 6852985685364965379 + type: {class: UniversalRenderPipelineDebugShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_DebugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} + m_HdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} + m_ProbeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3} + - rid: 6852985685364965380 + type: {class: UniversalRenderPipelineRuntimeShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_FallbackErrorShader: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} + m_BlitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3} + m_CoreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} + m_CoreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3} + m_SamplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} + m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, type: 3} + m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, type: 3} + m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, type: 3} + - rid: 6852985685364965381 + type: {class: UniversalRenderPipelineRuntimeTextures, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 1 + m_BlueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + m_BayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} + m_DebugFontTex: {fileID: 2800000, guid: 26a413214480ef144b2915d6ff4d0beb, type: 3} + - rid: 6852985685364965382 + type: {class: Renderer2DResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_LightShader: {fileID: 4800000, guid: 3f6c848ca3d7bca4bbe846546ac701a1, type: 3} + m_ProjectedShadowShader: {fileID: 4800000, guid: ce09d4a80b88c5a4eb9768fab4f1ee00, type: 3} + m_SpriteShadowShader: {fileID: 4800000, guid: 44fc62292b65ab04eabcf310e799ccf6, type: 3} + m_SpriteUnshadowShader: {fileID: 4800000, guid: de02b375720b5c445afe83cd483bedf3, type: 3} + m_GeometryShadowShader: {fileID: 4800000, guid: 19349a0f9a7ed4c48a27445bcf92e5e1, type: 3} + m_GeometryUnshadowShader: {fileID: 4800000, guid: 77774d9009bb81447b048c907d4c6273, type: 3} + m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2} + m_DefaultMesh2DLitMaterial: {fileID: 2100000, guid: 9452ae1262a74094f8a68013fbcd1834, type: 2} + - rid: 6852985685364965383 + type: {class: UniversalRenderPipelineEditorMaterials, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_DefaultMaterial: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_DefaultParticleMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2} + m_DefaultLineMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2} + m_DefaultTerrainMaterial: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_DefaultDecalMaterial: {fileID: 2100000, guid: 31d0dcc6f2dd4e4408d18036a2c93862, type: 2} + m_DefaultSpriteMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + - rid: 6852985685364965384 + type: {class: URPDefaultVolumeProfileSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_VolumeProfile: {fileID: 11400000, guid: ab09877e2e707104187f6f83e2f62510, type: 2} + - rid: 6852985685364965385 + type: {class: RenderGraphSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_EnableRenderCompatibilityMode: 0 + - rid: 6852985685364965386 + type: {class: GPUResidentDrawerResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.GPUDriven.Runtime} + data: + m_Version: 0 + m_InstanceDataBufferCopyKernels: {fileID: 7200000, guid: f984aeb540ded8b4fbb8a2047ab5b2e2, type: 3} + m_InstanceDataBufferUploadKernels: {fileID: 7200000, guid: 53864816eb00f2343b60e1a2c5a262ef, type: 3} + m_TransformUpdaterKernels: {fileID: 7200000, guid: 2a567b9b2733f8d47a700c3c85bed75b, type: 3} + m_WindDataUpdaterKernels: {fileID: 7200000, guid: fde76746e4fd0ed418c224f6b4084114, type: 3} + m_OccluderDepthPyramidKernels: {fileID: 7200000, guid: 08b2b5fb307b0d249860612774a987da, type: 3} + m_InstanceOcclusionCullingKernels: {fileID: 7200000, guid: f6d223acabc2f974795a5a7864b50e6c, type: 3} + m_OcclusionCullingDebugKernels: {fileID: 7200000, guid: b23e766bcf50ca4438ef186b174557df, type: 3} + m_DebugOcclusionTestPS: {fileID: 4800000, guid: d3f0849180c2d0944bc71060693df100, type: 3} + m_DebugOccluderPS: {fileID: 4800000, guid: b3c92426a88625841ab15ca6a7917248, type: 3} + - rid: 6852985685364965387 + type: {class: STP/RuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_setupCS: {fileID: 7200000, guid: 33be2e9a5506b2843bdb2bdff9cad5e1, type: 3} + m_preTaaCS: {fileID: 7200000, guid: a679dba8ec4d9ce45884a270b0e22dda, type: 3} + m_taaCS: {fileID: 7200000, guid: 3923900e2b41b5e47bc25bfdcbcdc9e6, type: 3} + - rid: 6852985685364965388 + type: {class: ProbeVolumeBakingResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + dilationShader: {fileID: 7200000, guid: 6bb382f7de370af41b775f54182e491d, type: 3} + subdivideSceneCS: {fileID: 7200000, guid: bb86f1f0af829fd45b2ebddda1245c22, type: 3} + voxelizeSceneShader: {fileID: 4800000, guid: c8b6a681c7b4e2e4785ffab093907f9e, type: 3} + traceVirtualOffsetCS: {fileID: -6772857160820960102, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3} + traceVirtualOffsetRT: {fileID: -5126288278712620388, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3} + skyOcclusionCS: {fileID: -6772857160820960102, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3} + skyOcclusionRT: {fileID: -5126288278712620388, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3} + renderingLayerCS: {fileID: -6772857160820960102, guid: 94a070d33e408384bafc1dea4a565df9, type: 3} + renderingLayerRT: {fileID: -5126288278712620388, guid: 94a070d33e408384bafc1dea4a565df9, type: 3} + - rid: 6852985685364965389 + type: {class: ProbeVolumeGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + m_ProbeVolumeDisableStreamingAssets: 0 + - rid: 6852985685364965390 + type: {class: ProbeVolumeDebugResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + probeVolumeDebugShader: {fileID: 4800000, guid: 3b21275fd12d65f49babb5286f040f2d, type: 3} + probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 3a80877c579b9144ebdcc6d923bca303, type: 3} + probeVolumeSamplingDebugShader: {fileID: 4800000, guid: bf54e6528c79a224e96346799064c393, type: 3} + probeVolumeOffsetDebugShader: {fileID: 4800000, guid: db8bd7436dc2c5f4c92655307d198381, type: 3} + probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 20be25aac4e22ee49a7db76fb3df6de2, type: 3} + numbersDisplayTex: {fileID: 2800000, guid: 73fe53b428c5b3440b7e87ee830b608a, type: 3} + - rid: 6852985685364965391 + type: {class: IncludeAdditionalRPAssets, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_version: 0 + m_IncludeReferencedInScenes: 0 + m_IncludeAssetsByLabel: 0 + m_LabelToInclude: + - rid: 6852985685364965392 + type: {class: ShaderStrippingSetting, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 0 + m_ExportShaderVariants: 1 + m_ShaderVariantLogLevel: 0 + m_StripRuntimeDebugShaders: 1 + - rid: 6852985685364965393 + type: {class: ProbeVolumeRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + probeVolumeBlendStatesCS: {fileID: 7200000, guid: a3f7b8c99de28a94684cb1daebeccf5d, type: 3} + probeVolumeUploadDataCS: {fileID: 7200000, guid: 0951de5992461754fa73650732c4954c, type: 3} + probeVolumeUploadDataL2CS: {fileID: 7200000, guid: 6196f34ed825db14b81fb3eb0ea8d931, type: 3} + - rid: 6852985685364965394 + type: {class: RenderGraphGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_version: 0 + m_EnableCompilationCaching: 1 + m_EnableValidityChecks: 1 + - rid: 8712630790384254976 + type: {class: RenderGraphUtilsResources, ns: UnityEngine.Rendering.RenderGraphModule.Util, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 0 + m_CoreCopyPS: {fileID: 4800000, guid: 12dc59547ea167a4ab435097dd0f9add, type: 3} diff --git a/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset.meta b/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset.meta new file mode 100644 index 0000000..81b84f2 --- /dev/null +++ b/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 18dc0cd2c080841dea60987a38ce93fa +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TutorialInfo.meta b/Assets/TutorialInfo.meta new file mode 100644 index 0000000..a700bca --- /dev/null +++ b/Assets/TutorialInfo.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ba062aa6c92b140379dbc06b43dd3b9b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TutorialInfo/Icons.meta b/Assets/TutorialInfo/Icons.meta new file mode 100644 index 0000000..1d19fb9 --- /dev/null +++ b/Assets/TutorialInfo/Icons.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8a0c9218a650547d98138cd835033977 +folderAsset: yes +timeCreated: 1484670163 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TutorialInfo/Icons/URP.png b/Assets/TutorialInfo/Icons/URP.png new file mode 100644 index 0000000000000000000000000000000000000000..6194a807e27158f864a7c7677f4cbf62d8b94503 GIT binary patch literal 24069 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 HejoV\Packages\com.unity.render-pipelines.core\Runtime\CommandBuffers\ +// +// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +namespace UnityEngine.Rendering +{ + + ///

+ /// A command buffer that is used with a compute render graph pass. + /// + public class ComputeCommandBuffer : BaseCommandBuffer, IComputeCommandBuffer + { + // ComputeCommandBuffer is not created by users. The render graph creates them and passes them to the execute callback of the graph pass. + internal ComputeCommandBuffer(CommandBuffer wrapped, RenderGraphPass executingPass, bool isAsync) : base(wrapped, executingPass, isAsync) { } + + /// Wraps [SetInvertCulling](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInvertCulling.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInvertCulling.html) + public void SetInvertCulling(bool invertCulling) { m_WrappedCommandBuffer.SetInvertCulling(invertCulling); } + + /// Wraps [SetComputeFloatParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + public void SetComputeFloatParam(ComputeShader computeShader, int nameID, float val) { m_WrappedCommandBuffer.SetComputeFloatParam(computeShader, nameID, val); } + + /// Wraps [SetComputeIntParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + public void SetComputeIntParam(ComputeShader computeShader, int nameID, int val) { m_WrappedCommandBuffer.SetComputeIntParam(computeShader, nameID, val); } + + /// Wraps [SetComputeVectorParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + public void SetComputeVectorParam(ComputeShader computeShader, int nameID, Vector4 val) { m_WrappedCommandBuffer.SetComputeVectorParam(computeShader, nameID, val); } + + /// Wraps [SetComputeVectorArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + public void SetComputeVectorArrayParam(ComputeShader computeShader, int nameID, Vector4[] values) { m_WrappedCommandBuffer.SetComputeVectorArrayParam(computeShader, nameID, values); } + + /// Wraps [SetComputeMatrixParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + public void SetComputeMatrixParam(ComputeShader computeShader, int nameID, Matrix4x4 val) { m_WrappedCommandBuffer.SetComputeMatrixParam(computeShader, nameID, val); } + + /// Wraps [SetComputeMatrixArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + public void SetComputeMatrixArrayParam(ComputeShader computeShader, int nameID, Matrix4x4[] values) { m_WrappedCommandBuffer.SetComputeMatrixArrayParam(computeShader, nameID, values); } + + /// Wraps [SetRayTracingShaderPass](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingShaderPass.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingShaderPass.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingShaderPass.html) + public void SetRayTracingShaderPass(RayTracingShader rayTracingShader, string passName) { m_WrappedCommandBuffer.SetRayTracingShaderPass(rayTracingShader, passName); } + + /// Wraps [SetViewport](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewport.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewport.html) + public void SetViewport(Rect pixelRect) { m_WrappedCommandBuffer.SetViewport(pixelRect); } + + /// Wraps [EnableScissorRect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableScissorRect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableScissorRect.html) + public void EnableScissorRect(Rect scissor) { m_WrappedCommandBuffer.EnableScissorRect(scissor); } + + /// Wraps [DisableScissorRect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableScissorRect.html) on a CommandBuffer. + + public void DisableScissorRect() { m_WrappedCommandBuffer.DisableScissorRect(); } + + /// Wraps [SetGlobalFloat](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + public void SetGlobalFloat(int nameID, float value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloat(nameID, value); } + + /// Wraps [SetGlobalInt](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + public void SetGlobalInt(int nameID, int value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalInt(nameID, value); } + + /// Wraps [SetGlobalInteger](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + public void SetGlobalInteger(int nameID, int value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalInteger(nameID, value); } + + /// Wraps [SetGlobalVector](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + public void SetGlobalVector(int nameID, Vector4 value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVector(nameID, value); } + + /// Wraps [SetGlobalColor](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + public void SetGlobalColor(int nameID, Color value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalColor(nameID, value); } + + /// Wraps [SetGlobalMatrix](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + public void SetGlobalMatrix(int nameID, Matrix4x4 value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrix(nameID, value); } + + /// Wraps [EnableShaderKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableShaderKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableShaderKeyword.html) + public void EnableShaderKeyword(string keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableShaderKeyword(keyword); } + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(in GlobalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableKeyword(keyword); } + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(Material material, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableKeyword(material, keyword); } + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(ComputeShader computeShader, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableKeyword(computeShader, keyword); } + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(RayTracingShader rayTracingShader, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableKeyword(rayTracingShader, keyword); } + + /// Wraps [DisableShaderKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableShaderKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableShaderKeyword.html) + public void DisableShaderKeyword(string keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableShaderKeyword(keyword); } + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(in GlobalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableKeyword(keyword); } + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(Material material, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableKeyword(material, keyword); } + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(ComputeShader computeShader, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableKeyword(computeShader, keyword); } + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(RayTracingShader rayTracingShader, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableKeyword(rayTracingShader, keyword); } + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(in GlobalKeyword keyword, bool value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetKeyword(keyword, value); } + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(Material material, in LocalKeyword keyword, bool value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetKeyword(material, keyword, value); } + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(ComputeShader computeShader, in LocalKeyword keyword, bool value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetKeyword(computeShader, keyword, value); } + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(RayTracingShader rayTracingShader, in LocalKeyword keyword, bool value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetKeyword(rayTracingShader, keyword, value); } + + /// Wraps [SetViewProjectionMatrices](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewProjectionMatrices.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewProjectionMatrices.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewProjectionMatrices.html) + public void SetViewProjectionMatrices(Matrix4x4 view, Matrix4x4 proj) { m_WrappedCommandBuffer.SetViewProjectionMatrices(view, proj); } + + /// Wraps [SetGlobalDepthBias](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalDepthBias.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalDepthBias.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalDepthBias.html) + public void SetGlobalDepthBias(float bias, float slopeBias) { m_WrappedCommandBuffer.SetGlobalDepthBias(bias, slopeBias); } + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(int nameID, float[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloatArray(nameID, values); } + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(int nameID, Vector4[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVectorArray(nameID, values); } + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(int nameID, Matrix4x4[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrixArray(nameID, values); } + + /// Wraps [SetLateLatchProjectionMatrices](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetLateLatchProjectionMatrices.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetLateLatchProjectionMatrices.html) + public void SetLateLatchProjectionMatrices(Matrix4x4[] projectionMat) { m_WrappedCommandBuffer.SetLateLatchProjectionMatrices(projectionMat); } + + /// Wraps [MarkLateLatchMatrixShaderPropertyID](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.MarkLateLatchMatrixShaderPropertyID.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.MarkLateLatchMatrixShaderPropertyID.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.MarkLateLatchMatrixShaderPropertyID.html) + public void MarkLateLatchMatrixShaderPropertyID(CameraLateLatchMatrixType matrixPropertyType, int shaderPropertyID) { m_WrappedCommandBuffer.MarkLateLatchMatrixShaderPropertyID(matrixPropertyType, shaderPropertyID); } + + /// Wraps [UnmarkLateLatchMatrix](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.UnmarkLateLatchMatrix.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.UnmarkLateLatchMatrix.html) + public void UnmarkLateLatchMatrix(CameraLateLatchMatrixType matrixPropertyType) { m_WrappedCommandBuffer.UnmarkLateLatchMatrix(matrixPropertyType); } + + /// Wraps [BeginSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) + public void BeginSample(string name) { m_WrappedCommandBuffer.BeginSample(name); } + + /// Wraps [EndSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) + public void EndSample(string name) { m_WrappedCommandBuffer.EndSample(name); } + + /// Wraps [BeginSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) + public void BeginSample(CustomSampler sampler) { m_WrappedCommandBuffer.BeginSample(sampler); } + + /// Wraps [EndSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) + public void EndSample(CustomSampler sampler) { m_WrappedCommandBuffer.EndSample(sampler); } + + /// Wraps [BeginSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) + public void BeginSample(ProfilerMarker marker) { m_WrappedCommandBuffer.BeginSample(marker); } + + /// Wraps [EndSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) + public void EndSample(ProfilerMarker marker) { m_WrappedCommandBuffer.EndSample(marker); } + + /// Wraps [IncrementUpdateCount](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IncrementUpdateCount.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IncrementUpdateCount.html) + public void IncrementUpdateCount(RenderTargetIdentifier dest) { m_WrappedCommandBuffer.IncrementUpdateCount(dest); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, Array data) { m_WrappedCommandBuffer.SetBufferData(buffer, data); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, List data) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, NativeArray data) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, Array data, int managedBufferStartIndex, int graphicsBufferStartIndex, int count) { m_WrappedCommandBuffer.SetBufferData(buffer, data, managedBufferStartIndex, graphicsBufferStartIndex, count); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, List data, int managedBufferStartIndex, int graphicsBufferStartIndex, int count) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data, managedBufferStartIndex, graphicsBufferStartIndex, count); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, NativeArray data, int nativeBufferStartIndex, int graphicsBufferStartIndex, int count) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data, nativeBufferStartIndex, graphicsBufferStartIndex, count); } + + /// Wraps [SetBufferCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) + public void SetBufferCounterValue(ComputeBuffer buffer, uint counterValue) { m_WrappedCommandBuffer.SetBufferCounterValue(buffer, counterValue); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, Array data) { m_WrappedCommandBuffer.SetBufferData(buffer, data); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, List data) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, NativeArray data) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, Array data, int managedBufferStartIndex, int graphicsBufferStartIndex, int count) { m_WrappedCommandBuffer.SetBufferData(buffer, data, managedBufferStartIndex, graphicsBufferStartIndex, count); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, List data, int managedBufferStartIndex, int graphicsBufferStartIndex, int count) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data, managedBufferStartIndex, graphicsBufferStartIndex, count); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, NativeArray data, int nativeBufferStartIndex, int graphicsBufferStartIndex, int count) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data, nativeBufferStartIndex, graphicsBufferStartIndex, count); } + + /// Wraps [SetBufferCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) + public void SetBufferCounterValue(GraphicsBuffer buffer, uint counterValue) { m_WrappedCommandBuffer.SetBufferCounterValue(buffer, counterValue); } + + /// Wraps [SetupCameraProperties](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetupCameraProperties.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetupCameraProperties.html) + public void SetupCameraProperties(Camera camera) { m_WrappedCommandBuffer.SetupCameraProperties(camera); } + + /// Wraps [InvokeOnRenderObjectCallbacks](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.InvokeOnRenderObjectCallbacks.html) on a CommandBuffer. + + public void InvokeOnRenderObjectCallbacks() { m_WrappedCommandBuffer.InvokeOnRenderObjectCallbacks(); } + + /// Wraps [SetComputeFloatParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + public void SetComputeFloatParam(ComputeShader computeShader, string name, float val) { m_WrappedCommandBuffer.SetComputeFloatParam(computeShader, name, val); } + + /// Wraps [SetComputeIntParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + public void SetComputeIntParam(ComputeShader computeShader, string name, int val) { m_WrappedCommandBuffer.SetComputeIntParam(computeShader, name, val); } + + /// Wraps [SetComputeVectorParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + public void SetComputeVectorParam(ComputeShader computeShader, string name, Vector4 val) { m_WrappedCommandBuffer.SetComputeVectorParam(computeShader, name, val); } + + /// Wraps [SetComputeVectorArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + public void SetComputeVectorArrayParam(ComputeShader computeShader, string name, Vector4[] values) { m_WrappedCommandBuffer.SetComputeVectorArrayParam(computeShader, name, values); } + + /// Wraps [SetComputeMatrixParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + public void SetComputeMatrixParam(ComputeShader computeShader, string name, Matrix4x4 val) { m_WrappedCommandBuffer.SetComputeMatrixParam(computeShader, name, val); } + + /// Wraps [SetComputeMatrixArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + public void SetComputeMatrixArrayParam(ComputeShader computeShader, string name, Matrix4x4[] values) { m_WrappedCommandBuffer.SetComputeMatrixArrayParam(computeShader, name, values); } + + /// Wraps [SetComputeFloatParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + public void SetComputeFloatParams(ComputeShader computeShader, string name, params float[] values) { m_WrappedCommandBuffer.SetComputeFloatParams(computeShader, name, values); } + + /// Wraps [SetComputeFloatParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + public void SetComputeFloatParams(ComputeShader computeShader, int nameID, params float[] values) { m_WrappedCommandBuffer.SetComputeFloatParams(computeShader, nameID, values); } + + /// Wraps [SetComputeIntParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + public void SetComputeIntParams(ComputeShader computeShader, string name, params int[] values) { m_WrappedCommandBuffer.SetComputeIntParams(computeShader, name, values); } + + /// Wraps [SetComputeIntParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + public void SetComputeIntParams(ComputeShader computeShader, int nameID, params int[] values) { m_WrappedCommandBuffer.SetComputeIntParams(computeShader, nameID, values); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, TextureHandle rt) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, name, rt); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, TextureHandle rt) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, nameID, rt); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, TextureHandle rt, int mipLevel) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, name, rt, mipLevel); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, TextureHandle rt, int mipLevel) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, nameID, rt, mipLevel); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, TextureHandle rt, int mipLevel, RenderTextureSubElement element) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, name, rt, mipLevel, element); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, TextureHandle rt, int mipLevel, RenderTextureSubElement element) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, nameID, rt, mipLevel, element); } + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, int nameID, ComputeBuffer buffer) { m_WrappedCommandBuffer.SetComputeBufferParam(computeShader, kernelIndex, nameID, buffer); } + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, string name, ComputeBuffer buffer) { m_WrappedCommandBuffer.SetComputeBufferParam(computeShader, kernelIndex, name, buffer); } + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, int nameID, GraphicsBufferHandle bufferHandle) { m_WrappedCommandBuffer.SetComputeBufferParam(computeShader, kernelIndex, nameID, bufferHandle); } + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, string name, GraphicsBufferHandle bufferHandle) { m_WrappedCommandBuffer.SetComputeBufferParam(computeShader, kernelIndex, name, bufferHandle); } + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, int nameID, GraphicsBuffer buffer) { m_WrappedCommandBuffer.SetComputeBufferParam(computeShader, kernelIndex, nameID, buffer); } + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, string name, GraphicsBuffer buffer) { m_WrappedCommandBuffer.SetComputeBufferParam(computeShader, kernelIndex, name, buffer); } + + /// Wraps [SetComputeConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + public void SetComputeConstantBufferParam(ComputeShader computeShader, int nameID, ComputeBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetComputeConstantBufferParam(computeShader, nameID, buffer, offset, size); } + + /// Wraps [SetComputeConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + public void SetComputeConstantBufferParam(ComputeShader computeShader, string name, ComputeBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetComputeConstantBufferParam(computeShader, name, buffer, offset, size); } + + /// Wraps [SetComputeConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + public void SetComputeConstantBufferParam(ComputeShader computeShader, int nameID, GraphicsBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetComputeConstantBufferParam(computeShader, nameID, buffer, offset, size); } + + /// Wraps [SetComputeConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + public void SetComputeConstantBufferParam(ComputeShader computeShader, string name, GraphicsBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetComputeConstantBufferParam(computeShader, name, buffer, offset, size); } + + /// Wraps [SetComputeParamsFromMaterial](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeParamsFromMaterial.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeParamsFromMaterial.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeParamsFromMaterial.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeParamsFromMaterial.html) + public void SetComputeParamsFromMaterial(ComputeShader computeShader, int kernelIndex, Material material) { m_WrappedCommandBuffer.SetComputeParamsFromMaterial(computeShader, kernelIndex, material); } + + /// Wraps [DispatchCompute](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + public void DispatchCompute(ComputeShader computeShader, int kernelIndex, int threadGroupsX, int threadGroupsY, int threadGroupsZ) { m_WrappedCommandBuffer.DispatchCompute(computeShader, kernelIndex, threadGroupsX, threadGroupsY, threadGroupsZ); } + + /// Wraps [DispatchCompute](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + public void DispatchCompute(ComputeShader computeShader, int kernelIndex, ComputeBuffer indirectBuffer, uint argsOffset) { m_WrappedCommandBuffer.DispatchCompute(computeShader, kernelIndex, indirectBuffer, argsOffset); } + + /// Wraps [DispatchCompute](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + public void DispatchCompute(ComputeShader computeShader, int kernelIndex, GraphicsBuffer indirectBuffer, uint argsOffset) { m_WrappedCommandBuffer.DispatchCompute(computeShader, kernelIndex, indirectBuffer, argsOffset); } + + /// Wraps [BuildRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + public void BuildRayTracingAccelerationStructure(RayTracingAccelerationStructure accelerationStructure) { m_WrappedCommandBuffer.BuildRayTracingAccelerationStructure(accelerationStructure); } + + /// Wraps [BuildRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + public void BuildRayTracingAccelerationStructure(RayTracingAccelerationStructure accelerationStructure, Vector3 relativeOrigin) { m_WrappedCommandBuffer.BuildRayTracingAccelerationStructure(accelerationStructure, relativeOrigin); } + + /// Wraps [BuildRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + public void BuildRayTracingAccelerationStructure(RayTracingAccelerationStructure accelerationStructure, BuildSettings buildSettings) { m_WrappedCommandBuffer.BuildRayTracingAccelerationStructure(accelerationStructure, buildSettings); } + + /// Wraps [SetRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + public void SetRayTracingAccelerationStructure(RayTracingShader rayTracingShader, string name, RayTracingAccelerationStructure rayTracingAccelerationStructure) { m_WrappedCommandBuffer.SetRayTracingAccelerationStructure(rayTracingShader, name, rayTracingAccelerationStructure); } + + /// Wraps [SetRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + public void SetRayTracingAccelerationStructure(RayTracingShader rayTracingShader, int nameID, RayTracingAccelerationStructure rayTracingAccelerationStructure) { m_WrappedCommandBuffer.SetRayTracingAccelerationStructure(rayTracingShader, nameID, rayTracingAccelerationStructure); } + + /// Wraps [SetRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + public void SetRayTracingAccelerationStructure(ComputeShader computeShader, int kernelIndex, string name, RayTracingAccelerationStructure rayTracingAccelerationStructure) { m_WrappedCommandBuffer.SetRayTracingAccelerationStructure(computeShader, kernelIndex, name, rayTracingAccelerationStructure); } + + /// Wraps [SetRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + public void SetRayTracingAccelerationStructure(ComputeShader computeShader, int kernelIndex, int nameID, RayTracingAccelerationStructure rayTracingAccelerationStructure) { m_WrappedCommandBuffer.SetRayTracingAccelerationStructure(computeShader, kernelIndex, nameID, rayTracingAccelerationStructure); } + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, string name, ComputeBuffer buffer) { m_WrappedCommandBuffer.SetRayTracingBufferParam(rayTracingShader, name, buffer); } + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, int nameID, ComputeBuffer buffer) { m_WrappedCommandBuffer.SetRayTracingBufferParam(rayTracingShader, nameID, buffer); } + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, string name, GraphicsBuffer buffer) { m_WrappedCommandBuffer.SetRayTracingBufferParam(rayTracingShader, name, buffer); } + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, int nameID, GraphicsBuffer buffer) { m_WrappedCommandBuffer.SetRayTracingBufferParam(rayTracingShader, nameID, buffer); } + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, string name, GraphicsBufferHandle bufferHandle) { m_WrappedCommandBuffer.SetRayTracingBufferParam(rayTracingShader, name, bufferHandle); } + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, int nameID, GraphicsBufferHandle bufferHandle) { m_WrappedCommandBuffer.SetRayTracingBufferParam(rayTracingShader, nameID, bufferHandle); } + + /// Wraps [SetRayTracingConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + public void SetRayTracingConstantBufferParam(RayTracingShader rayTracingShader, int nameID, ComputeBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetRayTracingConstantBufferParam(rayTracingShader, nameID, buffer, offset, size); } + + /// Wraps [SetRayTracingConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + public void SetRayTracingConstantBufferParam(RayTracingShader rayTracingShader, string name, ComputeBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetRayTracingConstantBufferParam(rayTracingShader, name, buffer, offset, size); } + + /// Wraps [SetRayTracingConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + public void SetRayTracingConstantBufferParam(RayTracingShader rayTracingShader, int nameID, GraphicsBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetRayTracingConstantBufferParam(rayTracingShader, nameID, buffer, offset, size); } + + /// Wraps [SetRayTracingConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + public void SetRayTracingConstantBufferParam(RayTracingShader rayTracingShader, string name, GraphicsBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetRayTracingConstantBufferParam(rayTracingShader, name, buffer, offset, size); } + + /// Wraps [SetRayTracingTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + public void SetRayTracingTextureParam(RayTracingShader rayTracingShader, string name, TextureHandle rt) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetRayTracingTextureParam(rayTracingShader, name, rt); } + + /// Wraps [SetRayTracingTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + public void SetRayTracingTextureParam(RayTracingShader rayTracingShader, int nameID, TextureHandle rt) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetRayTracingTextureParam(rayTracingShader, nameID, rt); } + + /// Wraps [SetRayTracingFloatParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + public void SetRayTracingFloatParam(RayTracingShader rayTracingShader, string name, float val) { m_WrappedCommandBuffer.SetRayTracingFloatParam(rayTracingShader, name, val); } + + /// Wraps [SetRayTracingFloatParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + public void SetRayTracingFloatParam(RayTracingShader rayTracingShader, int nameID, float val) { m_WrappedCommandBuffer.SetRayTracingFloatParam(rayTracingShader, nameID, val); } + + /// Wraps [SetRayTracingFloatParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + public void SetRayTracingFloatParams(RayTracingShader rayTracingShader, string name, params float[] values) { m_WrappedCommandBuffer.SetRayTracingFloatParams(rayTracingShader, name, values); } + + /// Wraps [SetRayTracingFloatParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + public void SetRayTracingFloatParams(RayTracingShader rayTracingShader, int nameID, params float[] values) { m_WrappedCommandBuffer.SetRayTracingFloatParams(rayTracingShader, nameID, values); } + + /// Wraps [SetRayTracingIntParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + public void SetRayTracingIntParam(RayTracingShader rayTracingShader, string name, int val) { m_WrappedCommandBuffer.SetRayTracingIntParam(rayTracingShader, name, val); } + + /// Wraps [SetRayTracingIntParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + public void SetRayTracingIntParam(RayTracingShader rayTracingShader, int nameID, int val) { m_WrappedCommandBuffer.SetRayTracingIntParam(rayTracingShader, nameID, val); } + + /// Wraps [SetRayTracingIntParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + public void SetRayTracingIntParams(RayTracingShader rayTracingShader, string name, params int[] values) { m_WrappedCommandBuffer.SetRayTracingIntParams(rayTracingShader, name, values); } + + /// Wraps [SetRayTracingIntParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + public void SetRayTracingIntParams(RayTracingShader rayTracingShader, int nameID, params int[] values) { m_WrappedCommandBuffer.SetRayTracingIntParams(rayTracingShader, nameID, values); } + + /// Wraps [SetRayTracingVectorParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + public void SetRayTracingVectorParam(RayTracingShader rayTracingShader, string name, Vector4 val) { m_WrappedCommandBuffer.SetRayTracingVectorParam(rayTracingShader, name, val); } + + /// Wraps [SetRayTracingVectorParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + public void SetRayTracingVectorParam(RayTracingShader rayTracingShader, int nameID, Vector4 val) { m_WrappedCommandBuffer.SetRayTracingVectorParam(rayTracingShader, nameID, val); } + + /// Wraps [SetRayTracingVectorArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + public void SetRayTracingVectorArrayParam(RayTracingShader rayTracingShader, string name, params Vector4[] values) { m_WrappedCommandBuffer.SetRayTracingVectorArrayParam(rayTracingShader, name, values); } + + /// Wraps [SetRayTracingVectorArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + public void SetRayTracingVectorArrayParam(RayTracingShader rayTracingShader, int nameID, params Vector4[] values) { m_WrappedCommandBuffer.SetRayTracingVectorArrayParam(rayTracingShader, nameID, values); } + + /// Wraps [SetRayTracingMatrixParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + public void SetRayTracingMatrixParam(RayTracingShader rayTracingShader, string name, Matrix4x4 val) { m_WrappedCommandBuffer.SetRayTracingMatrixParam(rayTracingShader, name, val); } + + /// Wraps [SetRayTracingMatrixParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + public void SetRayTracingMatrixParam(RayTracingShader rayTracingShader, int nameID, Matrix4x4 val) { m_WrappedCommandBuffer.SetRayTracingMatrixParam(rayTracingShader, nameID, val); } + + /// Wraps [SetRayTracingMatrixArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + public void SetRayTracingMatrixArrayParam(RayTracingShader rayTracingShader, string name, params Matrix4x4[] values) { m_WrappedCommandBuffer.SetRayTracingMatrixArrayParam(rayTracingShader, name, values); } + + /// Wraps [SetRayTracingMatrixArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + public void SetRayTracingMatrixArrayParam(RayTracingShader rayTracingShader, int nameID, params Matrix4x4[] values) { m_WrappedCommandBuffer.SetRayTracingMatrixArrayParam(rayTracingShader, nameID, values); } + + /// Wraps [DispatchRays](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + public void DispatchRays(RayTracingShader rayTracingShader, string rayGenName, uint width, uint height, uint depth, Camera camera) { m_WrappedCommandBuffer.DispatchRays(rayTracingShader, rayGenName, width, height, depth, camera); } + + /// Wraps [DispatchRays](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + public void DispatchRays(RayTracingShader rayTracingShader, string rayGenName, GraphicsBuffer argsBuffer, uint argsOffset, Camera camera) { m_WrappedCommandBuffer.DispatchRays(rayTracingShader, rayGenName, argsBuffer, argsOffset, camera); } + + /// Wraps [CopyCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + public void CopyCounterValue(ComputeBuffer src, ComputeBuffer dst, uint dstOffsetBytes) { m_WrappedCommandBuffer.CopyCounterValue(src, dst, dstOffsetBytes); } + + /// Wraps [CopyCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + public void CopyCounterValue(GraphicsBuffer src, ComputeBuffer dst, uint dstOffsetBytes) { m_WrappedCommandBuffer.CopyCounterValue(src, dst, dstOffsetBytes); } + + /// Wraps [CopyCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + public void CopyCounterValue(ComputeBuffer src, GraphicsBuffer dst, uint dstOffsetBytes) { m_WrappedCommandBuffer.CopyCounterValue(src, dst, dstOffsetBytes); } + + /// Wraps [CopyCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + public void CopyCounterValue(GraphicsBuffer src, GraphicsBuffer dst, uint dstOffsetBytes) { m_WrappedCommandBuffer.CopyCounterValue(src, dst, dstOffsetBytes); } + + /// Wraps [SetGlobalFloat](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + public void SetGlobalFloat(string name, float value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloat(name, value); } + + /// Wraps [SetGlobalInt](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + public void SetGlobalInt(string name, int value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalInt(name, value); } + + /// Wraps [SetGlobalInteger](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + public void SetGlobalInteger(string name, int value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalInteger(name, value); } + + /// Wraps [SetGlobalVector](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + public void SetGlobalVector(string name, Vector4 value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVector(name, value); } + + /// Wraps [SetGlobalColor](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + public void SetGlobalColor(string name, Color value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalColor(name, value); } + + /// Wraps [SetGlobalMatrix](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + public void SetGlobalMatrix(string name, Matrix4x4 value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrix(name, value); } + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(string propertyName, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloatArray(propertyName, values); } + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(int nameID, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloatArray(nameID, values); } + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(string propertyName, float[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloatArray(propertyName, values); } + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(string propertyName, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVectorArray(propertyName, values); } + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(int nameID, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVectorArray(nameID, values); } + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(string propertyName, Vector4[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVectorArray(propertyName, values); } + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(string propertyName, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrixArray(propertyName, values); } + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(int nameID, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrixArray(nameID, values); } + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(string propertyName, Matrix4x4[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrixArray(propertyName, values); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(string name, TextureHandle value) { ThrowIfGlobalStateNotAllowed(); ValidateTextureHandle(value); m_WrappedCommandBuffer.SetGlobalTexture(name, value); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(int nameID, TextureHandle value) { ThrowIfGlobalStateNotAllowed(); ValidateTextureHandle(value); m_WrappedCommandBuffer.SetGlobalTexture(nameID, value); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(string name, TextureHandle value, RenderTextureSubElement element) { ThrowIfGlobalStateNotAllowed(); ValidateTextureHandle(value); m_WrappedCommandBuffer.SetGlobalTexture(name, value, element); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(int nameID, TextureHandle value, RenderTextureSubElement element) { ThrowIfGlobalStateNotAllowed(); ValidateTextureHandle(value); m_WrappedCommandBuffer.SetGlobalTexture(nameID, value, element); } + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(string name, ComputeBuffer value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalBuffer(name, value); } + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(int nameID, ComputeBuffer value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalBuffer(nameID, value); } + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(string name, GraphicsBuffer value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalBuffer(name, value); } + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(int nameID, GraphicsBuffer value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalBuffer(nameID, value); } + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(ComputeBuffer buffer, int nameID, int offset, int size) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalConstantBuffer(buffer, nameID, offset, size); } + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(ComputeBuffer buffer, string name, int offset, int size) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalConstantBuffer(buffer, name, offset, size); } + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(GraphicsBuffer buffer, int nameID, int offset, int size) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalConstantBuffer(buffer, nameID, offset, size); } + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(GraphicsBuffer buffer, string name, int offset, int size) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalConstantBuffer(buffer, name, offset, size); } + + /// Wraps [SetShadowSamplingMode](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadowSamplingMode.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadowSamplingMode.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadowSamplingMode.html) + public void SetShadowSamplingMode(RenderTargetIdentifier shadowmap, ShadowSamplingMode mode) { m_WrappedCommandBuffer.SetShadowSamplingMode(shadowmap, mode); } + + /// Wraps [SetSinglePassStereo](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetSinglePassStereo.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetSinglePassStereo.html) + public void SetSinglePassStereo(SinglePassStereoMode mode) { m_WrappedCommandBuffer.SetSinglePassStereo(mode); } + + /// Wraps [IssuePluginEvent](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEvent.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEvent.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEvent.html) + public void IssuePluginEvent(IntPtr callback, int eventID) { m_WrappedCommandBuffer.IssuePluginEvent(callback, eventID); } + + /// Wraps [IssuePluginEventAndData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) + public void IssuePluginEventAndData(IntPtr callback, int eventID, IntPtr data) { m_WrappedCommandBuffer.IssuePluginEventAndData(callback, eventID, data); } + + /// Wraps [IssuePluginCustomBlit](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + public void IssuePluginCustomBlit(IntPtr callback, uint command, RenderTargetIdentifier source, RenderTargetIdentifier dest, uint commandParam, uint commandFlags) { m_WrappedCommandBuffer.IssuePluginCustomBlit(callback, command, source, dest, commandParam, commandFlags); } + + /// Wraps [IssuePluginCustomTextureUpdateV2](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) + public void IssuePluginCustomTextureUpdateV2(IntPtr callback, Texture targetTexture, uint userData) { m_WrappedCommandBuffer.IssuePluginCustomTextureUpdateV2(callback, targetTexture, userData); } + + } +} diff --git a/HelixJump.slnx b/HelixJump.slnx new file mode 100644 index 0000000..3244c4f --- /dev/null +++ b/HelixJump.slnx @@ -0,0 +1,5 @@ + + + + + diff --git a/IBaseCommandBuffer.cs b/IBaseCommandBuffer.cs new file mode 100644 index 0000000..dfad553 --- /dev/null +++ b/IBaseCommandBuffer.cs @@ -0,0 +1,406 @@ + +using System; +using System.Collections.Generic; +using Unity.Collections; +using UnityEngine.Profiling; +using Unity.Profiling; +using UnityEngine.Rendering.RenderGraphModule; +using UnityEngine.Experimental.Rendering; + +// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +// +// This file is automatically generated by reflection on the UnityEngine.Rendering.CommandBuffer type. +// If you changed the command buffer and want to expose the changes here please open and SRP project +// "Edit/Rendering/Generate Core CommandBuffers" menu option. +// This will generate the new command buffer C# files in the project root. +// +// Note that while automated,this doesn't mean you won't have to think. Please consider any new methods on the command +// buffer if they are safe to be executed on the async compute queue or not, if they can be executed inside a +// native render pass or not,... and add the function to the appropriate lists in CommandBufferGenerator.cs in the +// com.unity.render-pipelines.core\Editor\CommandBuffers\CommandBufferGenerator\CommandBufferGenerator.cs. +// If you are unsure please ask the RenderGraph package owners for advise. +// +// Once generated, review the generated file and move the approved files into: +// \Packages\com.unity.render-pipelines.core\Runtime\CommandBuffers\ +// +// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +namespace UnityEngine.Rendering +{ + + /// + /// This interface declares functions shared by several command buffer types. + /// + public interface IBaseCommandBuffer + { + + /// Wraps [SetInvertCulling](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInvertCulling.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInvertCulling.html) + public void SetInvertCulling(bool invertCulling) ; + + /// Wraps [SetViewport](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewport.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewport.html) + public void SetViewport(Rect pixelRect) ; + + /// Wraps [EnableScissorRect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableScissorRect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableScissorRect.html) + public void EnableScissorRect(Rect scissor) ; + + /// Wraps [DisableScissorRect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableScissorRect.html) on a CommandBuffer. + + public void DisableScissorRect() ; + + /// Wraps [SetGlobalFloat](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + public void SetGlobalFloat(int nameID, float value) ; + + /// Wraps [SetGlobalInt](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + public void SetGlobalInt(int nameID, int value) ; + + /// Wraps [SetGlobalInteger](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + public void SetGlobalInteger(int nameID, int value) ; + + /// Wraps [SetGlobalVector](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + public void SetGlobalVector(int nameID, Vector4 value) ; + + /// Wraps [SetGlobalColor](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + public void SetGlobalColor(int nameID, Color value) ; + + /// Wraps [SetGlobalMatrix](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + public void SetGlobalMatrix(int nameID, Matrix4x4 value) ; + + /// Wraps [EnableShaderKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableShaderKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableShaderKeyword.html) + public void EnableShaderKeyword(string keyword) ; + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(in GlobalKeyword keyword) ; + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(Material material, in LocalKeyword keyword) ; + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(ComputeShader computeShader, in LocalKeyword keyword) ; + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(RayTracingShader rayTracingShader, in LocalKeyword keyword) ; + + /// Wraps [DisableShaderKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableShaderKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableShaderKeyword.html) + public void DisableShaderKeyword(string keyword) ; + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(in GlobalKeyword keyword) ; + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(Material material, in LocalKeyword keyword) ; + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(ComputeShader computeShader, in LocalKeyword keyword) ; + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(RayTracingShader rayTracingShader, in LocalKeyword keyword) ; + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(in GlobalKeyword keyword, bool value) ; + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(Material material, in LocalKeyword keyword, bool value) ; + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(ComputeShader computeShader, in LocalKeyword keyword, bool value) ; + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(RayTracingShader rayTracingShader, in LocalKeyword keyword, bool value) ; + + /// Wraps [SetViewProjectionMatrices](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewProjectionMatrices.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewProjectionMatrices.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewProjectionMatrices.html) + public void SetViewProjectionMatrices(Matrix4x4 view, Matrix4x4 proj) ; + + /// Wraps [SetGlobalDepthBias](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalDepthBias.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalDepthBias.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalDepthBias.html) + public void SetGlobalDepthBias(float bias, float slopeBias) ; + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(int nameID, float[] values) ; + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(int nameID, Vector4[] values) ; + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(int nameID, Matrix4x4[] values) ; + + /// Wraps [SetLateLatchProjectionMatrices](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetLateLatchProjectionMatrices.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetLateLatchProjectionMatrices.html) + public void SetLateLatchProjectionMatrices(Matrix4x4[] projectionMat) ; + + /// Wraps [MarkLateLatchMatrixShaderPropertyID](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.MarkLateLatchMatrixShaderPropertyID.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.MarkLateLatchMatrixShaderPropertyID.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.MarkLateLatchMatrixShaderPropertyID.html) + public void MarkLateLatchMatrixShaderPropertyID(CameraLateLatchMatrixType matrixPropertyType, int shaderPropertyID) ; + + /// Wraps [UnmarkLateLatchMatrix](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.UnmarkLateLatchMatrix.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.UnmarkLateLatchMatrix.html) + public void UnmarkLateLatchMatrix(CameraLateLatchMatrixType matrixPropertyType) ; + + /// Wraps [BeginSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) + public void BeginSample(string name) ; + + /// Wraps [EndSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) + public void EndSample(string name) ; + + /// Wraps [BeginSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) + public void BeginSample(CustomSampler sampler) ; + + /// Wraps [EndSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) + public void EndSample(CustomSampler sampler) ; + + /// Wraps [BeginSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) + public void BeginSample(ProfilerMarker marker) ; + + /// Wraps [EndSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) + public void EndSample(ProfilerMarker marker) ; + + /// Wraps [IncrementUpdateCount](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IncrementUpdateCount.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IncrementUpdateCount.html) + public void IncrementUpdateCount(RenderTargetIdentifier dest) ; + + /// Wraps [SetupCameraProperties](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetupCameraProperties.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetupCameraProperties.html) + public void SetupCameraProperties(Camera camera) ; + + /// Wraps [InvokeOnRenderObjectCallbacks](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.InvokeOnRenderObjectCallbacks.html) on a CommandBuffer. + + public void InvokeOnRenderObjectCallbacks() ; + + /// Wraps [SetGlobalFloat](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + public void SetGlobalFloat(string name, float value) ; + + /// Wraps [SetGlobalInt](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + public void SetGlobalInt(string name, int value) ; + + /// Wraps [SetGlobalInteger](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + public void SetGlobalInteger(string name, int value) ; + + /// Wraps [SetGlobalVector](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + public void SetGlobalVector(string name, Vector4 value) ; + + /// Wraps [SetGlobalColor](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + public void SetGlobalColor(string name, Color value) ; + + /// Wraps [SetGlobalMatrix](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + public void SetGlobalMatrix(string name, Matrix4x4 value) ; + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(string propertyName, List values) ; + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(int nameID, List values) ; + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(string propertyName, float[] values) ; + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(string propertyName, List values) ; + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(int nameID, List values) ; + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(string propertyName, Vector4[] values) ; + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(string propertyName, List values) ; + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(int nameID, List values) ; + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(string propertyName, Matrix4x4[] values) ; + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(string name, TextureHandle value) ; + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(int nameID, TextureHandle value) ; + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(string name, TextureHandle value, RenderTextureSubElement element) ; + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(int nameID, TextureHandle value, RenderTextureSubElement element) ; + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(string name, ComputeBuffer value) ; + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(int nameID, ComputeBuffer value) ; + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(string name, GraphicsBuffer value) ; + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(int nameID, GraphicsBuffer value) ; + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(ComputeBuffer buffer, int nameID, int offset, int size) ; + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(ComputeBuffer buffer, string name, int offset, int size) ; + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(GraphicsBuffer buffer, int nameID, int offset, int size) ; + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(GraphicsBuffer buffer, string name, int offset, int size) ; + + /// Wraps [SetShadowSamplingMode](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadowSamplingMode.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadowSamplingMode.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadowSamplingMode.html) + public void SetShadowSamplingMode(RenderTargetIdentifier shadowmap, ShadowSamplingMode mode) ; + + /// Wraps [SetSinglePassStereo](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetSinglePassStereo.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetSinglePassStereo.html) + public void SetSinglePassStereo(SinglePassStereoMode mode) ; + + /// Wraps [IssuePluginEvent](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEvent.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEvent.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEvent.html) + public void IssuePluginEvent(IntPtr callback, int eventID) ; + + /// Wraps [IssuePluginEventAndData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) + public void IssuePluginEventAndData(IntPtr callback, int eventID, IntPtr data) ; + + /// Wraps [IssuePluginCustomBlit](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + public void IssuePluginCustomBlit(IntPtr callback, uint command, RenderTargetIdentifier source, RenderTargetIdentifier dest, uint commandParam, uint commandFlags) ; + + /// Wraps [IssuePluginCustomTextureUpdateV2](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) + public void IssuePluginCustomTextureUpdateV2(IntPtr callback, Texture targetTexture, uint userData) ; + + } +} diff --git a/IComputeCommandBuffer.cs b/IComputeCommandBuffer.cs new file mode 100644 index 0000000..6a9a914 --- /dev/null +++ b/IComputeCommandBuffer.cs @@ -0,0 +1,641 @@ + +using System; +using System.Collections.Generic; +using Unity.Collections; +using UnityEngine.Profiling; +using Unity.Profiling; +using UnityEngine.Rendering.RenderGraphModule; +using UnityEngine.Experimental.Rendering; + +// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +// +// This file is automatically generated by reflection on the UnityEngine.Rendering.CommandBuffer type. +// If you changed the command buffer and want to expose the changes here please open and SRP project +// "Edit/Rendering/Generate Core CommandBuffers" menu option. +// This will generate the new command buffer C# files in the project root. +// +// Note that while automated,this doesn't mean you won't have to think. Please consider any new methods on the command +// buffer if they are safe to be executed on the async compute queue or not, if they can be executed inside a +// native render pass or not,... and add the function to the appropriate lists in CommandBufferGenerator.cs in the +// com.unity.render-pipelines.core\Editor\CommandBuffers\CommandBufferGenerator\CommandBufferGenerator.cs. +// If you are unsure please ask the RenderGraph package owners for advise. +// +// Once generated, review the generated file and move the approved files into: +// \Packages\com.unity.render-pipelines.core\Runtime\CommandBuffers\ +// +// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +namespace UnityEngine.Rendering +{ + + /// + /// This interface declares functions that are specific to a compute command buffer. + /// + public interface IComputeCommandBuffer : IBaseCommandBuffer + { + + /// Wraps [SetComputeFloatParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + public void SetComputeFloatParam(ComputeShader computeShader, int nameID, float val) ; + + /// Wraps [SetComputeIntParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + public void SetComputeIntParam(ComputeShader computeShader, int nameID, int val) ; + + /// Wraps [SetComputeVectorParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + public void SetComputeVectorParam(ComputeShader computeShader, int nameID, Vector4 val) ; + + /// Wraps [SetComputeVectorArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + public void SetComputeVectorArrayParam(ComputeShader computeShader, int nameID, Vector4[] values) ; + + /// Wraps [SetComputeMatrixParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + public void SetComputeMatrixParam(ComputeShader computeShader, int nameID, Matrix4x4 val) ; + + /// Wraps [SetComputeMatrixArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + public void SetComputeMatrixArrayParam(ComputeShader computeShader, int nameID, Matrix4x4[] values) ; + + /// Wraps [SetRayTracingShaderPass](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingShaderPass.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingShaderPass.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingShaderPass.html) + public void SetRayTracingShaderPass(RayTracingShader rayTracingShader, string passName) ; + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, Array data) ; + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, List data) where T : struct; + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, NativeArray data) where T : struct; + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, Array data, int managedBufferStartIndex, int graphicsBufferStartIndex, int count) ; + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, List data, int managedBufferStartIndex, int graphicsBufferStartIndex, int count) where T : struct; + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, NativeArray data, int nativeBufferStartIndex, int graphicsBufferStartIndex, int count) where T : struct; + + /// Wraps [SetBufferCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) + public void SetBufferCounterValue(ComputeBuffer buffer, uint counterValue) ; + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, Array data) ; + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, List data) where T : struct; + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, NativeArray data) where T : struct; + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, Array data, int managedBufferStartIndex, int graphicsBufferStartIndex, int count) ; + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, List data, int managedBufferStartIndex, int graphicsBufferStartIndex, int count) where T : struct; + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, NativeArray data, int nativeBufferStartIndex, int graphicsBufferStartIndex, int count) where T : struct; + + /// Wraps [SetBufferCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) + public void SetBufferCounterValue(GraphicsBuffer buffer, uint counterValue) ; + + /// Wraps [SetComputeFloatParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + public void SetComputeFloatParam(ComputeShader computeShader, string name, float val) ; + + /// Wraps [SetComputeIntParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + public void SetComputeIntParam(ComputeShader computeShader, string name, int val) ; + + /// Wraps [SetComputeVectorParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + public void SetComputeVectorParam(ComputeShader computeShader, string name, Vector4 val) ; + + /// Wraps [SetComputeVectorArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + public void SetComputeVectorArrayParam(ComputeShader computeShader, string name, Vector4[] values) ; + + /// Wraps [SetComputeMatrixParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + public void SetComputeMatrixParam(ComputeShader computeShader, string name, Matrix4x4 val) ; + + /// Wraps [SetComputeMatrixArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + public void SetComputeMatrixArrayParam(ComputeShader computeShader, string name, Matrix4x4[] values) ; + + /// Wraps [SetComputeFloatParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + public void SetComputeFloatParams(ComputeShader computeShader, string name, params float[] values) ; + + /// Wraps [SetComputeFloatParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + public void SetComputeFloatParams(ComputeShader computeShader, int nameID, params float[] values) ; + + /// Wraps [SetComputeIntParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + public void SetComputeIntParams(ComputeShader computeShader, string name, params int[] values) ; + + /// Wraps [SetComputeIntParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + public void SetComputeIntParams(ComputeShader computeShader, int nameID, params int[] values) ; + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, TextureHandle rt) ; + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, TextureHandle rt) ; + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, TextureHandle rt, int mipLevel) ; + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, TextureHandle rt, int mipLevel) ; + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, TextureHandle rt, int mipLevel, RenderTextureSubElement element) ; + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, TextureHandle rt, int mipLevel, RenderTextureSubElement element) ; + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, int nameID, ComputeBuffer buffer) ; + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, string name, ComputeBuffer buffer) ; + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, int nameID, GraphicsBufferHandle bufferHandle) ; + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, string name, GraphicsBufferHandle bufferHandle) ; + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, int nameID, GraphicsBuffer buffer) ; + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, string name, GraphicsBuffer buffer) ; + + /// Wraps [SetComputeConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + public void SetComputeConstantBufferParam(ComputeShader computeShader, int nameID, ComputeBuffer buffer, int offset, int size) ; + + /// Wraps [SetComputeConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + public void SetComputeConstantBufferParam(ComputeShader computeShader, string name, ComputeBuffer buffer, int offset, int size) ; + + /// Wraps [SetComputeConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + public void SetComputeConstantBufferParam(ComputeShader computeShader, int nameID, GraphicsBuffer buffer, int offset, int size) ; + + /// Wraps [SetComputeConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + public void SetComputeConstantBufferParam(ComputeShader computeShader, string name, GraphicsBuffer buffer, int offset, int size) ; + + /// Wraps [SetComputeParamsFromMaterial](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeParamsFromMaterial.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeParamsFromMaterial.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeParamsFromMaterial.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeParamsFromMaterial.html) + public void SetComputeParamsFromMaterial(ComputeShader computeShader, int kernelIndex, Material material) ; + + /// Wraps [DispatchCompute](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + public void DispatchCompute(ComputeShader computeShader, int kernelIndex, int threadGroupsX, int threadGroupsY, int threadGroupsZ) ; + + /// Wraps [DispatchCompute](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + public void DispatchCompute(ComputeShader computeShader, int kernelIndex, ComputeBuffer indirectBuffer, uint argsOffset) ; + + /// Wraps [DispatchCompute](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + public void DispatchCompute(ComputeShader computeShader, int kernelIndex, GraphicsBuffer indirectBuffer, uint argsOffset) ; + + /// Wraps [BuildRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + public void BuildRayTracingAccelerationStructure(RayTracingAccelerationStructure accelerationStructure) ; + + /// Wraps [BuildRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + public void BuildRayTracingAccelerationStructure(RayTracingAccelerationStructure accelerationStructure, Vector3 relativeOrigin) ; + + /// Wraps [BuildRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + public void BuildRayTracingAccelerationStructure(RayTracingAccelerationStructure accelerationStructure, BuildSettings buildSettings) ; + + /// Wraps [SetRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + public void SetRayTracingAccelerationStructure(RayTracingShader rayTracingShader, string name, RayTracingAccelerationStructure rayTracingAccelerationStructure) ; + + /// Wraps [SetRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + public void SetRayTracingAccelerationStructure(RayTracingShader rayTracingShader, int nameID, RayTracingAccelerationStructure rayTracingAccelerationStructure) ; + + /// Wraps [SetRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + public void SetRayTracingAccelerationStructure(ComputeShader computeShader, int kernelIndex, string name, RayTracingAccelerationStructure rayTracingAccelerationStructure) ; + + /// Wraps [SetRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + public void SetRayTracingAccelerationStructure(ComputeShader computeShader, int kernelIndex, int nameID, RayTracingAccelerationStructure rayTracingAccelerationStructure) ; + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, string name, ComputeBuffer buffer) ; + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, int nameID, ComputeBuffer buffer) ; + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, string name, GraphicsBuffer buffer) ; + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, int nameID, GraphicsBuffer buffer) ; + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, string name, GraphicsBufferHandle bufferHandle) ; + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, int nameID, GraphicsBufferHandle bufferHandle) ; + + /// Wraps [SetRayTracingConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + public void SetRayTracingConstantBufferParam(RayTracingShader rayTracingShader, int nameID, ComputeBuffer buffer, int offset, int size) ; + + /// Wraps [SetRayTracingConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + public void SetRayTracingConstantBufferParam(RayTracingShader rayTracingShader, string name, ComputeBuffer buffer, int offset, int size) ; + + /// Wraps [SetRayTracingConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + public void SetRayTracingConstantBufferParam(RayTracingShader rayTracingShader, int nameID, GraphicsBuffer buffer, int offset, int size) ; + + /// Wraps [SetRayTracingConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + public void SetRayTracingConstantBufferParam(RayTracingShader rayTracingShader, string name, GraphicsBuffer buffer, int offset, int size) ; + + /// Wraps [SetRayTracingTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + public void SetRayTracingTextureParam(RayTracingShader rayTracingShader, string name, TextureHandle rt) ; + + /// Wraps [SetRayTracingTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + public void SetRayTracingTextureParam(RayTracingShader rayTracingShader, int nameID, TextureHandle rt) ; + + /// Wraps [SetRayTracingFloatParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + public void SetRayTracingFloatParam(RayTracingShader rayTracingShader, string name, float val) ; + + /// Wraps [SetRayTracingFloatParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + public void SetRayTracingFloatParam(RayTracingShader rayTracingShader, int nameID, float val) ; + + /// Wraps [SetRayTracingFloatParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + public void SetRayTracingFloatParams(RayTracingShader rayTracingShader, string name, params float[] values) ; + + /// Wraps [SetRayTracingFloatParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + public void SetRayTracingFloatParams(RayTracingShader rayTracingShader, int nameID, params float[] values) ; + + /// Wraps [SetRayTracingIntParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + public void SetRayTracingIntParam(RayTracingShader rayTracingShader, string name, int val) ; + + /// Wraps [SetRayTracingIntParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + public void SetRayTracingIntParam(RayTracingShader rayTracingShader, int nameID, int val) ; + + /// Wraps [SetRayTracingIntParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + public void SetRayTracingIntParams(RayTracingShader rayTracingShader, string name, params int[] values) ; + + /// Wraps [SetRayTracingIntParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + public void SetRayTracingIntParams(RayTracingShader rayTracingShader, int nameID, params int[] values) ; + + /// Wraps [SetRayTracingVectorParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + public void SetRayTracingVectorParam(RayTracingShader rayTracingShader, string name, Vector4 val) ; + + /// Wraps [SetRayTracingVectorParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + public void SetRayTracingVectorParam(RayTracingShader rayTracingShader, int nameID, Vector4 val) ; + + /// Wraps [SetRayTracingVectorArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + public void SetRayTracingVectorArrayParam(RayTracingShader rayTracingShader, string name, params Vector4[] values) ; + + /// Wraps [SetRayTracingVectorArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + public void SetRayTracingVectorArrayParam(RayTracingShader rayTracingShader, int nameID, params Vector4[] values) ; + + /// Wraps [SetRayTracingMatrixParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + public void SetRayTracingMatrixParam(RayTracingShader rayTracingShader, string name, Matrix4x4 val) ; + + /// Wraps [SetRayTracingMatrixParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + public void SetRayTracingMatrixParam(RayTracingShader rayTracingShader, int nameID, Matrix4x4 val) ; + + /// Wraps [SetRayTracingMatrixArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + public void SetRayTracingMatrixArrayParam(RayTracingShader rayTracingShader, string name, params Matrix4x4[] values) ; + + /// Wraps [SetRayTracingMatrixArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + public void SetRayTracingMatrixArrayParam(RayTracingShader rayTracingShader, int nameID, params Matrix4x4[] values) ; + + /// Wraps [DispatchRays](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + public void DispatchRays(RayTracingShader rayTracingShader, string rayGenName, uint width, uint height, uint depth, Camera camera) ; + + /// Wraps [DispatchRays](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + public void DispatchRays(RayTracingShader rayTracingShader, string rayGenName, GraphicsBuffer argsBuffer, uint argsOffset, Camera camera) ; + + /// Wraps [CopyCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + public void CopyCounterValue(ComputeBuffer src, ComputeBuffer dst, uint dstOffsetBytes) ; + + /// Wraps [CopyCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + public void CopyCounterValue(GraphicsBuffer src, ComputeBuffer dst, uint dstOffsetBytes) ; + + /// Wraps [CopyCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + public void CopyCounterValue(ComputeBuffer src, GraphicsBuffer dst, uint dstOffsetBytes) ; + + /// Wraps [CopyCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + public void CopyCounterValue(GraphicsBuffer src, GraphicsBuffer dst, uint dstOffsetBytes) ; + + } +} diff --git a/IRasterCommandBuffer.cs b/IRasterCommandBuffer.cs new file mode 100644 index 0000000..0741ccb --- /dev/null +++ b/IRasterCommandBuffer.cs @@ -0,0 +1,424 @@ + +using System; +using System.Collections.Generic; +using Unity.Collections; +using UnityEngine.Profiling; +using Unity.Profiling; +using UnityEngine.Rendering.RenderGraphModule; +using UnityEngine.Experimental.Rendering; + +// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +// +// This file is automatically generated by reflection on the UnityEngine.Rendering.CommandBuffer type. +// If you changed the command buffer and want to expose the changes here please open and SRP project +// "Edit/Rendering/Generate Core CommandBuffers" menu option. +// This will generate the new command buffer C# files in the project root. +// +// Note that while automated,this doesn't mean you won't have to think. Please consider any new methods on the command +// buffer if they are safe to be executed on the async compute queue or not, if they can be executed inside a +// native render pass or not,... and add the function to the appropriate lists in CommandBufferGenerator.cs in the +// com.unity.render-pipelines.core\Editor\CommandBuffers\CommandBufferGenerator\CommandBufferGenerator.cs. +// If you are unsure please ask the RenderGraph package owners for advise. +// +// Once generated, review the generated file and move the approved files into: +// \Packages\com.unity.render-pipelines.core\Runtime\CommandBuffers\ +// +// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +namespace UnityEngine.Rendering +{ + + /// + /// This interface declares functions that are specific to a rasterization command buffer. + /// + public interface IRasterCommandBuffer : IBaseCommandBuffer + { + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(bool clearDepth, bool clearColor, Color backgroundColor) ; + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(bool clearDepth, bool clearColor, Color backgroundColor, float depth) ; + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(bool clearDepth, bool clearColor, Color backgroundColor, float depth, uint stencil) ; + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(RTClearFlags clearFlags, Color backgroundColor, float depth, uint stencil) ; + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(RTClearFlags clearFlags, Color[] backgroundColors, float depth, uint stencil) ; + + /// Wraps [SetInstanceMultiplier](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInstanceMultiplier.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInstanceMultiplier.html) + public void SetInstanceMultiplier(uint multiplier) ; + + /// Wraps [SetFoveatedRenderingMode](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetFoveatedRenderingMode.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetFoveatedRenderingMode.html) + public void SetFoveatedRenderingMode(FoveatedRenderingMode foveatedRenderingMode) ; + + /// Wraps [SetWireframe](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetWireframe.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetWireframe.html) + public void SetWireframe(bool enable) ; + + /// Wraps [ConfigureFoveatedRendering](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ConfigureFoveatedRendering.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ConfigureFoveatedRendering.html) + public void ConfigureFoveatedRendering(IntPtr platformData) ; + + /// Wraps [SetShadingRateFragmentSize](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateFragmentSize.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateFragmentSize.html) + public void SetShadingRateFragmentSize(ShadingRateFragmentSize shadingRateFragmentSize) ; + + /// Wraps [SetShadingRateCombiner](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateCombiner.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateCombiner.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateCombiner.html) + public void SetShadingRateCombiner(ShadingRateCombinerStage stage, ShadingRateCombiner combiner) ; + + /// Wraps [DrawMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + public void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, int submeshIndex, int shaderPass, MaterialPropertyBlock properties) ; + + /// Wraps [DrawMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + public void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, int submeshIndex, int shaderPass) ; + + /// Wraps [DrawMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + public void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, int submeshIndex) ; + + /// Wraps [DrawMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + public void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material) ; + + /// Wraps [DrawMultipleMeshes](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + public void DrawMultipleMeshes(Matrix4x4[] matrices, Mesh[] meshes, int[] subsetIndices, int count, Material material, int shaderPass, MaterialPropertyBlock properties) ; + + /// Wraps [DrawRenderer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + public void DrawRenderer(Renderer renderer, Material material, int submeshIndex, int shaderPass) ; + + /// Wraps [DrawRenderer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + public void DrawRenderer(Renderer renderer, Material material, int submeshIndex) ; + + /// Wraps [DrawRenderer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + public void DrawRenderer(Renderer renderer, Material material) ; + + /// Wraps [DrawRendererList](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRendererList.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRendererList.html) + public void DrawRendererList(RendererList rendererList) ; + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int vertexCount, int instanceCount, MaterialPropertyBlock properties) ; + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int vertexCount, int instanceCount) ; + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int vertexCount) ; + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount, int instanceCount, MaterialPropertyBlock properties) ; + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount, int instanceCount) ; + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount) ; + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) ; + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset) ; + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs) ; + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) ; + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset) ; + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs) ; + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) ; + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset) ; + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs) ; + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) ; + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset) ; + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs) ; + + /// Wraps [DrawMeshInstanced](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + public void DrawMeshInstanced(Mesh mesh, int submeshIndex, Material material, int shaderPass, Matrix4x4[] matrices, int count, MaterialPropertyBlock properties) ; + + /// Wraps [DrawMeshInstanced](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + public void DrawMeshInstanced(Mesh mesh, int submeshIndex, Material material, int shaderPass, Matrix4x4[] matrices, int count) ; + + /// Wraps [DrawMeshInstanced](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + public void DrawMeshInstanced(Mesh mesh, int submeshIndex, Material material, int shaderPass, Matrix4x4[] matrices) ; + + /// Wraps [DrawMeshInstancedProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + public void DrawMeshInstancedProcedural(Mesh mesh, int submeshIndex, Material material, int shaderPass, int count, MaterialPropertyBlock properties) ; + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, ComputeBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) ; + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, ComputeBuffer bufferWithArgs, int argsOffset) ; + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, ComputeBuffer bufferWithArgs) ; + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, GraphicsBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) ; + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, GraphicsBuffer bufferWithArgs, int argsOffset) ; + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, GraphicsBuffer bufferWithArgs) ; + + /// Wraps [DrawOcclusionMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawOcclusionMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawOcclusionMesh.html) + public void DrawOcclusionMesh(RectInt normalizedCamViewport) ; + + } +} diff --git a/IUnsafeCommandBuffer.cs b/IUnsafeCommandBuffer.cs new file mode 100644 index 0000000..79dae45 --- /dev/null +++ b/IUnsafeCommandBuffer.cs @@ -0,0 +1,489 @@ + +using System; +using System.Collections.Generic; +using Unity.Collections; +using UnityEngine.Profiling; +using Unity.Profiling; +using UnityEngine.Rendering.RenderGraphModule; +using UnityEngine.Experimental.Rendering; + +// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +// +// This file is automatically generated by reflection on the UnityEngine.Rendering.CommandBuffer type. +// If you changed the command buffer and want to expose the changes here please open and SRP project +// "Edit/Rendering/Generate Core CommandBuffers" menu option. +// This will generate the new command buffer C# files in the project root. +// +// Note that while automated,this doesn't mean you won't have to think. Please consider any new methods on the command +// buffer if they are safe to be executed on the async compute queue or not, if they can be executed inside a +// native render pass or not,... and add the function to the appropriate lists in CommandBufferGenerator.cs in the +// com.unity.render-pipelines.core\Editor\CommandBuffers\CommandBufferGenerator\CommandBufferGenerator.cs. +// If you are unsure please ask the RenderGraph package owners for advise. +// +// Once generated, review the generated file and move the approved files into: +// \Packages\com.unity.render-pipelines.core\Runtime\CommandBuffers\ +// +// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +namespace UnityEngine.Rendering +{ + + /// + /// This interface declares functions that are specific to an unsafe command buffer. + /// + public interface IUnsafeCommandBuffer : IBaseCommandBuffer, IRasterCommandBuffer, IComputeCommandBuffer + { + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(ComputeBuffer src, Action callback) ; + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(GraphicsBuffer src, Action callback) ; + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(ComputeBuffer src, int size, int offset, Action callback) ; + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(GraphicsBuffer src, int size, int offset, Action callback) ; + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, Action callback) ; + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, int mipIndex, Action callback) ; + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, int mipIndex, TextureFormat dstFormat, Action callback) ; + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, int mipIndex, GraphicsFormat dstFormat, Action callback) ; + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, Action callback) ; + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, TextureFormat dstFormat, Action callback) ; + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, GraphicsFormat dstFormat, Action callback) ; + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, ComputeBuffer src, Action callback) where T : struct; + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, ComputeBuffer src, int size, int offset, Action callback) where T : struct; + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, GraphicsBuffer src, Action callback) where T : struct; + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, GraphicsBuffer src, int size, int offset, Action callback) where T : struct; + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, Action callback) where T : struct; + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, int mipIndex, Action callback) where T : struct; + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, int mipIndex, TextureFormat dstFormat, Action callback) where T : struct; + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, int mipIndex, GraphicsFormat dstFormat, Action callback) where T : struct; + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, Action callback) where T : struct; + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, TextureFormat dstFormat, Action callback) where T : struct; + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, GraphicsFormat dstFormat, Action callback) where T : struct; + + /// Wraps [Clear](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.Clear.html) on a CommandBuffer. + + public void Clear() ; + + /// Wraps [ClearRandomWriteTargets](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRandomWriteTargets.html) on a CommandBuffer. + + public void ClearRandomWriteTargets() ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier rt) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier rt, RenderBufferLoadAction loadAction, RenderBufferStoreAction storeAction) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier rt, RenderBufferLoadAction colorLoadAction, RenderBufferStoreAction colorStoreAction, RenderBufferLoadAction depthLoadAction, RenderBufferStoreAction depthStoreAction) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier rt, int mipLevel) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier rt, int mipLevel, CubemapFace cubemapFace) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier rt, int mipLevel, CubemapFace cubemapFace, int depthSlice) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier color, RenderTargetIdentifier depth) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier color, RenderTargetIdentifier depth, int mipLevel) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier color, RenderTargetIdentifier depth, int mipLevel, CubemapFace cubemapFace) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier color, RenderTargetIdentifier depth, int mipLevel, CubemapFace cubemapFace, int depthSlice) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier color, RenderBufferLoadAction colorLoadAction, RenderBufferStoreAction colorStoreAction, RenderTargetIdentifier depth, RenderBufferLoadAction depthLoadAction, RenderBufferStoreAction depthStoreAction) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier[] colors, RenderTargetIdentifier depth) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier[] colors, RenderTargetIdentifier depth, int mipLevel, CubemapFace cubemapFace, int depthSlice) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetBinding binding, int mipLevel, CubemapFace cubemapFace, int depthSlice) ; + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetBinding binding) ; + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, RenderTargetIdentifier rt) ; + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, RenderTargetIdentifier rt) ; + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, RenderTargetIdentifier rt, int mipLevel) ; + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, RenderTargetIdentifier rt, int mipLevel) ; + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, RenderTargetIdentifier rt, int mipLevel, RenderTextureSubElement element) ; + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, RenderTargetIdentifier rt, int mipLevel, RenderTextureSubElement element) ; + + /// Wraps [SetRayTracingTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + public void SetRayTracingTextureParam(RayTracingShader rayTracingShader, string name, RenderTargetIdentifier rt) ; + + /// Wraps [SetRayTracingTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + public void SetRayTracingTextureParam(RayTracingShader rayTracingShader, int nameID, RenderTargetIdentifier rt) ; + + /// Wraps [GenerateMips](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.GenerateMips.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.GenerateMips.html) + public void GenerateMips(RenderTargetIdentifier rt) ; + + /// Wraps [GenerateMips](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.GenerateMips.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.GenerateMips.html) + public void GenerateMips(RenderTexture rt) ; + + /// Wraps [SetRandomWriteTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + public void SetRandomWriteTarget(int index, RenderTargetIdentifier rt) ; + + /// Wraps [SetRandomWriteTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + public void SetRandomWriteTarget(int index, ComputeBuffer buffer, bool preserveCounterValue) ; + + /// Wraps [SetRandomWriteTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + public void SetRandomWriteTarget(int index, ComputeBuffer buffer) ; + + /// Wraps [SetRandomWriteTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + public void SetRandomWriteTarget(int index, GraphicsBuffer buffer, bool preserveCounterValue) ; + + /// Wraps [SetRandomWriteTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + public void SetRandomWriteTarget(int index, GraphicsBuffer buffer) ; + + /// Wraps [CopyTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + public void CopyTexture(RenderTargetIdentifier src, RenderTargetIdentifier dst) ; + + /// Wraps [CopyTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + public void CopyTexture(RenderTargetIdentifier src, int srcElement, RenderTargetIdentifier dst, int dstElement) ; + + /// Wraps [CopyTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + public void CopyTexture(RenderTargetIdentifier src, int srcElement, int srcMip, RenderTargetIdentifier dst, int dstElement, int dstMip) ; + + /// Wraps [CopyTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + public void CopyTexture(RenderTargetIdentifier src, int srcElement, int srcMip, int srcX, int srcY, int srcWidth, int srcHeight, RenderTargetIdentifier dst, int dstElement, int dstMip, int dstX, int dstY) ; + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(string name, RenderTargetIdentifier value) ; + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(int nameID, RenderTargetIdentifier value) ; + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(string name, RenderTargetIdentifier value, RenderTextureSubElement element) ; + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(int nameID, RenderTargetIdentifier value, RenderTextureSubElement element) ; + + } +} diff --git a/Packages/com.merry-yellow.code-assist/CHANGELOG.md b/Packages/com.merry-yellow.code-assist/CHANGELOG.md new file mode 100644 index 0000000..60c1ac7 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/CHANGELOG.md @@ -0,0 +1,304 @@ +List of new features, bug fixes and improvements + +# Version 1.4.19 +* AGENTS.md support for agentic AI, copilot-instructions.md support is deprecated +* Visual Studio 2026 compatibility +* Bugfix for completions and inline visuals for sorting layer related members +* Can unspecify max_tokens,temperature and top_p in the gpt request options +* Gpt libraries and models are updated + +# Version 1.4.18 +* New code completions: Material/Shader +* New inline visuals: Material/Shader +* Bugfix for inline text visuals when document is edited +* Bugfix for completions for constructor method arguments +* Hotfix for InputManager data fetching with custom tags +* Gpt models are updated + +# Version 1.4.17 +* Hotfix for Unity compile error + +# Version 1.4.16 +* New code completions: RenderingLayerMask (Unity 6 and newer only) +* New inline visuals: RenderingLayerMask (Unity 6 and newer only), and LayerMask +* Hotfix for Unity editor freezes +* Hotfix for inline visuals not showing properly when changing document in Visual Studio +* Category SortingLayer removed, its items are now under category Layer +* Minor fix for output window in Visual Studio +* Gpt libraries and models are updated + +# Version 1.4.15 +* Hotfix for code completion for attributes + +# Version 1.4.14 +* New code completions: Attributes and preprocessor directives (#if, #elif) +* New gpt feature: Add mode, gpt can add new files to the project +* New gpt feature: For CodeLens, follow-up question and custom prompt +* Gpt responses are logged to Visual Studio output window + +# Version 1.4.13 +* Hotfix for gpt requests of OpenAI-API-Compatible platforms + +# Version 1.4.12 +* Additional properties options added for gpt requests +* Version number mistype fix for Unity asset package + +# Version 1.4.11 +* Hotfix for gpt options page +* Fix for applying transformers for newer versions of Visual Studio +* Arm64 architecture support + +# Version 1.4.10 +* Animations added to context aware instructions +* Hotfix for context aware integrations (for GitHub Copilot) + +# Version 1.4.9 +* Hotfix for gpt options page + +# Version 1.4.8 +* Version bump for sister Visual Studio extensions + +# Version 1.4.7 +* New gpt feature: Integration into GitHub Copilot. Can now feed GitHub Copilot with project/scene/game-object details. +* Auto updater for itch.io builds + +# Version 1.4.6 +* Updated binaries with new build parameters + +# Version 1.4.5 +* Version skipped by mistake ^-^ + +# Version 1.4.4 +* Hotfix for Unity package compile error + +# Version 1.4.3 +* New gpt provider: OpenAI API Compatible, for web/cloud services that supports OpenAI SDK standards + +# Version 1.4.2 +* Bugfix for formatting and title of logging +* Bugfix for CodeLens2Gpt when closing document + +# Version 1.4.1 +* New gpt provider: Ollama, can use LLMs from local machine or private network + +# Version 1.4.0 +* Gpt backend has been reimplemented for latest models and LLM trends +* New gpt provider: Anthropic (Claude), can be used as an alternative to OpenAI ChatGPT and Google Gemini +* New gpt provider: DeepSeek, can be used as an alternative to OpenAI ChatGPT and Google Gemini +* New code completions: Scene management classes can be auto completed +* New inline visuals: Scene management classes can display inline information + +# Version 1.3.12 +* Hotfix for Microsoft Marketplace manifest file + +# Version 1.3.11 +* Hotfix for Microsoft Marketplace manifest file + +# Version 1.3.10 +* Hotfix for type resolving +* Usability improvements for VSCode exporter +* More filters for expected error logs + +# Version 1.3.9 +* Hotfix for Unity sink + +# Version 1.3.8 +* Hotfix for Unity sink + +# Version 1.3.7 +* Bugfix for exporter/updater +* Bugfix for logging options + +# Version 1.3.6 +* VSCode readme updated + +# Version 1.3.5 +* JSON library switched back to Newtonsoft.JSON +* Rule xml files removed from Unity asset +* Unnessary analyzer binaries are removed from Roslyn Analyzer + +# Version 1.3.4 +* Stability improvements for network (mqttnet) +* Hotfix for JSON mapping + +# Version 1.3.3 +* Full version for VSCode is released! +* Fix for VSCode adorments when document is modified +* Binary files removed from Unity asset +* Bugfix for network (mqttnet server) +* VSCode extension stability improvements +* VSCode roslyn analyzer stability improvements + +# Version 1.3.2 +* Fixed cross-platform issues for Linux and macOS + +# Version 1.3.1 +* Updated VSCode manifest and readme + +# Version 1.3.0 +* Initial release for VSCode + +# Version 1.2.6 +* Exporting when Unity is in play mode +* Some error messages have been made more user friendly + +# Version 1.2.5 +* Released on itch.io https://meryel.itch.io/unity-code-assist +* Url changes + +# Version 1.2.4 +* Bugfix for exporter with long file paths +* Bugfix for retrieving animation and animator data + +# Version 1.2.3 +* Bugfix for exporter when overwriting files +* Bugfix for inline visuals when active game object changes + +# Version 1.2.2 +* Bugfix for exporter when facing race condition + +# Version 1.2.1 +* Typo fix for Options page +* Bugfix for retrieving animation and animator data + +# Version 1.2.0 +* New gpt provider: Google Gemini, can be used as an alternative to OpenAI ChatGPT +* New feature: CodeLens2Gpt. Can request gpt queries from the CodeLens of methods and classes +* New feature: Context aware gpt, gpt prompts are embedded with Unity, scene and object information +* New feature: Package, asset has relocated under Packages directory (from Assets directýry), along with Unity setup menu items +* New code completions: Animation and Animator classes and Invoke/Coroutine/Broadcast methods can be auto completed +* New inline visuals: Animation and Animator classes can display inline information + +# Version 1.1.12 +* External binary files have been customized and minimized +* Domain reloading time have been reduced +* Stability and usability improvements for exporter/updater +* Bugfix for Feedback window + +# Version 1.1.11 +* Gpt completion endpoint fixed for OpenAI API changes +* Bugfix for Input Manager monitor +* Bugfix for logging to Visual Studio output window +* Bugfix for About window + +# Version 1.1.10 +* Version skipped for compatibility with other assets + +# Version 1.1.9 +* Gpt support for chat and edit +* More options added for Gpt +* Overall stability improvements +* Exporter shows file locks if update/export is unsuccessful + +# Version 1.1.8 +* Bugfix for non-Unity solutions + +# Version 1.1.7 +* Bugfix for Visual Studio freeze + +# Version 1.1.6 +* Gpt support added for shader files +* Stability improvements for Unity.ScriptFinder + +# Version 1.1.5 +* Stability and usability improvements for exporter/updater +* Bugfix for Transformer Linq and Auto Input Manager +* Usability for Transformer window, disabling it if not connected to Unity +* Enhancement for completions, sorting numerical values correctly https://github.com/merryyellow/Unity-Code-Assist/issues/6 + +# Version 1.1.4 +* Auto Input Manager is now compatible with binary asset files +* Stability and usability improvements for Transformer windows + +# Version 1.1.3 +* Analyzers are working at a separate process https://github.com/merryyellow/Unity-Code-Assist/issues/20 +* Inline visuals stability and performance improvements https://github.com/merryyellow/Unity-Code-Assist/issues/22 https://github.com/merryyellow/Unity-Code-Assist/issues/24 +* Exporter/updater stability improvements https://github.com/merryyellow/Unity-Code-Assist/issues/19 https://github.com/merryyellow/Unity-Code-Assist/issues/23 +* Transformer window stability improvements https://github.com/merryyellow/Unity-Code-Assist/issues/21 +* Bugfix for Gpt busy icon positioning https://github.com/merryyellow/Unity-Code-Assist/issues/24 + +# Version 1.1.2 +* Bugfix for Yaml file parsing of InputManager + +# Version 1.1.1 +* Bugfix for error handling of binary file parsing + +# Version 1.1.0 +* New feature: Generative AI. Use OpenAI ChatGPT within comments to complete your code +* New feature: Visual Studio menus. Access Unity Code Assist from "Extensions"->"Unity Code Assist" +* New code completions: PlayerPrefs, EditorPrefs and Input classes' methods can be auto completed +* New inline visuals: PlayerPrefs, EditorPrefs and Input classes' methods can display inline information +* New code transformer: Auto Input Manager. Converts legacy input code into the new Input Manager + +# Version 1.0.0.21 +* Stability improvements for Unity ScriptFinder class + +# Version 1.0.0.20 +* Bugfix for crash at startup https://github.com/merryyellow/Unity-Code-Assist/issues/18 + +# Version 1.0.0.19 +* More logging for error tracking + +# Version 1.0.0.18 +* Overall stability improvements, nullable references enabled for codebase +* Stability improvements for communications, when reconnection occurs + +# Version 1.0.0.17 +* Stability improvements for Unity ScriptFinder class + +# Version 1.0.0.16 +* Bugfix for Visual Studio events concurrency + +# Version 1.0.0.15 +* Visual Studio events are reimplemented for both stability and performance +* Removal of possible Task deadlocks +* Usability improvements for exporter/updater +* Bugfix for exporter/updater, where prompts can appear twice +* Bugfix for Inline Texts, where const null identifier may raise exceptions https://github.com/merryyellow/Unity-Code-Assist/issues/16 +* Bugfix for communications, where tags&layers are sent for the first time + +# Version 1.0.0.14 +* Usability improvements for Visual Studio Status window where project is not a Unity project +* Bugfix for communication reinitialization, where projects are closed and opened from Visual Studio https://github.com/merryyellow/Unity-Code-Assist/issues/15 +* Bugfix for Visual Studio events' initialization https://github.com/merryyellow/Unity-Code-Assist/issues/14 + +# Version 1.0.0.13 +* Bugfix for Unity where target object is neither Component nor MonoBehaviour https://github.com/merryyellow/Unity-Code-Assist/issues/13 + +# Version 1.0.0.12 +* New Feature: Updating Unity asset from Visual Studio +* New Feature: Online error reporting of Unity errors +* Usability improvement for Visual Studio Feedback window +* Bugfix for Inline Texts where there is no class declaration https://github.com/merryyellow/Unity-Code-Assist/issues/5 +* Bugfix for Code Completion where there is no class declaration https://github.com/merryyellow/Unity-Code-Assist/issues/10 +* Bugfix for Visual Studio output window, where it may be unavailable + +# Version 1.0.0.11 +* Bugfix for Visual Studio events' initialization https://github.com/merryyellow/Unity-Code-Assist/issues/3 +* Exporter now has more logs + +# Version 1.0.0.10 +* Bugfix for Inline Texts where leading trivia is absent https://github.com/merryyellow/Unity-Code-Assist/issues/1 +* Bugfix for Visual Studio events' initialization https://github.com/merryyellow/Unity-Code-Assist/issues/2 + +# Version 1.0.0.9 +* Minor adjustments for initialization logging + +# Version 1.0.0.8 +* Online analytics added +* Bugfix for Inline Texts, Visual Studio code preview screen does not raise any exception anymore + +# Version 1.0.0.7 +* Online error tracker added + +# Version 1.0.0.6 +* Exporter is always disabled for non Unity projects + +# Version 1.0.0.5 +* Lite version released at Visual Studio Marketplace +* Exporting Unity asset from Visual Studio +* Unity package become package independent (Removed Newtonsoft.Json dependency) + +# Version 1.0.0 +* First release! +* Released on Unity Asset Store \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/CHANGELOG.md.meta b/Packages/com.merry-yellow.code-assist/CHANGELOG.md.meta new file mode 100644 index 0000000..96b626a --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/CHANGELOG.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1c541f26362738d45ad369a0458b7559 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor.meta b/Packages/com.merry-yellow.code-assist/Editor.meta new file mode 100644 index 0000000..e456e65 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 993aa36a976ea06479f732e0f69a472f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/AboutWindow.cs b/Packages/com.merry-yellow.code-assist/Editor/AboutWindow.cs new file mode 100644 index 0000000..cba22c5 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/AboutWindow.cs @@ -0,0 +1,75 @@ +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEditor; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor +{ + public class AboutWindow : EditorWindow + { + GUIStyle? styleLabel; + + public static void Display() + { + // Get existing open window or if none, make a new one: + var window = GetWindow(); + window.Show(); + + Serilog.Log.Debug("Displaying about window"); + + MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "AboutWindow_Display"); + } + + private void OnEnable() + { + //**--icon + //var icon = AssetDatabase.LoadAssetAtPath("Assets/Sprites/Gear.png"); + //titleContent = new GUIContent("Code Assist", icon); + titleContent = new GUIContent("Code Assist About"); + } + + private void OnGUI() + { + styleLabel ??= new GUIStyle(GUI.skin.label) + { + wordWrap = true, + alignment = TextAnchor.MiddleLeft, + }; + + EditorGUILayout.LabelField($"Version number: {Assister.Version}", styleLabel, GUILayout.ExpandWidth(true)); + +#if MERYEL_UCA_LITE_VERSION + EditorGUILayout.LabelField($"License type: Lite", styleLabel, GUILayout.ExpandWidth(true)); +#else // MERYEL_UCA_LITE_VERSION + EditorGUILayout.LabelField($"License type: Full", styleLabel, GUILayout.ExpandWidth(true)); +#endif // MERYEL_UCA_LITE_VERSION + + if (GUILayout.Button("Update")) + { + Updater.CheckUpdateForced(); + } + + if (GUILayout.Button("View changelog")) + { + Application.OpenURL("https://unitycodeassist.netlify.app/changelog"); + } + + if (GUILayout.Button("View third party notices")) + { + Application.OpenURL("https://unitycodeassist.netlify.app/thirdpartynotices"); + } + + } + } + +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/AboutWindow.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/AboutWindow.cs.meta new file mode 100644 index 0000000..8b02d9f --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/AboutWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b773a1d4b9561324fa0bc568c62c3770 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/AnalyzerPostProcessor.cs b/Packages/com.merry-yellow.code-assist/Editor/AnalyzerPostProcessor.cs new file mode 100644 index 0000000..d5b7332 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/AnalyzerPostProcessor.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using UnityEngine; +using UnityEditor; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor +{ + // according to documentation, https://docs.unity3d.com/2023.2/Documentation/Manual/roslyn-analyzers.html + // if analyzers are under any asmdef file, they are bound to the asmdef's scope + // to declare out analyzers globally, had to write custom AssetPostprocessor and don't use "RoslynAnalyzer" asset label + + public class AnalyzerPostProcessor : AssetPostprocessor + { + public static string OnGeneratedCSProject(string path, string content) + { + // do not add roslyn analyzers to Visual Studio projects for performance + if (Assister.GetCodeEditor(false, out var isVisualStudio, out _, out _) && isVisualStudio) + return content; + + var analyzerGroup = new StringBuilder(); + analyzerGroup.Append(NewLine); + analyzerGroup.Append(" "); + analyzerGroup.Append(NewLine); + analyzerGroup.Append(" "); + + var prefix = $"{NewLine} "; + + foreach (var analyzer in Analyzers) + { + analyzerGroup.Append(prefix); + analyzerGroup.Append(analyzer); + analyzerGroup.Append(suffix); + } + + analyzerGroup.Append(NewLine); + analyzerGroup.Append(" "); + //analyzerGroup.Append(NewLine); + + + //content = Regex.Replace(content, $"[{NewLine}]*[{NewLine}]*", $"{analyzerGroup.ToString()}$&"); + var matches = Regex.Matches(content, $"[{NewLine}]*"); + var index = matches.LastOrDefault(m => m.Success)?.Index ?? -1; + //var index = content.LastIndexOf(""); + + if (index >= 0) + content = content.Insert(index, analyzerGroup.ToString()); + + return content; + } + + private const string NewLine = "\r\n"; + + private readonly static string[] Analyzers = new string[] + { +#if MERYEL_UCA_LITE_VERSION + "Meryel.UnityCodeAssist.AnalyzersLite.dll", +#else + "Meryel.UnityCodeAssist.Analyzers.dll", +#endif + "Meryel.UnityCodeAssist.Common.dll", + "Meryel.UnityCodeAssist.Completion.dll", + "Meryel.UnityCodeAssist.CompletionInternals.dll", + "Meryel.UnityCodeAssist.Logger.dll", + "Meryel.UnityCodeAssist.MQTTnet.dll", + "Meryel.UnityCodeAssist.MQTTnet.Extensions.ManagedClient.dll", + "Meryel.UnityCodeAssist.Newtonsoft.Json.dll", + "Meryel.UnityCodeAssist.ProjectData.dll", + "Meryel.UnityCodeAssist.RoslynAnalyzerManager.dll", + "Meryel.UnityCodeAssist.Synchronizer.dll", + "Meryel.UnityCodeAssist.SynchronizerModel.dll", + "Meryel.UnityCodeAssist.VSIXLibrary.dll", + }; + } +} diff --git a/Packages/com.merry-yellow.code-assist/Editor/AnalyzerPostProcessor.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/AnalyzerPostProcessor.cs.meta new file mode 100644 index 0000000..c2430e5 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/AnalyzerPostProcessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 17f8bf228c22bbb438ef36b16a18652c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Assister.cs b/Packages/com.merry-yellow.code-assist/Editor/Assister.cs new file mode 100644 index 0000000..ea0f5be --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Assister.cs @@ -0,0 +1,609 @@ +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEditor; + +using CodeEditor = Unity.CodeEditor.CodeEditor; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor +{ + public class Assister + { + public const string Version = "1.4.19"; //do NOT modify this line, except the number value, its being used by VSCode/Typescript for version detection (in exporter.ts.getVersionOfUnitySide()) + +#if MERYEL_UCA_LITE_VERSION + public const string Title = "Code Assist Lite"; +#else + public const string Title = "Code Assist"; +#endif + + [MenuItem("Tools/" + Title + "/Status", false, 1)] + static void DisplayStatusWindow() + { + StatusWindow.Display(); + } + + + [MenuItem("Tools/" + Title + "/Synchronize", false, 2)] + static void Sync() + { + EditorCoroutines.EditorCoroutineUtility.StartCoroutine(SyncAux(), MQTTnetInitializer.Publisher); + + //MQTTnetInitializer.Publisher.SendConnect(); + //Serilog.Log.Information("Code Assist is looking for more IDEs to connect to..."); + + MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "Synchronize_MenuItem"); + } + + + [MenuItem("Tools/" + Title + "/Report error", false, 91)] + static void DisplayFeedbackWindow() + { + FeedbackWindow.Display(); + } + + [MenuItem("Tools/" + Title + "/About", false, 92)] + static void DisplayAboutWindow() + { + AboutWindow.Display(); + } + +#if MERYEL_UCA_LITE_VERSION + [MenuItem("Tools/" + Title + "/Compare versions", false, 31)] + static void CompareVersions() + { + Application.OpenURL("http://unitycodeassist.netlify.app/compare"); + + MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "CompareVersions_MenuItem"); + } + + [MenuItem("Tools/" + Title + "/Get full version", false, 32)] + static void GetFullVersion() + { + Application.OpenURL("https://unitycodeassist.netlify.app/purchase?utm_source=unity_getfull"); + + MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "FullVersion_MenuItem"); + } +#endif // MERYEL_UCA_LITE_VERSION + + [MenuItem("Tools/" + Title + "/Setup/Upgrade to full version", false, 65)] + public static void Upgrade() + { + MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "Upgrade_MenuItem"); + +#if MERYEL_UCA_LITE_VERSION + Serilog.Log.Information("Purchase Unity Code Assist from the Asset Store or itch.io first. Then download it from the package manager or itch.io"); + return; +#else + if (GetCodeEditor(true, out var isVisualStudio, out var isVisualStudioCode, out var error)) + { + if (isVisualStudio) + { + var vsixPath = CommonTools.GetInstallerPath("CodeAssist.Full.VisualStudio.Installer.vsix"); + if (System.IO.File.Exists(vsixPath)) + { + CallVisualStudioInstaller(vsixPath); + return; + } + + var zipPath = CommonTools.GetInstallerPath("CodeAssist.Full.VisualStudio.Installer.zip"); + if (System.IO.File.Exists(zipPath)) + { + var tempVsixPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "CodeAssist.Full.VisualStudio.Installer.vsix"); + System.IO.File.Copy(zipPath, tempVsixPath, true); + + CallVisualStudioInstaller(tempVsixPath); + return; + } + + Serilog.Log.Information("Installer for Visual Studio couldn't be found at {ZipPath}. Please try re-importing the asset from the package manager", zipPath); + return; + } + else if (isVisualStudioCode) + { + var vsixPath = CommonTools.GetInstallerPath("CodeAssist.Full.VSCode.Installer.vsix"); + if (System.IO.File.Exists(vsixPath)) + { + CallVSCodeInstaller(vsixPath); + return; + } + + var zipPath = CommonTools.GetInstallerPath("CodeAssist.Full.VSCode.Installer.zip"); + if (System.IO.File.Exists(zipPath)) + { + var tempVsixPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "CodeAssist.Full.VSCode.Installer.vsix"); + System.IO.File.Copy(zipPath, tempVsixPath, true); + + CallVSCodeInstaller(tempVsixPath); + return; + } + + Serilog.Log.Information("Installer for VS Code couldn't be found at {ZipPath}. Please try re-importing the asset from the package manager", zipPath); + return; + } + } + else + { + Serilog.Log.Information(error!); + } +#endif + + } + + /* + [MenuItem("Tools/" + Title + "/Setup/Update", false, 61)] + static void Update() + { + //UnityEditor.PackageManager.Client. + } + */ + + [MenuItem("Tools/" + Title + "/Setup/Re-import package", false, 62)] + static void RepairFiles() + { + if (MQTTnetInitializer.Publisher?.Clients.Any() != true) + Serilog.Log.Information("No connected IDE found. Please start up Visual Studio or VS Code first"); + + //var cleanupPath = CommonTools.GetToolPath("CleanupObsoleteFiles.bat"); + //Execute(cleanupPath); + Cleanup.DoCleanup(); + + MQTTnetInitializer.Publisher?.SendRequestUpdate("Unity", string.Empty, true); + + MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "Reimport_MenuItem"); + } + + [MenuItem("Tools/" + Title + "/Setup/Import files for .NET Standard 2.0", false, 63)] + static void ImportSystemBinariesForDotNetStandard20() + { + var solutionDirectory = CommonTools.GetProjectPath(); + var cSharpVersion = Cleanup.GetCSharpVersionFromUnityProjectVersionFile(solutionDirectory); + + if (cSharpVersion >= 9) + { + if (!EditorUtility.DisplayDialog("Import files for .NET Standard 2.0", + "This is not required for versions of Unity 2021.2 and newer. Do you still want to continue?", + "Okay", "Cancel")) + { + Serilog.Log.Debug("ImportNetStandard20_MenuItem cancelled via confirm dialog"); + return; + } + } + + if (MQTTnetInitializer.Publisher?.Clients.Any() != true) + Serilog.Log.Information("No connected IDE found. Please start up Visual Studio or VS Code first"); + + MQTTnetInitializer.Publisher?.SendRequestUpdate("SystemBinariesForDotNetStandard20", string.Empty, true); + + MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "ImportNetStandard20_MenuItem"); + } + + [MenuItem("Tools/" + Title + "/Setup/Regenerate project files", false, 64)] + public static void RegenerateProjectFiles() => RegenerateProjectFilesAux(true); + + public static void RegenerateProjectFilesAux(bool showError) + { + try + { + if (GetCodeEditor(true, out _, out _, out var error)) + { + CodeEditor.Editor.CurrentCodeEditor.SyncAll(); + } + else + { + if (showError && error != null) + Serilog.Log.Information(error); + + // other similar approaches + // https://www.reddit.com/r/Unity3D/comments/s1joc6/help_with_generating_csproj_and_sln_for_github/ + // https://discussions.unity.com/t/manually-generate-sln-and-csproj-files/648686/6 + // https://discussions.unity.com/t/how-can-i-generate-csproj-files-during-continuous-integration-builds/842493/3 + // https://github.com/Unity-Technologies/UnityCsReference/blob/f45f297f342239326ea865a57a1bb8ddf93e38c6/Editor/Mono/CodeEditor/SyncVS.cs#L22 + var t = ScriptFinder.GetType123("Microsoft.Unity.VisualStudio.Editor.Cli"); + var m = t!.GetMethod("GenerateSolution", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic); + m.Invoke(null, null); + } + } + catch (System.Exception ex) + { + Serilog.Log.Error(ex, "Couldn't invoke GenerateSolution"); + Serilog.Log.Information("Please 'Regenerate project files' manually. 'Edit'->'Preferences'->'External Tools'->'Regenerate project files'"); + } + } + + + static IEnumerator CallShell(string command, string ide) + { + Serilog.Log.Debug("calling shell with command: {Command}", command); + var task = Shell.UnityEditorShell.Execute(command); + task.OnLog += (logType, log) => + { + Serilog.Log.Debug("shell log: {Log}", log); + }; + task.OnExit += (code) => + { + Serilog.Log.Debug("shell exit: {Code}", code); + if (code == 0) + Serilog.Log.Information($"{ide} extension installed successfully. Please restart {ide}"); + else + Serilog.Log.Information($"{ide} extension installation failed. Please try manual installition at {CommonTools.GetInstallerPath(string.Empty)}"); + }; + yield return new Shell.ShellCommandYieldable(task); + } + + static void CallVisualStudioInstaller(string vsixPath) + { + EditorCoroutines.EditorCoroutineUtility.StartCoroutine(CallShell( + $"@for /f \"usebackq delims=\" %i in (`\"%ProgramFiles(x86)%\\Microsoft Visual Studio\\Installer\\vswhere.exe\" -latest -prerelease -products * -property enginePath`) do @set enginePath=%i & if exist \"%i\\VSIXInstaller.exe\" call \"%i\\VSIXInstaller.exe\" /u:VSIXLite2.6815b720-6186-48a1-a405-1387e54b41c6 & call \"%i\\VSIXInstaller.exe\" \"{vsixPath}\"", "Visual Studio"), MQTTnetInitializer.Publisher); + } + + static void CallVSCodeInstaller(string vsixPath) + { + string command; +#if UNITY_EDITOR_WIN + command = $"code --uninstall-extension MerryYellow.uca-lite-vscode & code --install-extension \"{vsixPath}\""; +#elif UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX + command = $"code --uninstall-extension MerryYellow.uca-lite-vscode ; code --install-extension \"{vsixPath}\""; +#else + Serilog.Log.Error("invalid platform at {Location}", nameof(CallVSCodeInstaller)); + command = string.Empty; +#endif + + EditorCoroutines.EditorCoroutineUtility.StartCoroutine(CallShell(command, "VS Code"), MQTTnetInitializer.Publisher); + } + + internal static string Execute(string vsixPath, bool isVisualStudio = false, bool isVSCode = false) + { + var startInfo = new System.Diagnostics.ProcessStartInfo + { + WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden, + //startInfo.FileName = GetExePath(); + FileName = vsixPath, + //startInfo.Arguments = args; + UseShellExecute = false, + RedirectStandardOutput = true + //startInfo.WorkingDirectory = workingDirectoryPath; + }; + var process = new System.Diagnostics.Process + { + StartInfo = startInfo + }; + + try + { + process.Start(); + } + catch (System.ComponentModel.Win32Exception ex) + { + Serilog.Log.Error(ex, "Error at running bat file {File}", vsixPath); + } + + string output = process.StandardOutput.ReadToEnd(); + process.WaitForExit(); + + return output; + } + + + static IEnumerator SyncAux() + { + var clientCount = MQTTnetInitializer.Publisher?.Clients.Count() ?? 0; + MQTTnetInitializer.Publisher?.SendConnect(); + Serilog.Log.Information("Code Assist is looking for more IDEs to connect to..."); + + //yield return new WaitForSeconds(3); + yield return new EditorCoroutines.EditorWaitForSeconds(3); + + var newClientCount = MQTTnetInitializer.Publisher?.Clients.Count() ?? 0; + + var dif = newClientCount - clientCount; + + if (dif <= 0) + Serilog.Log.Information("Code Assist couldn't find any new IDE to connect to."); + else + Serilog.Log.Information("Code Assist is connected to {Dif} new IDE(s).", dif); + } + +#if MERYEL_DEBUG + + [MenuItem("Code Assist/Binary2Text")] + static void Binary2Text() + { + var filePath = CommonTools.GetInputManagerFilePath(); + var hash = Input.UnityInputManager.GetMD5Hash(filePath); + var convertedPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), $"UCA_IM_{hash}.txt"); + + var b = new Input.Binary2TextExec(); + b.Exec(filePath, convertedPath, detailed: false, largeBinaryHashOnly: false, hexFloat: false); + } + + [MenuItem("Code Assist/Bump InputManager")] + static void BumpInputManager() + { + Input.InputManagerMonitor.Instance.Bump(); + } + + + [MenuItem("Code Assist/Layer Check")] + static void UpdateLayers() + { + var names = UnityEditorInternal.InternalEditorUtility.layers; + var indices = names.Select(l => LayerMask.NameToLayer(l).ToString()).ToArray(); + MQTTnetInitializer.Publisher?.SendLayers(indices, names); + + var sls = SortingLayer.layers; + var sortingNames = sls.Select(sl => sl.name).ToArray(); + var sortingIds = sls.Select(sl => sl.id.ToString()).ToArray(); + var sortingValues = sls.Select(sl => sl.value.ToString()).ToArray(); + + MQTTnetInitializer.Publisher?.SendSortingLayers(sortingNames, sortingIds, sortingValues); + + /* + for (var i = 0; i < 32; i++) + { + var name = LayerMask.LayerToName(i); + if (!string.IsNullOrEmpty(name)) + { + Debug.Log(i + ":" + name); + } + } + + if (ScriptFinder.FindGameObjectOfType("Deneme", out var go)) + MQTTnetInitializer.Publisher.SendGameObject(go); + */ + } + + [MenuItem("Code Assist/Tag Check")] + static void UpdateTags() + { + Serilog.Log.Debug("Listing tags {Count}", UnityEditorInternal.InternalEditorUtility.tags.Length); + + foreach (var tag in UnityEditorInternal.InternalEditorUtility.tags) + { + if (!string.IsNullOrEmpty(tag)) + { + Serilog.Log.Debug("{Tag}", tag); + } + } + + MQTTnetInitializer.Publisher?.SendTags(UnityEditorInternal.InternalEditorUtility.tags); + + } + + [MenuItem("Code Assist/GO Check")] + + static void TestGO() + { + + var go = GameObject.Find("Deneme"); + //var go = MonoBehaviour.FindObjectOfType().gameObject; + + MQTTnetInitializer.Publisher?.SendGameObject(go); + } + + [MenuItem("Code Assist/Undo Records Test")] + static void UndoTest() + { + var undos = new List(); + var redos = new List(); + + var type = typeof(Undo); + System.Reflection.MethodInfo dynMethod = type.GetMethod("GetRecords", + System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static); + dynMethod.Invoke(null, new object[] { undos, redos }); + + Serilog.Log.Debug("undos:{UndoCount},redos:{RedoCount}", undos.Count, redos.Count); + + var last = undos.LastOrDefault(); + if (last != null) + { + Serilog.Log.Debug("last:{Last}", last); + Serilog.Log.Debug("group:{UndoCurrentGroup},{UndoCurrentGroupName}", + Undo.GetCurrentGroup(), Undo.GetCurrentGroupName()); + } + } + + + [MenuItem("Code Assist/Undo List Test")] + static void Undo2Test() + { + + //List undoList, out int undoCursor + var undoList = new List(); + int undoCursor = int.MaxValue; + var type = typeof(Undo); + System.Reflection.MethodInfo dynMethod = type.GetMethod("GetUndoList", + System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static); + + dynMethod = type.GetMethod("GetUndoList", + System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static, + null, + new System.Type[] { typeof(List), typeof(int).MakeByRefType() }, + null); + + + dynMethod.Invoke(null, new object[] { undoList, undoCursor }); + + Serilog.Log.Debug("undo count: {Count}", undoList.Count); + + } + + [MenuItem("Code Assist/Reload Domain")] + static void ReloadDomain() + { + EditorUtility.RequestScriptReload(); + } + + /* + [MenuItem("Code Assist/TEST")] + static void TEST() + { + //if (ScriptFinder.FindGameObjectOfType("Deneme_OtherScene", out var go)) + if (ScriptFinder.FindInstanceOfType("Deneme_SO", out var go, out var so)) + { + MQTTnetInitializer.Publisher.SendScriptableObject(so); + } + + ScriptFinder.DENEMEEEE(); + + + + } + */ + +#endif // MERYEL_DEBUG + + + public static void SendTagsAndLayers() + { + Serilog.Log.Debug(nameof(SendTagsAndLayers)); + + var tags = UnityEditorInternal.InternalEditorUtility.tags; + MQTTnetInitializer.Publisher?.SendTags(tags); + + var layerNames = UnityEditorInternal.InternalEditorUtility.layers; + var layerIndices = layerNames.Select(l => LayerMask.NameToLayer(l).ToString()).ToArray(); + MQTTnetInitializer.Publisher?.SendLayers(layerNames, layerIndices); + + var sls = SortingLayer.layers; + var sortingNames = sls.Select(sl => sl.name).ToArray(); + var sortingIds = sls.Select(sl => sl.id.ToString()).ToArray(); + var sortingValues = sls.Select(sl => sl.value.ToString()).ToArray(); + MQTTnetInitializer.Publisher?.SendSortingLayers(sortingNames, sortingIds, sortingValues); + +#if UNITY_6000_0_OR_NEWER + // Version 6+ only, 2022.3 doesn't have class RenderingLayerMask, even though some renderingLayerMask fields/properties are declared + + var renderingLayerCount = RenderingLayerMask.GetRenderingLayerCount(); + var renderingLayerIndices = new string[renderingLayerCount]; + var renderingLayerNames = new string[renderingLayerCount]; + for (var i = 0; i < renderingLayerCount; i++) + { + renderingLayerIndices[i] = i.ToString(); + renderingLayerNames[i] = RenderingLayerMask.RenderingLayerToName(i); + } + MQTTnetInitializer.Publisher?.SendRenderingLayers(renderingLayerNames, renderingLayerIndices); + +#endif // UNITY_6000_0_OR_NEWER + } + + public static bool GetCodeEditor(bool checkVersion, out bool isVisualStudio, out bool isVisualStudioCode, out string? error) + { + isVisualStudio = false; + isVisualStudioCode = false; + + if (CodeEditor.Editor.CurrentCodeEditor.TryGetInstallationForPath(CodeEditor.CurrentEditorInstallation, out var installation)) + { + if (installation.Name.StartsWith("Visual Studio Code")) + isVisualStudioCode = true; + else if (installation.Name.StartsWith("Visual Studio")) + isVisualStudio = true; + + if (!isVisualStudioCode && !isVisualStudio) + { + error = $"Unsupported code editor: {installation.Name}. Unity Code Assist only supports Visual Studio and Visual Studio Code"; + return false; + } + + if (installation.Name.Contains("(internal)")) + { + error = "Code editor set but not working properly. Please try updating 'Visual Studio Editor' package"; + return false; + } + + if (!checkVersion) + { + error = null; + return true; + } + + var versionRegex = new System.Text.RegularExpressions.Regex(".*\\[([\\d\\.]+)\\]"); + var versionStr = versionRegex.Match(installation.Name).Groups.ElementAtOrDefault(1)?.Value; + + if (isVisualStudioCode && !string.IsNullOrEmpty(versionStr) && (VersionCompare(versionStr!, "1.76") < 0)) + { + error = $"Version {versionStr} of Visual Studio Code is not supported by Unity Code Assist. Please update Visual Studio Code"; + return false; + } + + if (isVisualStudio && !string.IsNullOrEmpty(versionStr) && (VersionCompare(versionStr!, "17") < 0)) + { + error = $"Version {versionStr} of Visual Studio is not supported by Unity Code Assist. Please update Visual Studio"; + return false; + } + + error = null; + return true; + } + else + { + error = "No code editor found. Please set it through 'Edit'->'Preferences'->'External Tools'->'External Script Editor'"; + return false; + } + + + } + + + //https://www.geeksforgeeks.org/compare-two-version-numbers/amp/ + public static int VersionCompare(string v1, string v2) + { + // vnum stores each numeric + + // part of version + + int vnum1 = 0, vnum2 = 0; + + // loop until both string are + // processed + + for (int i = 0, j = 0; (i < v1.Length || j < v2.Length);) + + { + // storing numeric part of + // version 1 in vnum1 + while (i < v1.Length && v1[i] != '.') + { + + vnum1 = vnum1 * 10 + (v1[i] - '0'); + + i++; + } + // storing numeric part of + + // version 2 in vnum2 + + while (j < v2.Length && v2[j] != '.') + { + vnum2 = vnum2 * 10 + (v2[j] - '0'); + j++; + } + if (vnum1 > vnum2) + return 1; + + if (vnum2 > vnum1) + return -1; + + // if equal, reset variables and + + // go for next numeric part + vnum1 = vnum2 = 0; + i++; + j++; + } + + return 0; + } + + } +} diff --git a/Packages/com.merry-yellow.code-assist/Editor/Assister.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Assister.cs.meta new file mode 100644 index 0000000..643c2ae --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Assister.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 394bf783968f6dd4ab2ca0e1e7258147 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Cleanup.cs b/Packages/com.merry-yellow.code-assist/Editor/Cleanup.cs new file mode 100644 index 0000000..854fc8b --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Cleanup.cs @@ -0,0 +1,390 @@ +using System; +using System.IO; +using System.Linq; +using System.Security.AccessControl; +using System.Security.Principal; + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor +{ + + // copied from Exporter.cs in VSIX + public static class Cleanup + { + public static bool DoCleanup() + { + var assetsPath = UnityEngine.Application.dataPath; + + var _solutionDirectory = CommonTools.GetProjectPath(); + var destination = _solutionDirectory; + var oldDestination = assetsPath; + + + var succeed = true; + try + { + Cleanup1(oldDestination); + Cleanup2(oldDestination); + Cleanup3(oldDestination, _solutionDirectory); + Cleanup4(oldDestination); + } + catch (Exception ex) + { + succeed = false; + Serilog.Log.Error(ex, "DoCleanup failed at {Destination}", destination); + } + + return succeed; + } + + + private static void DeleteFileAndItsMeta(string filePath) + { + if (File.Exists(filePath)) + { + Serilog.Log.Debug("Deleting file {File}", filePath); + //File.Delete(filePath); + DeleteFileAux(filePath); + Serilog.Log.Debug("Deleted file {File} {Exists}", filePath, File.Exists(filePath)); + } + var metaFilePath = filePath + ".meta"; + if (File.Exists(metaFilePath)) + { + Serilog.Log.Debug("Deleting meta file {File}", metaFilePath); + //File.Delete(metaFilePath); + DeleteFileAux(metaFilePath); + Serilog.Log.Debug("Deleted file {File} {Exists}", metaFilePath, File.Exists(metaFilePath)); + } + } + + private static bool IsDirectoryExistsAndEmpty(string path) + { + return Directory.Exists(path) && !Directory.EnumerateFileSystemEntries(path).Any(); + } + + private static void DeleteDirectoryAndItsMeta(string directoryPath) + { + if (IsDirectoryExistsAndEmpty(directoryPath)) + { + Serilog.Log.Debug("Deleting directory {Dir}", directoryPath); + Directory.Delete(directoryPath); + Serilog.Log.Debug("Deleted directory {Dir} {Exists}", directoryPath, IsDirectoryExistsAndEmpty(directoryPath)); + + var metaFilePath = directoryPath + ".meta"; + if (File.Exists(metaFilePath)) + { + Serilog.Log.Debug("Deleting directory meta file {File}", metaFilePath); + //File.Delete(metaFilePath); + DeleteFileAux(metaFilePath); + Serilog.Log.Debug("Deleted directory meta file {File} {Exists}", metaFilePath, File.Exists(metaFilePath)); + } + } + } + + private static void DeleteFileAux(string filePath) + { + try + { + File.Delete(filePath); + } + catch (UnauthorizedAccessException) + { + var fileDirectoryPath = Path.GetDirectoryName(filePath); + SetEveryoneAccessToDirectory(fileDirectoryPath, out _); + TakeOwnership(filePath); + File.Delete(filePath); + } + } + + + /// + /// Set Everyone Full Control permissions for selected directory + /// + /// + /// + static bool SetEveryoneAccessToDirectory(string dirName, out string _lastError) + { + + try + { + // Make sure directory exists + if (Directory.Exists(dirName) == false) + throw new Exception(string.Format("Directory {0} does not exist, so permissions cannot be set.", dirName)); + + // Get directory access info + DirectoryInfo dinfo = new DirectoryInfo(dirName); + DirectorySecurity dSecurity = dinfo.GetAccessControl(); + + // Add the FileSystemAccessRule to the security settings. + dSecurity.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow)); + + // Set the access control + dinfo.SetAccessControl(dSecurity); + + _lastError = String.Format("Everyone FullControl Permissions were set for directory {0}", dirName); + + return true; + + } + catch (Exception ex) + { + _lastError = ex.Message; + return false; + } + + + } + + /// + /// + /// + /// + /// + /// + /// + /// + /// 7 if C# 7.3 or lower, + /// 8 if C# 8.0 (.netstandard2.0), + /// 9 if C# 9.0 (.netstandard2.1), + /// -1 if error + /// + public static int GetCSharpVersionFromUnityProjectVersionFile(string? solutionDirectory) + { + if (string.IsNullOrEmpty(solutionDirectory)) + return -1; + + var projectVersionFilePath = System.IO.Path.Combine(solutionDirectory, "ProjectSettings/ProjectVersion.txt"); + if (!System.IO.File.Exists(projectVersionFilePath)) + return -1; + + + string? version = null; + string[]? readText = null; + try + { + readText = System.IO.File.ReadAllLines(projectVersionFilePath); + // format is m_EditorVersion: 2018.2.0b7 + string[] versionText = readText[0].Split(' '); + version = versionText[1]; + } + catch (Exception ex) + { + Serilog.Log.Error(ex, "Project version file parsing error {FirstLine}", readText?.FirstOrDefault()); + return -1; + } + + if (version == null) + { + Serilog.Log.Error("Parsed project version is null"); + return -1; + } + + // see my personal notes for Unity version X C# version table + // which is at OneNote->ShinSekai->CEPostRelease->UnityCompilerC#VersionTable + + if (version.StartsWith("5.") || version.StartsWith("2017.") || + version.StartsWith("2018.") || version.StartsWith("2019.") || version.StartsWith("2020.1.")) + return 7; + + if (version.StartsWith("2020.") || version.StartsWith("2021.1.")) + return 8; + + if (version.StartsWith("2021.") || version.StartsWith("2022.") || + version.StartsWith("2023.") || version.StartsWith("6000.")) + return 9; + + Serilog.Log.Error("Parsed project version is unknown {Version}", version); + return -1; + } + + private static void TakeOwnership(string filename) + { + // Remove read-only attribute + File.SetAttributes(filename, File.GetAttributes(filename) & ~FileAttributes.ReadOnly); + + FileSecurity security = new FileSecurity(); + + SecurityIdentifier sid = WindowsIdentity.GetCurrent().User; + security.SetOwner(sid); + security.SetAccessRule(new FileSystemAccessRule(sid, FileSystemRights.FullControl, AccessControlType.Allow)); + + File.SetAccessControl(filename, security); + } + + private static void Cleanup1(string destination) + { + // prior to version UCA.v.1.1.9, syncronizerModel and yamlDotNet dll files were located at ProjectPath/Assets/Plugins/CodeAssist/Editor/ExternalReferences/Release/netstandard2.0 + // with version UCA.v.1.1.9 and newer versions, they are located at ProjectPath/Assets/Plugins/CodeAssist/Editor/ExternalReferences + // delete ProjectPath/Assets/Plugins/CodeAssist/Editor/ExternalReferences/Release + var oldBinariesDirectory = Path.Combine(destination, "Plugins/CodeAssist/Editor/ExternalReferences/Release/netstandard2.0"); + if (Directory.Exists(oldBinariesDirectory)) + { + // dont just delete the directory for security reasons, instead delete binary files one by one + + Serilog.Log.Debug("Old binaries directory exists at {Location}", oldBinariesDirectory); + + var files = new string[] + { + "UnityCodeAssistSynchronizerModel.deps.json", + "UnityCodeAssistSynchronizerModel.dll", + "UnityCodeAssistSynchronizerModel.pdb", + "UnityCodeAssistYamlDotNet.deps.json", + "UnityCodeAssistYamlDotNet.dll", + "UnityCodeAssistYamlDotNet.pdb", + "UnityCodeAssistYamlDotNet.xml", + }; + + foreach (var file in files) + { + var filePath = Path.Combine(oldBinariesDirectory, file); + DeleteFileAndItsMeta(filePath); + } + + DeleteDirectoryAndItsMeta(oldBinariesDirectory); + } + + var oldBinariesDirectory2 = Path.Combine(destination, "Plugins/CodeAssist/Editor/ExternalReferences/Release"); + DeleteDirectoryAndItsMeta(oldBinariesDirectory2); + + + // also delete old vsix, it's now renamed as Meryel.UnityCodeAssist.VSIX.vsix + var oldVsixFilePath = Path.Combine(destination, "Plugins/CodeAssist/UnityCodeAssistVSIX.vsix"); + DeleteFileAndItsMeta(oldVsixFilePath); + } + + private static void Cleanup2(string destination) + { + // with version 1.1.12, dll files has been customized (renamed and changed their namespace) (so that they dont conflict with user's other dll files, if he tries to use them) + // delete AsyncIO.dll, and use Meryel.UnityCodeAssist.AsyncIO.dll instead + var files = new string[] + { + "AsyncIO.dll", + "NaCl.dll", + "NetMQ.dll", + "Serilog.dll", + "Serilog.Sinks.PersistentFile.dll", + }; + + var binariesDirectory = Path.Combine(destination, "Plugins/CodeAssist/Editor/ExternalReferences"); + + foreach (var file in files) + { + var filePath = Path.Combine(binariesDirectory, file); + DeleteFileAndItsMeta(filePath); + } + } + + private static void Cleanup3(string destination, string solutionDirectory) + { + // as it turns out, .netstandard2.1 does not need system binaries (for C#9.0, unity versions 2021.2 and newer) + + //var cSharpVersion = CommonVS.VSCommonTools.GetCSharpVersionFromUnityProjectVersionFile(solutionDirectory); + var cSharpVersion = GetCSharpVersionFromUnityProjectVersionFile(solutionDirectory); + if (cSharpVersion < 9) + return; + + var systemBinaryFiles = new string[] + { + "System.Buffers.dll", + "System.Memory.dll", + "System.Runtime.CompilerServices.Unsafe.dll", + "System.Threading.Tasks.Extensions.dll", + }; + + var binariesDirectory = Path.Combine(destination, "Plugins/CodeAssist/Editor/ExternalReferences"); + + foreach (var file in systemBinaryFiles) + { + var filePath = Path.Combine(binariesDirectory, file); + DeleteFileAndItsMeta(filePath); + } + + } + + private static void Cleanup4(string destination) + { + // with version 1.2, asset directory moved from Assets/Plugins/CodeAssist to Packages/com.merry-yellow.code-assist + // so remove all files from the old directory + + var directory = Path.Combine(destination, "Plugins/CodeAssist/Editor"); + + var content = new string[] + { +@"TinyJson/JsonWriter.cs", +@"TinyJson/JsonParser.cs", +@"Preferences/RegistryMonitor.cs", +@"Preferences/PreferenceStorageAccessor.cs", +@"Preferences/PreferenceMonitor.cs", +@"Preferences/PreferenceEntryHolder.cs", +@"Logger/UnitySink.cs", +@"Logger/MemorySink.cs", +@"Logger/ELogger.cs", +@"Logger/DomainHashEnricher.cs", +@"Logger/CommonTools.cs", +@"Logger/Attributes.cs", +@"Input/UnityInputManager.cs", +@"Input/Text2Yaml.cs", +@"Input/InputManagerMonitor.cs", +@"Input/Binary2TextExec.cs", +@"ExternalReferences/Meryel.UnityCodeAssist.YamlDotNet.xml", +@"ExternalReferences/Meryel.UnityCodeAssist.YamlDotNet.pdb", +@"ExternalReferences/Meryel.UnityCodeAssist.YamlDotNet.dll", +@"ExternalReferences/Meryel.UnityCodeAssist.YamlDotNet.deps.json", +@"ExternalReferences/Meryel.UnityCodeAssist.SynchronizerModel.pdb", +@"ExternalReferences/Meryel.UnityCodeAssist.SynchronizerModel.dll", +@"ExternalReferences/Meryel.UnityCodeAssist.SynchronizerModel.deps.json", +@"ExternalReferences/Meryel.UnityCodeAssist.Serilog.xml", +@"ExternalReferences/Meryel.UnityCodeAssist.Serilog.Sinks.PersistentFile.pdb", +@"ExternalReferences/Meryel.UnityCodeAssist.Serilog.Sinks.PersistentFile.dll", +@"ExternalReferences/Meryel.UnityCodeAssist.Serilog.Sinks.PersistentFile.deps.json", +@"ExternalReferences/Meryel.UnityCodeAssist.Serilog.pdb", +@"ExternalReferences/Meryel.UnityCodeAssist.Serilog.dll", +@"ExternalReferences/Meryel.UnityCodeAssist.NetMQ.xml", +@"ExternalReferences/Meryel.UnityCodeAssist.NetMQ.pdb", +@"ExternalReferences/Meryel.UnityCodeAssist.NetMQ.dll", +@"ExternalReferences/Meryel.UnityCodeAssist.NetMQ.deps.json", +@"ExternalReferences/Meryel.UnityCodeAssist.NaCl.xml", +@"ExternalReferences/Meryel.UnityCodeAssist.NaCl.pdb", +@"ExternalReferences/Meryel.UnityCodeAssist.NaCl.dll", +@"ExternalReferences/Meryel.UnityCodeAssist.AsyncIO.pdb", +@"ExternalReferences/Meryel.UnityCodeAssist.AsyncIO.dll", +@"EditorCoroutines/EditorWindowCoroutineExtension.cs", +@"EditorCoroutines/EditorWaitForSeconds.cs", +@"EditorCoroutines/EditorCoroutineUtility.cs", +@"EditorCoroutines/EditorCoroutine.cs", +@"UnityClassExtensions.cs", +@"StatusWindow.cs", +@"ScriptFinder.cs", +@"NetMQPublisher.cs", +@"NetMQInitializer.cs", +@"Monitor.cs", +@"MerryYellow.CodeAssist.Editor.asmdef", +@"MainThreadDispatcher.cs", +@"LazyInitializer.cs", +@"FeedbackWindow.cs", +@"Assister.cs", +@"AboutWindow.cs", +//@"TinyJson", +//@"Preferences", +//@"Logger", +//@"Input", +//@"ExternalReferences", +//@"EditorCoroutines", + }; + + foreach (var c in content) + { + var path = Path.Combine(directory, c); + DeleteFileAndItsMeta(path); + } + } + + } +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/Cleanup.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Cleanup.cs.meta new file mode 100644 index 0000000..9d5dd2d --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Cleanup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f03bf638663c69e41a0cc01055bc4ad4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines.meta b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines.meta new file mode 100644 index 0000000..8e6a983 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6041f1207458f4c42bc83a84f1a7bf20 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutine.cs b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutine.cs new file mode 100644 index 0000000..adcb8f9 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutine.cs @@ -0,0 +1,157 @@ +/* + * Derived from Unity package + * https://docs.unity3d.com/Packages/com.unity.editorcoroutines@0.0/api/Unity.EditorCoroutines.Editor.html + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +//namespace Unity.EditorCoroutines.Editor +namespace Meryel.UnityCodeAssist.Editor.EditorCoroutines +{ + /// + /// A handle to an EditorCoroutine, can be passed to EditorCoroutineUtility methods to control lifetime. + /// + public class EditorCoroutine + { + private struct YieldProcessor + { + enum DataType : byte + { + None = 0, + WaitForSeconds = 1, + EditorCoroutine = 2, + AsyncOP = 3, + } + struct ProcessorData + { + public DataType type; + public double targetTime; + public object current; + } + + ProcessorData data; + + public void Set(object yield) + { + if (yield == data.current) + return; + + var type = yield.GetType(); + var dataType = DataType.None; + double targetTime = -1; + + if(type == typeof(EditorWaitForSeconds)) + { + targetTime = EditorApplication.timeSinceStartup + (yield as EditorWaitForSeconds).WaitTime; + dataType = DataType.WaitForSeconds; + } + else if(type == typeof(EditorCoroutine)) + { + dataType = DataType.EditorCoroutine; + } + else if(type == typeof(AsyncOperation) || type.IsSubclassOf(typeof(AsyncOperation))) + { + dataType = DataType.AsyncOP; + } + + data = new ProcessorData { current = yield, targetTime = targetTime, type = dataType }; + } + + public bool MoveNext(IEnumerator enumerator) + { + var advance = data.type switch + { + DataType.WaitForSeconds => data.targetTime <= EditorApplication.timeSinceStartup, + DataType.EditorCoroutine => (data.current as EditorCoroutine).m_IsDone, + DataType.AsyncOP => (data.current as AsyncOperation).isDone, + _ => data.current == enumerator.Current,//a IEnumerator or a plain object was passed to the implementation + }; + if (advance) + { + data = default;// (ProcessorData); + return enumerator.MoveNext(); + } + return true; + } + } + + internal WeakReference m_Owner; + IEnumerator m_Routine; + YieldProcessor m_Processor; + + bool m_IsDone; + + internal EditorCoroutine(IEnumerator routine) + { + m_Owner = null; + m_Routine = routine; + EditorApplication.update += MoveNext; + } + + internal EditorCoroutine(IEnumerator routine, object owner) + { + m_Processor = new YieldProcessor(); + m_Owner = new WeakReference(owner); + m_Routine = routine; + EditorApplication.update += MoveNext; + } + + internal void MoveNext() + { + if (m_Owner != null && !m_Owner.IsAlive) + { + EditorApplication.update -= MoveNext; + return; + } + + bool done = ProcessIEnumeratorRecursive(m_Routine); + m_IsDone = !done; + + if (m_IsDone) + EditorApplication.update -= MoveNext; + } + + static readonly Stack kIEnumeratorProcessingStack = new Stack(32); + private bool ProcessIEnumeratorRecursive(IEnumerator enumerator) + { + var root = enumerator; + while(enumerator.Current as IEnumerator != null) + { + kIEnumeratorProcessingStack.Push(enumerator); + enumerator = enumerator.Current as IEnumerator; + } + + //process leaf + m_Processor.Set(enumerator.Current); + var result = m_Processor.MoveNext(enumerator); + + while (kIEnumeratorProcessingStack.Count > 1) + { + if (!result) + { + result = kIEnumeratorProcessingStack.Pop().MoveNext(); + } + else + kIEnumeratorProcessingStack.Clear(); + } + + if (kIEnumeratorProcessingStack.Count > 0 && !result && root == kIEnumeratorProcessingStack.Pop()) + { + result = root.MoveNext(); + } + + return result; + } + + internal void Stop() + { + m_Owner = null; + m_Routine = null; + EditorApplication.update -= MoveNext; + } + } +} diff --git a/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutine.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutine.cs.meta new file mode 100644 index 0000000..19b7380 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6c1e3c1846518ae4da27dcaf08ef85f4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutineUtility.cs b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutineUtility.cs new file mode 100644 index 0000000..2427c36 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutineUtility.cs @@ -0,0 +1,128 @@ +/* + * Derived from Unity package + * https://docs.unity3d.com/Packages/com.unity.editorcoroutines@0.0/api/Unity.EditorCoroutines.Editor.html + */ + +using System.Collections; +using UnityEngine; + +//namespace Unity.EditorCoroutines.Editor +namespace Meryel.UnityCodeAssist.Editor.EditorCoroutines +{ + public static class EditorCoroutineUtility + { + /// + /// Starts an EditorCoroutine with the specified owner object. + /// If the garbage collector collects the owner object, while the resulting coroutine is still executing, the coroutine will stop running. + /// + /// using System.Collections; + /// using Unity.EditorCoroutines.Editor; + /// using UnityEditor; + /// + /// public class ExampleWindow : EditorWindow + /// { + /// int m_Updates = 0; + /// void OnEnable() + /// { + /// EditorCoroutineUtility.StartCoroutine(CountEditorUpdates(), this); + /// } + /// + /// IEnumerator CountEditorUpdates() + /// { + /// while (true) + /// { + /// ++m_Updates; + /// yield return null; + /// } + /// } + /// } + /// + /// + /// IEnumerator to iterate over. + /// Object owning the coroutine. + /// + /// Only types that don't inherit from UnityEngine.Object will get collected the next time the GC runs instead of getting null-ed immediately. + /// + /// A handle to an EditorCoroutine. + public static EditorCoroutine StartCoroutine(IEnumerator routine, object owner) + { + return new EditorCoroutine(routine, owner); + } + + /// + /// This method starts an EditorCoroutine without an owning object. The EditorCoroutine runs until it completes or is canceled using StopCoroutine. + /// + /// using System.Collections; + /// using Unity.EditorCoroutines.Editor; + /// using UnityEditor; + /// using UnityEngine; + /// + /// public class ExampleWindow : EditorWindow + /// { + /// void OnEnable() + /// { + /// EditorCoroutineUtility.StartCoroutineOwnerless(LogTimeSinceStartup()); + /// } + /// + /// IEnumerator LogTimeSinceStartup() + /// { + /// while (true) + /// { + /// Debug.LogFormat("Time since startup: {0} s", Time.realtimeSinceStartup); + /// yield return null; + /// } + /// } + /// } + /// + /// + /// Generator function to execute. + /// A handle to an EditorCoroutine. + public static EditorCoroutine StartCoroutineOwnerless(IEnumerator routine) + { + return new EditorCoroutine(routine); + } + + /// + /// Immediately stop an EditorCoroutine. This method is safe to call on an already completed EditorCoroutine. + /// + /// using System.Collections; + /// using Unity.EditorCoroutines.Editor; + /// using UnityEditor; + /// using UnityEngine; + /// + /// public class ExampleWindow : EditorWindow + /// { + /// EditorCoroutine m_LoggerCoroutine; + /// void OnEnable() + /// { + /// m_LoggerCoroutine = EditorCoroutineUtility.StartCoroutineOwnerless(LogRunning()); + /// } + /// + /// void OnDisable() + /// { + /// EditorCoroutineUtility.StopCoroutine(m_LoggerCoroutine); + /// } + /// + /// IEnumerator LogRunning() + /// { + /// while (true) + /// { + /// Debug.Log("Running"); + /// yield return null; + /// } + /// } + /// } + /// + /// + /// A handle to an EditorCoroutine. + public static void StopCoroutine(EditorCoroutine coroutine) + { + if (coroutine == null) + { + Serilog.Log.Warning("EditorCoroutine handle is null."); + return; + } + coroutine.Stop(); + } + } +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutineUtility.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutineUtility.cs.meta new file mode 100644 index 0000000..bf55147 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorCoroutineUtility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b3d162669c5693a47bf42827686f73d0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWaitForSeconds.cs b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWaitForSeconds.cs new file mode 100644 index 0000000..347c7f5 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWaitForSeconds.cs @@ -0,0 +1,49 @@ +/* + * Derived from Unity package + * https://docs.unity3d.com/Packages/com.unity.editorcoroutines@0.0/api/Unity.EditorCoroutines.Editor.html + */ + +//namespace Unity.EditorCoroutines.Editor +namespace Meryel.UnityCodeAssist.Editor.EditorCoroutines +{ + /// + /// Suspends the EditorCoroutine execution for the given amount of seconds, using unscaled time. + /// The coroutine execution continues after the specified time has elapsed. + /// + /// using System.Collections; + /// using UnityEngine; + /// using Unity.EditorCoroutines.Editor; + /// using UnityEditor; + /// + /// public class MyEditorWindow : EditorWindow + /// { + /// IEnumerator PrintEachSecond() + /// { + /// var waitForOneSecond = new EditorWaitForSeconds(1.0f); + /// + /// while (true) + /// { + /// yield return waitForOneSecond; + /// Debug.Log("Printing each second"); + /// } + /// } + /// } + /// + /// + public class EditorWaitForSeconds + { + /// + /// The time to wait in seconds. + /// + public float WaitTime { get; } + + /// + /// Creates a instruction object for yielding inside a generator function. + /// + /// The amount of time to wait in seconds. + public EditorWaitForSeconds(float time) + { + WaitTime = time; + } + } +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWaitForSeconds.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWaitForSeconds.cs.meta new file mode 100644 index 0000000..8bce721 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWaitForSeconds.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2d8612ff14468214aad7600138a50b79 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWindowCoroutineExtension.cs b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWindowCoroutineExtension.cs new file mode 100644 index 0000000..25014c9 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWindowCoroutineExtension.cs @@ -0,0 +1,109 @@ +/* + * Derived from Unity package + * https://docs.unity3d.com/Packages/com.unity.editorcoroutines@0.0/api/Unity.EditorCoroutines.Editor.html + */ + +using System.Collections; +using UnityEditor; +using UnityEngine; + +//namespace Unity.EditorCoroutines.Editor +namespace Meryel.UnityCodeAssist.Editor.EditorCoroutines +{ + public static class EditorWindowCoroutineExtension + { + /// + /// Start an EditorCoroutine, owned by the calling EditorWindow instance. + /// + /// using System.Collections; + /// using Unity.EditorCoroutines.Editor; + /// using UnityEditor; + /// + /// public class ExampleWindow : EditorWindow + /// { + /// void OnEnable() + /// { + /// this.StartCoroutine(CloseWindowDelayed()); + /// } + /// + /// IEnumerator CloseWindowDelayed() //close the window after 1000 frames have elapsed + /// { + /// int count = 1000; + /// while (count > 0) + /// { + /// yield return null; + /// } + /// Close(); + /// } + /// } + /// + /// + /// + /// + public static EditorCoroutine StartCoroutine(this EditorWindow window, IEnumerator routine) + { + return new EditorCoroutine(routine, window); + } + + /// + /// Immediately stop an EditorCoroutine that was started by the calling instance. This method is safe to call on an already completed EditorCoroutine. + /// + /// using System.Collections; + /// using Unity.EditorCoroutines.Editor; + /// using UnityEditor; + /// using UnityEngine; + /// + /// public class ExampleWindow : EditorWindow + /// { + /// EditorCoroutine coroutine; + /// void OnEnable() + /// { + /// coroutine = this.StartCoroutine(CloseWindowDelayed()); + /// } + /// + /// private void OnDisable() + /// { + /// this.StopCoroutine(coroutine); + /// } + /// + /// IEnumerator CloseWindowDelayed() + /// { + /// while (true) + /// { + /// Debug.Log("Running"); + /// yield return null; + /// } + /// } + /// } + /// + /// + /// + public static void StopCoroutine(this EditorWindow window, EditorCoroutine coroutine) + { + if(coroutine == null) + { + Serilog.Log.Warning("Provided EditorCoroutine handle is null."); + return; + } + + if(coroutine.m_Owner == null) + { + Serilog.Log.Error("The EditorCoroutine is ownerless. Please use EditorCoroutineEditor.StopCoroutine to terminate such coroutines."); + return; + } + + if (!coroutine.m_Owner.IsAlive) + return; //The EditorCoroutine's owner was already terminated execution will cease next time it is processed + + var owner = coroutine.m_Owner.Target as EditorWindow; + + if (owner == null || owner != null && owner != window) + { + Serilog.Log.Error("The EditorCoroutine is owned by another object: {0}.", coroutine.m_Owner.Target); + return; + } + + EditorCoroutineUtility.StopCoroutine(coroutine); + } + } +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWindowCoroutineExtension.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWindowCoroutineExtension.cs.meta new file mode 100644 index 0000000..d127e02 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/EditorCoroutines/EditorWindowCoroutineExtension.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 64c15e0c4e36aa84193d4acb3c63afc5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences.meta b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences.meta new file mode 100644 index 0000000..a5ea013 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3eaba7264dd9d9547b297af0ad17d3c8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.AnalyzersLite.dll b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.AnalyzersLite.dll new file mode 100644 index 0000000000000000000000000000000000000000..c3c274eefa9678aa994276460023279375558823 GIT binary patch literal 56832 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 literal 0 HcmV?d00001 diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.AnalyzersLite.dll.meta b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.AnalyzersLite.dll.meta new file mode 100644 index 0000000..a7d754d --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.AnalyzersLite.dll.meta @@ -0,0 +1,69 @@ +fileFormatVersion: 2 +guid: 37e44dd86f563cf40a81ef1fdf1f1b54 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: x86 + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: x86_64 + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Common.dll b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..c3c49935905ae9646fd4158a799bebf3f1e681da GIT binary patch literal 35328 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

48-F6k z8>OA$Z#B}n3Z4ClG=*mX_6t=F{E$>EhM!~VQ0UxGN_^3cbG{9{VEoBVA9SI(jUr3c z*As13X!9r16=zU#;mv-AQ*Z#hMN9Z;5Q(3N4ml8bxlMKT@w*cyKMv&kbdFzpxAI&2 zZE8tFcX#Ui)p#b8;MdIBR8LEC3tm3K8w$+Ef6D$b*tqGBV#AURxy8>iwg zxJ7q_ajeGJ!=kR!8>3eqYZ%TW3vyV9S)9HD%7f4iiwph)-ub+LqyIr%vh!~V)7AJc zxe8xgl;=KNH;nJ``2GZCKPf6>o**YhpVL~KT4Ue4W5>l8e{1#iQ(pG17z`sk<9ERp zZ)l2d$G=C|yJ19!H{c&LJc3r3*&9-u&fDNDR~w4ngv6q@;iKKDw{sJ6k3cYAC>qWr2iW~ij46XqQT+Xiv#nsg(K+9cQU?b-Awcg_E+cg z3k_2fzwOaV?MR#Pn{TbS<6cW^fVUuB0hm9J=zl!Sdwtx{0F!$l$>m2d0P#_P{k8bh z1Vn*UzQs^N2UVXaR5w+L_@ z;Ds~?(0p0|E7Sq%gr?8J*)wn#n>c$9E mVn(sw7QCfckDRZd`hS1^U$Vee_P-gt3Y)|K{`~)Ef&T?XFu{EQ literal 0 HcmV?d00001 diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Completion.dll.meta b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Completion.dll.meta new file mode 100644 index 0000000..53bf5ef --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Completion.dll.meta @@ -0,0 +1,43 @@ +fileFormatVersion: 2 +guid: ed466bfa2ad216b41acde183e7706352 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.CompletionInternals.dll b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.CompletionInternals.dll new file mode 100644 index 0000000000000000000000000000000000000000..16e3c9a814d504bfbb3a4914e49f482c2b7e3b71 GIT binary patch literal 74752 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 Bil+bo literal 0 HcmV?d00001 diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.CompletionInternals.dll.meta b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.CompletionInternals.dll.meta new file mode 100644 index 0000000..6b31d01 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.CompletionInternals.dll.meta @@ -0,0 +1,43 @@ +fileFormatVersion: 2 +guid: e70477d38c7ca2841971b35549d1477f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Logger.dll b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Logger.dll new file mode 100644 index 0000000000000000000000000000000000000000..8ef429a3f74bfe0a18d87f3fa143c4031a838006 GIT binary patch literal 30720 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 F{|n!b%TE9R literal 0 HcmV?d00001 diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Logger.dll.meta b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Logger.dll.meta new file mode 100644 index 0000000..d33a8d1 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Logger.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: aaca88d50145a3041a4ccab964c5793d +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.MQTTnet.Extensions.ManagedClient.dll b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.MQTTnet.Extensions.ManagedClient.dll new file mode 100644 index 0000000000000000000000000000000000000000..78b77b9eac49b401246ebe2ef4fb05266e5abdf9 GIT binary patch literal 49664 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 z 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%0DE>^PUOkw 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 literal 0 HcmV?d00001 diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.MQTTnet.dll.meta b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.MQTTnet.dll.meta new file mode 100644 index 0000000..173a623 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.MQTTnet.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: dfd80cce2d0a99b4ba669e989eceafe5 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Newtonsoft.Json.dll b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Newtonsoft.Json.dll new file mode 100644 index 0000000000000000000000000000000000000000..e045d4cca896654de3827b3a9ff5516b1e1be783 GIT binary patch literal 691712 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

D=w!tpIFeH_Nprn)HKoG!KxcPg$GdLtz{ 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%0A0(+Ns>P#N&b%{`9+fSMJAH; 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 z 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 literal 0 HcmV?d00001 diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Newtonsoft.Json.dll.meta b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Newtonsoft.Json.dll.meta new file mode 100644 index 0000000..e759cfa --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Newtonsoft.Json.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 4adc17866ec41ac4e9ce6c47070aeef5 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.ProjectData.dll b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.ProjectData.dll new file mode 100644 index 0000000000000000000000000000000000000000..6ff2ff45f148965a4c2542f8f25e31c125648fec GIT binary patch literal 352256 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 P2X~ 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 literal 0 HcmV?d00001 diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.ProjectData.dll.meta b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.ProjectData.dll.meta new file mode 100644 index 0000000..36dd2f6 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.ProjectData.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: ca15dd8e239d5d6468333cbdacbb55d2 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.RoslynAnalyzerManager.dll b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.RoslynAnalyzerManager.dll new file mode 100644 index 0000000000000000000000000000000000000000..21b7617e5a549d845b6f3fbb3e0d60234ecae89f GIT binary patch literal 72704 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%0DXm~r;5uEa$BVNV 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 b?CF0#{|{?mO#WTW?RZ`1e?I^JY2ZHqhI=&3 literal 0 HcmV?d00001 diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Synchronizer.dll.meta b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Synchronizer.dll.meta new file mode 100644 index 0000000..6a9dcb8 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.Synchronizer.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 94a257e1b1239d94589fe96db62b03a7 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.SynchronizerModel.dll b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.SynchronizerModel.dll new file mode 100644 index 0000000000000000000000000000000000000000..5644402bc3f00466492752dafe11cec65fae08d5 GIT binary patch literal 38400 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 J@?Ta1{}-&_z?%R7 literal 0 HcmV?d00001 diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.SynchronizerModel.dll.meta b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.SynchronizerModel.dll.meta new file mode 100644 index 0000000..ecf9582 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.SynchronizerModel.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 849ce1048cc324a46b0fe21149770a3f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.VSIXLibrary.dll b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.VSIXLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..1a72285954a741e177b5df8cc3148d1830fe72b5 GIT binary patch literal 61440 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 literal 0 HcmV?d00001 diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.VSIXLibrary.dll.meta b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.VSIXLibrary.dll.meta new file mode 100644 index 0000000..4d045a9 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.VSIXLibrary.dll.meta @@ -0,0 +1,43 @@ +fileFormatVersion: 2 +guid: dd39e32872afc47418c75a05b559debf +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.YamlDotNet.dll b/Packages/com.merry-yellow.code-assist/Editor/ExternalReferences/Meryel.UnityCodeAssist.YamlDotNet.dll new file mode 100644 index 0000000000000000000000000000000000000000..b45dc8514085330c958178f923d8b1ccd940479b GIT binary patch literal 275968 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�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 z�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 R#S35i1km~^i61)${tfjk(); + window.Show(); + + Serilog.Log.Debug("Displaying feedback window"); + + MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "FeedbackWindow_Display"); + } + + + private void OnEnable() + { + //**--icon + //var icon = AssetDatabase.LoadAssetAtPath("Assets/Sprites/Gear.png"); + //titleContent = new GUIContent("Code Assist", icon); + titleContent = new GUIContent("Code Assist Feedback"); + } + + private void OnGUI() + { + var errorCount = Logger.ELogger.GetErrorCountInInternalLog(); + var warningCount = Logger.ELogger.GetWarningCountInInternalLog(); + var logContent = Logger.ELogger.GetInternalLogContent(); + if (!string.IsNullOrEmpty(Logger.ELogger.VsInternalLog)) + logContent += Logger.ELogger.VsInternalLog; + + styleLabel ??= new GUIStyle(GUI.skin.label) + { + wordWrap = true, + alignment = TextAnchor.MiddleCenter, + }; + + if (errorCount > 0) + EditorGUILayout.LabelField($"{errorCount} error(s) found in logs. Please submit a feedback (via e-mail, Discord or GitHub) with the logs if possible.", styleLabel, GUILayout.ExpandWidth(true)); + else if (warningCount > 0) + EditorGUILayout.LabelField($"{warningCount} warnings(s) found in logs. Please submit a feedback (via e-mail, Discord or GitHub) with the logs if possible.", styleLabel, GUILayout.ExpandWidth(true)); + else + EditorGUILayout.LabelField("No errors found in logs. Please submit a feedback (via e-mail, Discord or GitHub) describing what went wrong or unexpected.", styleLabel, GUILayout.ExpandWidth(true)); + + if (GUILayout.Button("Send e-mail")) + { + var uri = "mailto:merryyellow@outlook.com"; + System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(uri)); + } + + if (GUILayout.Button("Send Discord message")) + { + //var uri = "discord://invites/2CgKHDq"; + var uri = "https://discord.gg/2CgKHDq"; + System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(uri)); + } + + if (GUILayout.Button("Submit GitHub issue")) + { + var uri = "https://github.com/merryyellow/Unity-Code-Assist/issues/new/choose"; + Application.OpenURL(uri); + } + + EditorGUILayout.Separator(); + + if (GUILayout.Button("Open Unity full log")) + { + var filePath = Logger.ELogger.FilePath; + System.Diagnostics.Process.Start(filePath); + } + if (GUILayout.Button("Reveal Unity full log")) + { + var filePath = Logger.ELogger.FilePath; + ShowInFileExplorer(filePath); + } + + if (GUILayout.Button("Open Visual Studio full log")) + { + var filePath = Logger.ELogger.VSFilePath; + System.Diagnostics.Process.Start(filePath); + } + if (GUILayout.Button("Reveal Visual Studio full log")) + { + var filePath = Logger.ELogger.VSFilePath; + ShowInFileExplorer(filePath); + } + + if (GUILayout.Button("Copy recent logs to clipboard")) + { + GUIUtility.systemCopyBuffer = logContent; + } + + EditorGUILayout.LabelField("Recent logs:", styleLabel, GUILayout.ExpandWidth(true)); + EditorGUILayout.SelectableLabel(logContent, EditorStyles.textArea, GUILayout.ExpandHeight(true)); + } + + public static void ShowInFileExplorer(string? filePath) + { + if (string.IsNullOrEmpty(filePath)) + { + Serilog.Log.Error("Argument {Arg} is null or empty at {Location}", nameof(filePath), nameof(ShowInFileExplorer)); + return; + } + + filePath = System.IO.Path.GetFullPath(filePath); + + if (!System.IO.File.Exists(filePath) && !System.IO.Directory.Exists(filePath)) + { + Serilog.Log.Error("Argument {Arg} is not found at {Location}, value: {Value}", nameof(filePath), nameof(ShowInFileExplorer), filePath); + return; + } + + if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows)) + { + // Windows: highlight the file in Explorer + System.Diagnostics.Process.Start("explorer.exe", $"/select,\"{filePath}\""); + } + else if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.OSX)) + { + // macOS: reveal in Finder + System.Diagnostics.Process.Start("open", $"-R \"{filePath}\""); + } + else if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Linux)) + { + // Linux: open containing folder in a common file manager + string? directory = System.IO.Path.GetDirectoryName(filePath); + if (directory == null) + return; + + string[] managers = { "xdg-open", "nautilus", "dolphin", "nemo", "thunar" }; + + foreach (string manager in managers) + { + if (TryStart(manager, directory)) + return; // success + } + + Serilog.Log.Error("No supported file manager found to open the directory at {Location}", nameof(ShowInFileExplorer)); + } + else + { + Serilog.Log.Error("Unsupported OS platform at {Location}", nameof(ShowInFileExplorer)); + } + + // static local function for cleaner structure + static bool TryStart(string command, string args) + { + try + { + System.Diagnostics.Process.Start(command, $"\"{args}\""); + return true; + } + catch + { + return false; + } + } + } + + } +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/FeedbackWindow.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/FeedbackWindow.cs.meta new file mode 100644 index 0000000..033382b --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/FeedbackWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2f84a1c080c184e48920a0124c3e9257 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Input.meta b/Packages/com.merry-yellow.code-assist/Editor/Input.meta new file mode 100644 index 0000000..1c48eb0 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Input.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 522bfae47b162cb40afd6ea1f7d424b5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Input/Binary2TextExec.cs b/Packages/com.merry-yellow.code-assist/Editor/Input/Binary2TextExec.cs new file mode 100644 index 0000000..6313183 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Input/Binary2TextExec.cs @@ -0,0 +1,146 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using UnityEditor; +using UnityEngine; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +//namespace UTJ.UnityCommandLineTools +namespace Meryel.UnityCodeAssist.Editor.Input +{ + //

+ // bin2textã‚’UnityEditorã‹ã‚‰å®Ÿè¡Œã™ã‚‹ç‚ºã®Class + // programed by Katsumasa.Kimura + // + public class Binary2TextExec : EditorToolExec + { + public Binary2TextExec() : base("binary2text") { } + + // + // bin2text filePath outPath options + // /summary> + public int Exec(string filePath, string outPath, string options) + { + var args = string.Format(@"""{0}"" ""{1}"" {2}", filePath, outPath, options); + return Exec(args); + } + + public int Exec(string filePath, string outPath, bool detailed = false, bool largeBinaryHashOnly = false, bool hexFloat = false) + { + //var args = string.Format(@"""{0}"" ""{1}"" {2}", filePath, outPath, options); + var args = string.Format(@"""{0}"" ""{1}""", filePath, outPath); + + if (detailed) + args += " -detailed"; + if (largeBinaryHashOnly) + args += " -largebinaryhashonly"; + if (hexFloat) + args += " -hexfloat"; + + return Exec(args); + } + } + + // + // UnityEditorã«å«ã¾ã‚Œã‚‹ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ãƒ„ールを実行ã™ã‚‹ç‚ºã®åŸºåº•Class + // programed by Katsumasa.Kimura + // + public class EditorToolExec + { + // + // UnityEditorãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„るディレクトリã¸ã®ãƒ‘ス + // + protected string mEditorPath; + + // + // Toolsディレクトリã¸ã®ãƒ‘ス + // + protected string mToolsPath; + + // + // 実行ファイルå + // + protected string mExecFname; + + // + // 実行ファイルã¸ã®ãƒ•ルパス + // + protected string mExecFullPath; + + // + // å®Ÿè¡Œçµæžœã®OUTPUT + // + private string? mOutput; + + // + // å®Ÿè¡Œçµæžœã®OUTPUT + // + public string? Output + { + get { return mOutput; } + } + + // + // コンストラクタ + // + // mExecFname : 実行ファイルå + // + // /summary> + public EditorToolExec(string mExecFname) + { + mEditorPath = Path.GetDirectoryName(EditorApplication.applicationPath); + mToolsPath = Path.Combine(mEditorPath, @"Data/Tools"); + this.mExecFname = mExecFname; + //var files = Directory.GetFiles(mToolsPath, mExecFname, SearchOption.AllDirectories); + var files = Directory.GetFiles(mEditorPath, mExecFname + "*", SearchOption.AllDirectories); + + if (files.Length == 0) + Serilog.Log.Error("{App} app couldn't be found at {Path}", mExecFname, mEditorPath); + + mExecFullPath = files[0]; + } + + // + // コマンドラインツールを実行ã™ã‚‹ + // + // arg : ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ãƒ„ãƒ¼ãƒ«ã«æ¸¡ã™å¼•æ•° + // + // + public int Exec(string arg) + { + int exitCode = -1; + + try + { + using var process = new Process(); + process.StartInfo.FileName = mExecFullPath; + process.StartInfo.Arguments = arg; + process.StartInfo.UseShellExecute = false; + process.StartInfo.RedirectStandardOutput = true; + process.StartInfo.CreateNoWindow = true; + process.Start(); + mOutput = process.StandardOutput.ReadToEnd(); + process.WaitForExit(); + exitCode = process.ExitCode; + process.Close(); + } + catch (Exception e) + { + //UnityEngine.Debug.Log(e); + Serilog.Log.Error(e, "Exception while running process at {Scope}.{Location}", nameof(EditorToolExec), nameof(Exec)); + } + + return exitCode; + } + } +} diff --git a/Packages/com.merry-yellow.code-assist/Editor/Input/Binary2TextExec.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Input/Binary2TextExec.cs.meta new file mode 100644 index 0000000..cec7b88 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Input/Binary2TextExec.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 13d464c749e33e043b94d94c82365823 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Input/InputManagerMonitor.cs b/Packages/com.merry-yellow.code-assist/Editor/Input/InputManagerMonitor.cs new file mode 100644 index 0000000..cd5cd84 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Input/InputManagerMonitor.cs @@ -0,0 +1,164 @@ +using System; +using System.Linq; +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor.Input +{ + + public class InputManagerMonitor + { + private static readonly Lazy _instance = new Lazy(() => new InputManagerMonitor()); + public static InputManagerMonitor Instance => _instance.Value; + + //UnityInputManager inputManager; + readonly string inputManagerFilePath; + DateTime previousTagManagerLastWrite; + + public InputManagerMonitor() + { + EditorApplication.update += Update; + inputManagerFilePath = CommonTools.GetInputManagerFilePath(); + + if (!System.IO.File.Exists(inputManagerFilePath)) + { + Serilog.Log.Error("InputManager file not found at {location}", inputManagerFilePath); + return; + } + + try + { + previousTagManagerLastWrite = System.IO.File.GetLastWriteTime(inputManagerFilePath); + } + catch (Exception ex) + { + Serilog.Log.Debug(ex, "Exception at {Location}", nameof(System.IO.File.GetLastWriteTime)); + } + } + + void Update() + { +#if !ENABLE_LEGACY_INPUT_MANAGER + return; +#endif + +#pragma warning disable CS0162 +#pragma warning disable IDE0035 + + var currentInputManagerLastWrite = previousTagManagerLastWrite; + try + { + if (System.IO.File.Exists(inputManagerFilePath)) + currentInputManagerLastWrite = System.IO.File.GetLastWriteTime(inputManagerFilePath); + } + catch (Exception ex) + { + Serilog.Log.Debug(ex, "Exception at {Location}", nameof(System.IO.File.GetLastWriteTime)); + } + if (currentInputManagerLastWrite != previousTagManagerLastWrite) + { + previousTagManagerLastWrite = currentInputManagerLastWrite; + Bump(); + } + +#pragma warning restore CS0162 +#pragma warning restore IDE0035 + } + + public void Bump() + { +#if !ENABLE_LEGACY_INPUT_MANAGER + return; +#endif +#pragma warning disable CS0162 +#pragma warning disable IDE0035 + + Serilog.Log.Debug("InputMonitor {Event}", nameof(Bump)); + + if (!System.IO.File.Exists(inputManagerFilePath)) + { + Serilog.Log.Error("InputManager file not found at {location}", inputManagerFilePath); + return; + } + + var inputManager = new UnityInputManager(); + inputManager.ReadFromPath(inputManagerFilePath); + inputManager.SendData(); + + +#pragma warning restore CS0162 +#pragma warning restore IDE0035 + } + + } + + + public static partial class Extensions + { + public static string GetInfo(this List axes, string? name) + { + if (name == null || string.IsNullOrEmpty(name)) + return string.Empty; + + //axis.descriptiveName + var axesWithName = axes.Where(a => a.Name == name); + + int threshold = 80; + + var sb = new System.Text.StringBuilder(); + + foreach (var axis in axesWithName) + if (!string.IsNullOrEmpty(axis.descriptiveName)) + sb.Append($"{axis.descriptiveName} "); + + if (sb.Length > threshold) + return sb.ToString(); + + foreach (var axis in axesWithName) + if (!string.IsNullOrEmpty(axis.descriptiveNegativeName)) + sb.Append($"{axis.descriptiveNegativeName} "); + + if (sb.Length > threshold) + return sb.ToString(); + + foreach (var axis in axesWithName) + if (!string.IsNullOrEmpty(axis.positiveButton)) + sb.Append($"[{axis.positiveButton}] "); + + if (sb.Length > threshold) + return sb.ToString(); + + foreach (var axis in axesWithName) + if (!string.IsNullOrEmpty(axis.altPositiveButton)) + sb.Append($"{{{axis.altPositiveButton}}} "); + + if (sb.Length > threshold) + return sb.ToString(); + + foreach (var axis in axesWithName) + if (!string.IsNullOrEmpty(axis.negativeButton)) + sb.Append($"-[{axis.negativeButton}] "); + + if (sb.Length > threshold) + return sb.ToString(); + + foreach (var axis in axesWithName) + if (!string.IsNullOrEmpty(axis.altNegativeButton)) + sb.Append($"-{{{axis.altNegativeButton}}} "); + + return sb.ToString(); + } + } + +} diff --git a/Packages/com.merry-yellow.code-assist/Editor/Input/InputManagerMonitor.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Input/InputManagerMonitor.cs.meta new file mode 100644 index 0000000..eb6b582 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Input/InputManagerMonitor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e9c9772cbc184d74dbdb770fec5ff76c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Input/Text2Yaml.cs b/Packages/com.merry-yellow.code-assist/Editor/Input/Text2Yaml.cs new file mode 100644 index 0000000..d1ba92e --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Input/Text2Yaml.cs @@ -0,0 +1,215 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor.Input +{ + + public class Text2Yaml + { + public static string Convert(IEnumerable textLines) + { + var sb = new StringBuilder(); + var stack = new Stack<(string typeName, string identifier, int indentation)>(); + + sb.AppendLine(@"%YAML 1.1"); + sb.AppendLine(@"%TAG !u! tag:unity3d.com,2011:"); + sb.AppendLine(@"--- !u!13 &1"); + sb.AppendLine(@"InputManager:"); + + var regexIndentation = new Regex("^\\s*"); + + var regexString = new Regex("^(\\s+)(\\w+)\\s+\"([a-zA-Z0-9_ \\/\\.\\-]*)\"\\s+\\(string\\)$"); + var regexValue = new Regex("^(\\s+)(\\w+)\\s+(-?[0-9.]*)\\s+\\(((bool)|(int)|(float)|(unsigned int))\\)$"); + var regexType = new Regex("^(\\s+)(\\w+)\\s+\\((\\w+)\\)$"); + + var regexVectorSize = new Regex("(\\s+)size\\s+(\\d)+\\s+\\(int\\)"); + //var regexVectorData = new Regex("(\\s+)data \\(InputAxis\\)"); // remove InputAxis to make it more generic + + string curTextLine; + var curTextLineNo = 3; + var textIndentation = 1; + var indentationPrefix = new string(' ', textIndentation * 2); + stack.Push(("InputManager", "InputManager", textIndentation)); + + + foreach (var line in textLines.Skip(4)) + { + curTextLine = line; + curTextLineNo++; + + + // Skip empty lines + if (line.Length == 0) + continue; + + // Check if type undeclared, scope goes down, indentation decrements + { + var indentationMatch = regexIndentation.Match(line); + if (indentationMatch.Success) + { + var indentation = indentationMatch.Groups[0].Value.Length; + + if (indentation > textIndentation) + Error($"indentation({indentation}) > textIndentation({textIndentation})"); + + while (indentation < textIndentation) + { + stack.Pop(); + textIndentation--; + var typeIndentation = textIndentation; + if (stack.TryPeek(out var curType2)) + typeIndentation = curType2.indentation; + else if (line.Length > 0) + Error("stack empty at type undeclaration"); + indentationPrefix = new string(' ', typeIndentation * 2); + } + + } + else + { + Error($"{nameof(regexIndentation)} failed"); + } + } + + // Skip size field of vectors + if (stack.TryPeek(out var curType1) && curType1.typeName == "vector") + { + var vectorSizeMatch = regexVectorSize.Match(line); + if (vectorSizeMatch.Success) + { + continue; + } + } + + // Read string fields + { + var stringMatch = regexString.Match(line); + if (stringMatch.Success) + { + AddLine(stringMatch.Groups[2] + ": " + stringMatch.Groups[3]); + continue; + } + } + + // Read bool/int/float/unsignedInt fields + { + var valueMatch = regexValue.Match(line); + if (valueMatch.Success) + { + AddLine(valueMatch.Groups[2] + ": " + valueMatch.Groups[3]); + continue; + } + } + + // Check if new type declared, scope goes up, indentation increases + { + var typeMatch = regexType.Match(line); + if (typeMatch.Success) + { + var identifier = typeMatch.Groups[2].Value; + var typeName = typeMatch.Groups[3].Value; + + var isVectorData = false; + if (stack.TryPeek(out var curType2) && curType2.typeName == "vector" && identifier == "data") + isVectorData = true; + + var typeIndentation = textIndentation; + if (stack.TryPeek(out var curType3)) + typeIndentation = curType3.indentation; + else if (line.Length > 0) + Error("stack empty at type declaration"); + + if (!isVectorData) + { + AddLine(typeMatch.Groups[2] + ":"); + } + else + { + var customIndentation = typeIndentation - 1; + if (customIndentation < 0) + Error($"customIndentation({customIndentation}) < 0"); + var customIndentationPrefix = new string(' ', customIndentation * 2); + AddLine("- serializedVersion: 3", customIndentationPrefix); + } + + + textIndentation++; + typeIndentation++; + + if (isVectorData) + typeIndentation--; + + stack.Push((typeName, identifier, typeIndentation)); + indentationPrefix = new string(' ', typeIndentation * 2); + + continue; + } + } + + + Error("line failed to match all cases"); + + } + + + + return sb.ToString(); + + + void AddLine(string line, string? customIndentationPrefix = null) + { + string suffix; + if (stack.TryPeek(out var top)) + suffix = $" # {textIndentation}, {top.indentation}, {top.typeName} {top.identifier}"; + else + suffix = $" # {textIndentation}, nil"; + + if (customIndentationPrefix != null) + sb.AppendLine(customIndentationPrefix + line + suffix); + else + sb.AppendLine(indentationPrefix + line + suffix); + } + + void Error(string message) + { + var errorMessage = $"Text2Yaml error '{message}' at lineNo: {curTextLineNo}, line: '{curTextLine}' at {Environment.StackTrace}"; + //throw new Exception(errorMessage); + Serilog.Log.Warning(errorMessage); + } + + } + + + } + + public static partial class Extensions + { + public static bool TryPeek(this Stack stack, /*[MaybeNullWhen(false)]*/ out T result) + { + if (stack.Count > 0) + { + result = stack.Peek(); + return true; + } + else + { + result = default!; + return false; + } + } + } + +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/Input/Text2Yaml.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Input/Text2Yaml.cs.meta new file mode 100644 index 0000000..ad1d84c --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Input/Text2Yaml.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5e191fef871d30041a55c3c8af5aab43 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Input/UnityInputManager.cs b/Packages/com.merry-yellow.code-assist/Editor/Input/UnityInputManager.cs new file mode 100644 index 0000000..5aed5c1 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Input/UnityInputManager.cs @@ -0,0 +1,429 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Linq; +using System.Security.Cryptography; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +using YamlDotNet = Meryel.UnityCodeAssist.YamlDotNet; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor.Input +{ + + + internal class UnityInputManager + { + //string yamlPath; + TextReader? reader; + InputManager? inputManager; + + public void ReadFromText(string text) + { + reader = new StringReader(text); + ReadAux(false, out _); + } + + public void ReadFromPath(string yamlPath) + { + + switch (UnityEditor.EditorSettings.serializationMode) + { + case UnityEditor.SerializationMode.ForceText: + { + reader = new StreamReader(yamlPath); + ReadAux(false, out _); + } + break; + + case UnityEditor.SerializationMode.ForceBinary: + { + // this approach will work for InputManager since its file size is small and limited + // but in the future, we may need to switch to reading binary files for big files + // like this https://github.com/Unity-Technologies/UnityDataTools + // or this https://github.com/SeriousCache/UABE + var converted = GetOrCreateConvertedFile(yamlPath); + if (!File.Exists(converted)) + { + Serilog.Log.Warning("Temp file {TempFile} couldn't found for converted yaml input file. Auto Input Manager will not work!", converted); + return; + } + var rawLines = File.ReadLines(converted); + var yamlText = Text2Yaml.Convert(rawLines); + reader = new StringReader(yamlText); + ReadAux(false, out _); + } + break; + + case UnityEditor.SerializationMode.Mixed: + { + reader = new StreamReader(yamlPath); + ReadAux(true, out var hasSemanticError); + if (hasSemanticError) + { + var converted = GetOrCreateConvertedFile(yamlPath); + if (!File.Exists(converted)) + { + Serilog.Log.Warning("Temp file {TempFile} couldn't found for converted yaml input file. Auto Input Manager will not work!", converted); + return; + } + var rawLines = File.ReadLines(converted); + var yamlText = Text2Yaml.Convert(rawLines); + reader = new StringReader(yamlText); + ReadAux(false, out _); + } + } + break; + + } + } + + + void ReadAux(bool canHaveSemanticError, out bool hasSemanticError) + { + hasSemanticError = false; + + if (reader == null) + { + Serilog.Log.Warning($"{nameof(UnityInputManager)}.{nameof(reader)} is null"); + return; + } + + //var reader = new StreamReader(yamlPath); + var deserializer = new YamlDotNet.Serialization.DeserializerBuilder() + //.WithTagMapping("tag:unity3d.com,2011:13", typeof(Class13Mapper)) + .WithNodeTypeResolver(new Tag13Resolver()) // some users have "tag:yousandi.cn,2023:13" instead, so use a more generic approach + .IgnoreUnmatchedProperties() + .Build(); + //serializer.Settings.RegisterTagMapping("tag:unity3d.com,2011:13", typeof(Class13)); + //serializer.Settings.ComparerForKeySorting = null; + Class13Mapper? result; + try + { + result = deserializer.Deserialize(reader); + } + catch (YamlDotNet.Core.SemanticErrorException semanticErrorException) + { + Serilog.Log.Debug(semanticErrorException, "Couldn't parse InputManager.asset yaml file"); + if (!canHaveSemanticError) + Serilog.Log.Error(semanticErrorException, "Couldn't parse InputManager.asset yaml file unexpectedly"); + + hasSemanticError = true; + return; + } + finally + { + reader.Close(); + } + + var inputManagerMapper = result?.InputManager; + if (inputManagerMapper == null) + { + Serilog.Log.Warning($"{nameof(inputManagerMapper)} is null"); + return; + } + + inputManager = new InputManager(inputManagerMapper); + } + + + public void SendData() + { + if (inputManager == null) + return; + + var axisNames = inputManager.Axes.Select(a => a.Name!).Where(n => !string.IsNullOrEmpty(n)).Distinct().ToArray(); + var axisInfos = axisNames.Select(a => inputManager.Axes.GetInfo(a)).ToArray(); + if (!CreateBindingsMap(out var buttonKeys, out var buttonAxis)) + return; + + string[] joystickNames; + try + { + joystickNames = UnityEngine.Input.GetJoystickNames(); + } + catch (InvalidOperationException) + { + // Occurs if user have switched active Input handling to Input System package in Player Settings. + joystickNames = new string[0]; + } + + MQTTnetInitializer.Publisher?.SendInputManager(axisNames, axisInfos, buttonKeys, buttonAxis, joystickNames); + + /* + MQTTnetInitializer.Publisher?.SendInputManager( + inputManager.Axes.Select(a => a.Name).Distinct().ToArray(), + inputManager.Axes.Select(a => a.positiveButton).ToArray(), + inputManager.Axes.Select(a => a.negativeButton).ToArray(), + inputManager.Axes.Select(a => a.altPositiveButton).ToArray(), + inputManager.Axes.Select(a => a.altNegativeButton).ToArray(), + UnityEngine.Input.GetJoystickNames() + ); + */ + + } + + + bool CreateBindingsMap([System.Diagnostics.CodeAnalysis.NotNullWhen(true)] out string[]? inputKeys, [System.Diagnostics.CodeAnalysis.NotNullWhen(true)] out string[]? inputAxis) + { + if (inputManager == null) + { + inputKeys = null; + inputAxis = null; + return false; + } + + var dict = new Dictionary(); + + foreach (var axis in inputManager.Axes) + { + if (axis.altNegativeButton != null && !string.IsNullOrEmpty(axis.altNegativeButton)) + dict[axis.altNegativeButton] = axis.Name; + } + foreach (var axis in inputManager.Axes) + { + if (axis.negativeButton != null && !string.IsNullOrEmpty(axis.negativeButton)) + dict[axis.negativeButton] = axis.Name; + } + foreach (var axis in inputManager.Axes) + { + if (axis.altPositiveButton != null && !string.IsNullOrEmpty(axis.altPositiveButton)) + dict[axis.altPositiveButton] = axis.Name; + } + foreach (var axis in inputManager.Axes) + { + if (axis.positiveButton != null && !string.IsNullOrEmpty(axis.positiveButton)) + dict[axis.positiveButton] = axis.Name; + } + + var keys = new string[dict.Count]; + var values = new string[dict.Count]; + dict.Keys.CopyTo(keys, 0); + dict.Values.CopyTo(values, 0); + + inputKeys = keys; + inputAxis = values; + return true; + } + + + + static string GetOrCreateConvertedFile(string filePath) + { + var hash = GetMD5Hash(filePath); + var convertedPath = Path.Combine(Path.GetTempPath(), $"UCA_IM_{hash}.txt"); + + if (!File.Exists(convertedPath)) + { + Serilog.Log.Debug("Converting binary to text format of {File} to {Target}", filePath, convertedPath); + var converter = new Binary2TextExec(); + converter.Exec(filePath, convertedPath); + } + else + { + Serilog.Log.Debug("Converted file already exists at {Target}", convertedPath); + } + + return convertedPath; + } + + /// + /// Gets a hash of the file using MD5. + /// + /// + /// + public static string GetMD5Hash(string filePath) + { + using var md5 = new MD5CryptoServiceProvider(); + return GetHash(filePath, md5); + } + + /// + /// Gets a hash of the file using MD5. + /// + /// + /// + public static string GetMD5Hash(Stream s) + { + using var md5 = new MD5CryptoServiceProvider(); + return GetHash(s, md5); + } + + private static string GetHash(string filePath, HashAlgorithm hasher) + { + using var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + return GetHash(fs, hasher); + } + + private static string GetHash(Stream s, HashAlgorithm hasher) + { + var hash = hasher.ComputeHash(s); + var hashStr = Convert.ToBase64String(hash); + //return hashStr.TrimEnd('='); + var hashStrAlphaNumeric = System.Text.RegularExpressions.Regex.Replace(hashStr, "[^A-Za-z0-9]", ""); + return hashStrAlphaNumeric; + } + + } + + public enum AxisType + { + KeyOrMouseButton = 0, + MouseMovement = 1, + JoystickAxis = 2 + }; + +#pragma warning disable IDE1006 + + public class InputAxisMapper + { + public int serializedVersion { get; set; } + + public string? m_Name { get; set; } + public string? descriptiveName { get; set; } + public string? descriptiveNegativeName { get; set; } + public string? negativeButton { get; set; } + public string? positiveButton { get; set; } + public string? altNegativeButton { get; set; } + public string? altPositiveButton { get; set; } + + //public float gravity { get; set; } + //public float dead { get; set; } + //public float sensitivity { get; set; } + public string? gravity { get; set; } + public string? dead { get; set; } + public string? sensitivity { get; set; } + + //public bool snap { get; set; } + public int snap { get; set; } + //public bool invert { get; set; } + public int invert { get; set; } + + //public AxisType type { get; set; } + public int type { get; set; } + + public int axis { get; set; } + public int joyNum { get; set; } + } + + public class InputAxis + { + readonly InputAxisMapper map; + + public InputAxis(InputAxisMapper map) + { + this.map = map; + } + + public int SerializedVersion + { + get { return map.serializedVersion; } + set { map.serializedVersion = value; } + } + + public string? Name => map.m_Name; + public string? descriptiveName => map.descriptiveName; + public string? descriptiveNegativeName => map.descriptiveNegativeName; + public string? negativeButton => map.negativeButton; + public string? positiveButton => map.positiveButton; + public string? altNegativeButton => map.altNegativeButton; + public string? altPositiveButton => map.altPositiveButton; + + public float gravity => float.Parse(map.gravity);//**--format + public float dead => float.Parse(map.dead);//**--format + public float sensitivity => float.Parse(map.sensitivity);//**--format + + public bool snap => map.snap != 0; + public bool invert => map.invert != 0; + + public AxisType type => (AxisType)map.type; + + public int axis => map.axis; + public int joyNum => map.joyNum; + } + + public class InputManagerMapper + { + public int m_ObjectHideFlags { get; set; } + public int serializedVersion { get; set; } + public int m_UsePhysicalKeys { get; set; } + public List? m_Axes { get; set; } + } + +#pragma warning restore IDE1006 + + public class InputManager + { + readonly InputManagerMapper map; + readonly List axes; + + public InputManager(InputManagerMapper map) + { + this.map = map; + this.axes = new List(); + + if (map.m_Axes == null) + { + Serilog.Log.Warning($"map.m_Axes is null"); + return; + } + + foreach (var a in map.m_Axes) + this.axes.Add(new InputAxis(a)); + } + + public int ObjectHideFlags + { + get { return map.m_ObjectHideFlags; } + set { map.m_ObjectHideFlags = value; } + } + + public int SerializedVersion + { + get { return map.serializedVersion; } + set { map.serializedVersion = value; } + } + + public bool UsePhysicalKeys + { + get { return map.m_UsePhysicalKeys != 0; } + set { map.m_UsePhysicalKeys = value ? 1 : 0; } + } + + /*public List Axes + { + get { return map.m_Axes; } + set { map.m_Axes = value; } + }*/ + public List Axes => axes; + } + + public class Class13Mapper + { + public InputManagerMapper? InputManager { get; set; } + } + + public class Tag13Resolver : YamlDotNet.Serialization.INodeTypeResolver + { + public bool Resolve(YamlDotNet.Core.Events.NodeEvent? nodeEvent, ref Type currentType) + { + if (nodeEvent != null && !nodeEvent.Tag.IsEmpty && !nodeEvent.Tag.IsNonSpecific) + { + var tagValue = nodeEvent.Tag.Value; + if (tagValue.EndsWith(":13")) + { + currentType = typeof(Class13Mapper); + return true; + } + } + return false; + } + } +} diff --git a/Packages/com.merry-yellow.code-assist/Editor/Input/UnityInputManager.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Input/UnityInputManager.cs.meta new file mode 100644 index 0000000..2a51956 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Input/UnityInputManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: abdf2bf92986f1d4f802bfedb8faf551 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/LazyInitializer.cs b/Packages/com.merry-yellow.code-assist/Editor/LazyInitializer.cs new file mode 100644 index 0000000..3fa82a1 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/LazyInitializer.cs @@ -0,0 +1,49 @@ +using System.Collections; +using System.Collections.Generic; +using System.Collections.Concurrent; +using UnityEngine; +using UnityEditor; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor +{ + + [InitializeOnLoad] + public static class LazyInitializer + { + static int counter; + + static LazyInitializer() + { + counter = -5;// start initializing five frames later + EditorApplication.update += OnUpdate; + } + + static void OnUpdate() + { + counter++; + + if (counter == 1) + MainThreadDispatcher.Bump(); + else if (counter == 2) + Logger.ELogger.Bump(); + else if (counter == 3) + Monitor.Bump(); + else if (counter == 4) + MQTTnetInitializer.Bump(); + else if (counter == 5) + Updater.CheckUpdateSilent(); + else if (counter >= 6) + EditorApplication.update -= OnUpdate; + } + + } +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/LazyInitializer.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/LazyInitializer.cs.meta new file mode 100644 index 0000000..dce0c84 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/LazyInitializer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cc6e883c86567a34a94d52b99adf98bd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Logger.meta b/Packages/com.merry-yellow.code-assist/Editor/Logger.meta new file mode 100644 index 0000000..a9759cc --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Logger.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 79e3362e47a155d4da42427c9115bc23 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Logger/CommonTools.cs b/Packages/com.merry-yellow.code-assist/Editor/Logger/CommonTools.cs new file mode 100644 index 0000000..05bc53e --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Logger/CommonTools.cs @@ -0,0 +1,151 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using static System.IO.Path; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor +{ + public static class CommonTools + { + public static string GetScriptPath(string script) + { + var projectPath = GetProjectPathRaw(); + var toolPath = Combine(projectPath, "Packages/com.merry-yellow.code-assist/Editor/", script); + return toolPath; + } + + /// + /// does NOT include the trailing slash + /// + /// + public static string GetExternalReferencesPath() + { + var projectPath = GetProjectPathRaw(); + var extRefPath = Combine(projectPath, "Packages/com.merry-yellow.code-assist/Editor/ExternalReferences"); + return extRefPath; + } + + [Obsolete] + public static string GetToolPath(string tool) + { + var projectPath = GetProjectPathRaw(); + var toolPath = Combine(projectPath, "Packages/com.merry-yellow.code-assist/Tools~/", tool); + return toolPath; + } + + public static string GetInstallerPath(string installer) + { + var projectPath = GetProjectPathRaw(); + var installerPath = Combine(projectPath, "Packages/com.merry-yellow.code-assist/Installers~/", installer); + return installerPath; + } + + public static string GetTagManagerFilePath() + { + var projectPath = GetProjectPathRaw(); + var tagManagerPath = Combine(projectPath, "ProjectSettings/TagManager.asset"); + return tagManagerPath; + } + + public static string GetInputManagerFilePath() + { + var projectPath = GetProjectPathRaw(); + var inputManagerPath = Combine(projectPath, "ProjectSettings/InputManager.asset"); + return inputManagerPath; + } + + public static string GetProjectPath() + { + var rawPath = GetProjectPathRaw(); + //var pathWithoutWhiteSpace = rawPath.Trim(); // this is done in OSPath ctor + var osPath = new OSPath(rawPath); + var unixPath = osPath.Unix; + var trimmed = unixPath.TrimEnd('\\', '/'); + var capitalized = FirstCharToUpper(trimmed); // this is required for TypeScript, so doing it here as well just in case + return capitalized!; + } + + static string? FirstCharToUpper(string? input) + { + switch (input) + { + case null: return null; + case "": return ""; + default: return input[0].ToString().ToUpper() + input.Substring(1); + } + } + + /// + /// Get the path to the project folder. + /// + /// The project folder path + static string GetProjectPathRaw() + { + // Application.dataPath returns the path including /Assets, which we need to strip off + var path = UnityEngine.Application.dataPath; + var directory = new DirectoryInfo(path); + var parent = directory.Parent; + if (parent != null) + return parent.FullName; + + return path; + } + + public static string GetHashForLogFile(string path) => Synchronizer.Model.Utilities.GetHashForLogFile(path); + } + + // https://github.com/dmitrynogin/cdsf/blob/master/Cds.Folders/OSPath.cs + internal class OSPath + { + public static readonly OSPath Empty = ""; + + public static bool IsWindows => DirectorySeparatorChar == '\\'; + + public OSPath(string text) + { + Text = text.Trim(); + } + + public static implicit operator OSPath(string text) => new OSPath(text); + public static implicit operator string(OSPath path) => path.Normalized; + public override string ToString() => Normalized; + + protected string Text { get; } + + public string Normalized => IsWindows ? Windows : Unix; + public string Windows => Text.Replace('/', '\\'); + //public string Unix => Simplified.Text.Replace('\\', '/'); + public string Unix => Text.Replace('\\', '/'); + + public OSPath Relative => Simplified.Text.TrimStart('/', '\\'); + public OSPath Absolute => IsAbsolute ? this : "/" + Relative; + + public bool IsAbsolute => IsRooted || HasVolume; + public bool IsRooted => Text.Length >= 1 && (Text[0] == '/' || Text[0] == '\\'); + public bool HasVolume => Text.Length >= 2 && Text[1] == ':'; + public OSPath Simplified => HasVolume ? Text.Substring(2) : Text; + + public OSPath Parent => GetDirectoryName(Text); + + public bool Contains(OSPath path) => + Normalized.StartsWith(path); + + public static OSPath operator +(OSPath left, OSPath right) => + new OSPath(Combine(left, right.Relative)); + + public static OSPath operator -(OSPath left, OSPath right) => + left.Contains(right) + ? new OSPath(left.Normalized.Substring(right.Normalized.Length)).Relative + : left; + } +} diff --git a/Packages/com.merry-yellow.code-assist/Editor/Logger/CommonTools.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Logger/CommonTools.cs.meta new file mode 100644 index 0000000..88355e2 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Logger/CommonTools.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9066c480a2fcb9940a432377a49262af +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Logger/ELogger.cs b/Packages/com.merry-yellow.code-assist/Editor/Logger/ELogger.cs new file mode 100644 index 0000000..a25de07 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Logger/ELogger.cs @@ -0,0 +1,203 @@ +//using Meryel.UnityCodeAssist.Serilog; +//using Meryel.UnityCodeAssist.Serilog.Core; +using UnityEngine; +using UnityEditor; +using System.Linq; + +#if ELOGGER + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor.Logger +{ + + //[InitializeOnLoad] + public static class ELogger + { + public static event System.Action? OnVsInternalLogChanged; + + + // Change 'new LoggerConfiguration().MinimumLevel.Debug();' if you change these values + const Serilog.Events.LogEventLevel fileMinLevel = Serilog.Events.LogEventLevel.Debug; + const Serilog.Events.LogEventLevel outputWindowMinLevel = Serilog.Events.LogEventLevel.Information; + static LoggingLevelSwitch? fileLevelSwitch, outputWindowLevelSwitch; + + //static bool IsInitialized { get; set; } + + static ILogEventSink? _outputWindowSink; + static ILogEventSink? _memorySink; + + + public static string GetInternalLogContent() => _memorySink == null ? string.Empty : ((MemorySink)_memorySink).Export(); + public static int GetErrorCountInInternalLog() => _memorySink == null ? 0 : ((MemorySink)_memorySink).ErrorCount; + public static int GetWarningCountInInternalLog() => _memorySink == null ? 0 : ((MemorySink)_memorySink).WarningCount; + + public static string? FilePath { get; private set; } + public static string? VSFilePath { get; private set; } + + //**-- make it work with multiple clients + static string? _vsInternalLog; + public static string? VsInternalLog + { + get => _vsInternalLog; + set + { + _vsInternalLog = value; + OnVsInternalLogChanged?.Invoke(); + } + } + + + + static ELogger() + { + var isFirst = false; + const string stateName = "isFirst"; + if (!SessionState.GetBool(stateName, false)) + { + isFirst = true; + SessionState.SetBool(stateName, true); + } + + var projectPath = CommonTools.GetProjectPath(); + var outputWindowSink = new System.Lazy(() => new UnityOutputWindowSink(null)); + + Init(isFirst, projectPath, outputWindowSink); + + if (isFirst) + LogHeader(Application.unityVersion, projectPath); + } + + /// + /// Empty method for invoking static class ctor + /// + public static void Bump() { } + + + static void LogHeader(string unityVersion, string solutionDir) + { + var os = System.Runtime.InteropServices.RuntimeInformation.OSDescription; + var assisterVersion = Assister.Version; + var syncModel = Synchronizer.Model.Utilities.Version; + var hash = CommonTools.GetHashForLogFile(solutionDir); + var port = Synchronizer.Model.Utilities.GetPortForMQTTnet(solutionDir); + Serilog.Log.Debug( + "Beginning logging {OS}, Unity {U}, Unity Code Assist {A}, Communication Protocol {SM}, Project: '{Dir}', Project Hash: {Hash}, Port: {Port}", + os, unityVersion, assisterVersion, syncModel, solutionDir, hash, port); + } + + + + + + + + static string GetFilePath(string solutionDir) + { + var solutionHash = CommonTools.GetHashForLogFile(solutionDir); + var tempDir = System.IO.Path.GetTempPath(); + var fileName = $"UnityCodeAssist_U_Log_{solutionHash}_.TXT"; // hour code will be appended to the end of file, so add a trailing '_' + var filePath = System.IO.Path.Combine(tempDir, fileName); + return filePath; + } + + static string GetVSFilePath(string solutionDir) + { + var solutionHash = CommonTools.GetHashForLogFile(solutionDir); + var tempDir = System.IO.Path.GetTempPath(); +#if MERYEL_UCA_LITE_VERSION + var fileName = $"UnityCodeAssistLite_VS_Log_{solutionHash}_.TXT"; // hour code will be appended to the end of file, so add a trailing '_' +#else + var fileName = $"UnityCodeAssist_VS_Log_{solutionHash}_.TXT"; // hour code will be appended to the end of file, so add a trailing '_' +#endif + var filePath = System.IO.Path.Combine(tempDir, fileName); + return filePath; + } + + + public static void Init(bool isFirst, string solutionDir, System.Lazy outputWindowSink) + { + + FilePath = GetFilePath(solutionDir); + VSFilePath = GetVSFilePath(solutionDir); + + fileLevelSwitch = new LoggingLevelSwitch(fileMinLevel); + outputWindowLevelSwitch = new LoggingLevelSwitch(outputWindowMinLevel); + + var config = new LoggerConfiguration() + .MinimumLevel.Debug() + .Enrich.With(new DomainHashEnricher()); + + const string outputTemplate = "{Timestamp:HH:mm:ss.fff} [U] [{Level:u3}] [{DomainHash}] {Message:lj}{NewLine}{Exception}"; + + config = config.WriteTo.PersistentFile(FilePath + , outputTemplate: outputTemplate + , shared: true + , persistentFileRollingInterval: PersistentFileRollingInterval.Day + , preserveLogFilename: true + , levelSwitch: fileLevelSwitch + , rollOnEachProcessRun: isFirst + ); + + _outputWindowSink ??= outputWindowSink.Value; + if (_outputWindowSink != null) + config = config.WriteTo.Sink(_outputWindowSink, outputWindowMinLevel, outputWindowLevelSwitch); + + _memorySink ??= new MemorySink(outputTemplate); + config = config.WriteTo.Sink(_memorySink, fileMinLevel, null); + + config = config.Destructure.With(new MyDestructuringPolicy()); + + Serilog.Log.Logger = config.CreateLogger(); + //switchableLogger.Set(config.CreateLogger(), disposePrev: true); + + OnOptionsChanged(); + + //IsInitialized = true; + } + + public static void OnOptionsChanged() + { + // Since we don't use LogEventLevel.Fatal, we can use it for disabling sinks + + var isLoggingToFile = OptionsIsLoggingToFile; + var targetFileLevel = isLoggingToFile ? fileMinLevel : Serilog.Events.LogEventLevel.Fatal; + if (fileLevelSwitch != null) + fileLevelSwitch.MinimumLevel = targetFileLevel; + + var isLoggingToOutputWindow = OptionsIsLoggingToOutputWindow; + var targetOutputWindowLevel = isLoggingToOutputWindow ? outputWindowMinLevel : Serilog.Events.LogEventLevel.Fatal; + if (outputWindowLevelSwitch != null) + outputWindowLevelSwitch.MinimumLevel = targetOutputWindowLevel; + } + + //**-- UI for these two + static bool OptionsIsLoggingToFile => true; + static bool OptionsIsLoggingToOutputWindow => true; + } + + public class MyDestructuringPolicy : IDestructuringPolicy + { + // serilog cannot destruct StringArrayContainer by default, so do it manually + public bool TryDestructure(object value, ILogEventPropertyValueFactory propertyValueFactory, [System.Diagnostics.CodeAnalysis.NotNullWhen(true)] out Serilog.Events.LogEventPropertyValue? result) + { + if (value is Synchronizer.Model.StringArrayContainer sac) + { + var items = sac.Container.Select(item => propertyValueFactory.CreatePropertyValue(item, true)); + result = new Serilog.Events.SequenceValue(items); + return true; + } + + result = null; + return false; + } + } +} + +#endif \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/Logger/ELogger.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Logger/ELogger.cs.meta new file mode 100644 index 0000000..54239c3 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Logger/ELogger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ca3b9ef056f0ba843936ff335d12b0a9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Logger/LoggerExtensions.cs b/Packages/com.merry-yellow.code-assist/Editor/Logger/LoggerExtensions.cs new file mode 100644 index 0000000..e652bea --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Logger/LoggerExtensions.cs @@ -0,0 +1,137 @@ +//using Meryel.UnityCodeAssist.Serilog; +//using Meryel.UnityCodeAssist.Serilog.Core; +using UnityEngine; +using UnityEditor; +using System.Linq; + +using Meryel.Serilog; +using Meryel.Serilog.Core; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor.Logger +{ + + //[InitializeOnLoad] + public static class ELogger + { + public static event System.Action? OnVsInternalLogChanged; + + + // Change 'new LoggerConfiguration().MinimumLevel.Debug();' if you change these values + const Serilog.Events.LogEventLevel fileMinLevel = Serilog.Events.LogEventLevel.Debug; + const Serilog.Events.LogEventLevel outputWindowMinLevel = Serilog.Events.LogEventLevel.Information; + static LoggingLevelSwitch? fileLevelSwitch, outputWindowLevelSwitch; + + //static bool IsInitialized { get; set; } + + static ILogEventSink? _outputWindowSink; + static ILogEventSink? _memorySink; + + + public static string GetInternalLogContent() => _memorySink == null ? string.Empty : ((Meryel.UnityCodeAssist.Logger.MemorySink)_memorySink).Export(); + public static int GetErrorCountInInternalLog() => _memorySink == null ? 0 : ((Meryel.UnityCodeAssist.Logger.MemorySink)_memorySink).ErrorCount; + public static int GetWarningCountInInternalLog() => _memorySink == null ? 0 : ((Meryel.UnityCodeAssist.Logger.MemorySink)_memorySink).WarningCount; + + public static string? FilePath => Meryel.UnityCodeAssist.Logger.ELogger.UnityFilePath; + public static string? VSFilePath => Meryel.UnityCodeAssist.Logger.ELogger.VisualStudioFilePath; + + //**-- make it work with multiple clients + static string? _vsInternalLog; + public static string? VsInternalLog + { + get => _vsInternalLog; + set + { + _vsInternalLog = value; + OnVsInternalLogChanged?.Invoke(); + } + } + + + + static ELogger() + { + fileLevelSwitch = null; + outputWindowLevelSwitch = null; + _memorySink = null; + + var isFirst = false; + const string stateName = "isFirst"; + if (!SessionState.GetBool(stateName, false)) + { + isFirst = true; + SessionState.SetBool(stateName, true); + } + + var projectPath = CommonTools.GetProjectPath(); + var outputWindowSink = new System.Lazy(() => new UnityOutputWindowSink(null)); + + Init(isFirst, projectPath, outputWindowSink); + + if (isFirst) + LogHeader(Application.unityVersion, projectPath); + } + + /// + /// Empty method for invoking static class ctor + /// + public static void Bump() { } + + + static void LogHeader(string unityVersion, string solutionDir) + { + var os = System.Runtime.InteropServices.RuntimeInformation.OSDescription; + var assisterVersion = Assister.Version; + var syncModel = Synchronizer.Model.Utilities.Version; + var hash = CommonTools.GetHashForLogFile(solutionDir); + var port = Synchronizer.Model.Utilities.GetPortForMQTTnet(solutionDir); + Serilog.Log.Debug( + "Beginning logging {OS}, Unity {U}, Unity Code Assist {A}, Communication Protocol {SM}, Project: '{Dir}', Project Hash: {Hash}, Port: {Port}", + os, unityVersion, assisterVersion, syncModel, solutionDir, hash, port); + } + + + public static void Init(bool isFirst, string solutionDir, System.Lazy outputWindowSink) + { + //var solutionHash = Common.CommonTools.GetHashOfPath(solutionDir); + var solutionHash = CommonTools.GetHashForLogFile(solutionDir); // dir is osSafePath + _outputWindowSink ??= outputWindowSink.Value; + var sinkWrapper = new System.Lazy(() => _outputWindowSink); + + Meryel.UnityCodeAssist.Logger.ELogger.Init( + UnityCodeAssist.Logger.ELogger.State.FullyInitialized, + UnityCodeAssist.Logger.ELogger.PackagePriority.High, + solutionDir, solutionHash, "UnityCodeAssist", ProjectData.Domain.Unity, + sinkWrapper, null, null, null, null); + } + + public static void OnOptionsChanged() + { + // Since we don't use LogEventLevel.Fatal, we can use it for disabling sinks + + var isLoggingToFile = OptionsIsLoggingToFile; + var targetFileLevel = isLoggingToFile ? fileMinLevel : Serilog.Events.LogEventLevel.Fatal; + if (fileLevelSwitch != null) + fileLevelSwitch.MinimumLevel = targetFileLevel; + + var isLoggingToOutputWindow = OptionsIsLoggingToOutputWindow; + var targetOutputWindowLevel = isLoggingToOutputWindow ? outputWindowMinLevel : Serilog.Events.LogEventLevel.Fatal; + if (outputWindowLevelSwitch != null) + outputWindowLevelSwitch.MinimumLevel = targetOutputWindowLevel; + } + + //**-- UI for these two + static bool OptionsIsLoggingToFile => true; + static bool OptionsIsLoggingToOutputWindow => true; + } + +} + diff --git a/Packages/com.merry-yellow.code-assist/Editor/Logger/LoggerExtensions.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Logger/LoggerExtensions.cs.meta new file mode 100644 index 0000000..bb8bb23 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Logger/LoggerExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 44a33ba3272c55d4fad27588d4bdcb2a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Logger/UnitySink.cs b/Packages/com.merry-yellow.code-assist/Editor/Logger/UnitySink.cs new file mode 100644 index 0000000..14f5091 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Logger/UnitySink.cs @@ -0,0 +1,62 @@ +using System; +using System.Linq; +//using Meryel.UnityCodeAssist.Serilog; +//using Meryel.UnityCodeAssist.Serilog.Core; +//using Meryel.UnityCodeAssist.Serilog.Events; +//using Meryel.UnityCodeAssist.Serilog.Configuration; +using Meryel.Serilog; +using Meryel.Serilog.Core; +using Meryel.Serilog.Events; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor.Logger +{ + public class UnityOutputWindowSink : ILogEventSink + { + private readonly IFormatProvider? _formatProvider; + + public UnityOutputWindowSink(IFormatProvider? formatProvider) + { + _formatProvider = formatProvider; + } + + public void Emit(LogEvent? logEvent) + { + if (logEvent == null) + return; + + var message = logEvent.RenderMessage(_formatProvider, false); + + switch (logEvent.Level) + { + //case LogEventLevel.Verbose: + //case LogEventLevel.Debug: + case LogEventLevel.Information: + UnityEngine.Debug.Log(message); + break; + case LogEventLevel.Warning: + UnityEngine.Debug.LogWarning(message); + break; + case LogEventLevel.Error: + case LogEventLevel.Fatal: + UnityEngine.Debug.LogError(message); + break; + default: + break; + } + } + + public void Dispose() + { + } + } + +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/Logger/UnitySink.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Logger/UnitySink.cs.meta new file mode 100644 index 0000000..23dfe1e --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Logger/UnitySink.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f0cc7f1339aeef54898503bd5cdc51fc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/MQTTnetInitializer.cs b/Packages/com.merry-yellow.code-assist/Editor/MQTTnetInitializer.cs new file mode 100644 index 0000000..a47c273 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/MQTTnetInitializer.cs @@ -0,0 +1,134 @@ +using System; +using UnityEditor; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +using MQTTnet = Meryel.UnityCodeAssist.MQTTnet; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor +{ + //[InitializeOnLoad] + public static class MQTTnetInitializer + { + public static MQTTnetPublisher? Publisher; + + static MQTTnetInitializer() + { + EditorApplication.quitting += EditorApplication_quitting; + AssemblyReloadEvents.beforeAssemblyReload += AssemblyReloadEvents_beforeAssemblyReload; + //AssemblyReloadEvents.afterAssemblyReload += AssemblyReloadEvents_afterAssemblyReload; + + RunOnceOnUpdate(Initialize); + } + + /// + /// Empty method for invoking static class ctor + /// + public static void Bump() { } + + /// + /// false for profiler standalone process + /// + /// + public static bool IsMainUnityEditorProcess() + { +#if UNITY_2020_2_OR_NEWER + if (UnityEditor.AssetDatabase.IsAssetImportWorkerProcess()) + return false; +#elif UNITY_2019_3_OR_NEWER + if (UnityEditor.Experimental.AssetDatabaseExperimental.IsAssetImportWorkerProcess()) + return false; +#endif + +#if UNITY_2021_1_OR_NEWER + if (UnityEditor.MPE.ProcessService.level == UnityEditor.MPE.ProcessLevel.Secondary) + return false; +#elif UNITY_2020_2_OR_NEWER + if (UnityEditor.MPE.ProcessService.level == UnityEditor.MPE.ProcessLevel.Slave) + return false; +#elif UNITY_2020_1_OR_NEWER + if (global::Unity.MPE.ProcessService.level == global::Unity.MPE.ProcessLevel.UMP_SLAVE) + return false; +#endif + + return true; + } + + public static void Initialize() + { + if (!IsMainUnityEditorProcess()) + { + // if try to creaate NetMQ, will recieve AddressAlreadyInUseException during binding + Serilog.Log.Debug("MQTTnet won't initialize on secondary processes"); + return; + } + + Serilog.Log.Debug("MQTTnet initializing"); + + //Serilog.Log.Debug("MQTTnet constructing"); + Publisher = new MQTTnetPublisher(); + + RunOnShutdown(OnShutDown); + Serilog.Log.Debug("MQTTnet initialized"); + } + + private static void OnShutDown() + { + Serilog.Log.Debug("MQTTnet OnShutDown"); + Clear(); + } + + //private static void AssemblyReloadEvents_afterAssemblyReload() + //{ + // Serilog.Log.Debug("MQTTnet AssemblyReloadEvents_afterAssemblyReload"); + //} + + private static void AssemblyReloadEvents_beforeAssemblyReload() + { + Serilog.Log.Debug("MQTTnet AssemblyReloadEvents_beforeAssemblyReload"); + + Clear(); + } + + private static void EditorApplication_quitting() + { + Serilog.Log.Debug("MQTTnet EditorApplication_quitting"); + + Publisher?.SendDisconnect(); + Clear(); + } + + static void Clear() => Publisher?.Clear(); + + + private static void RunOnceOnUpdate(Action action) + { + void callback() + { + EditorApplication.update -= callback; + action(); + } + + EditorApplication.update += callback; + } + + private static void RunOnShutdown(Action action) + { + // Mono on OSX has all kinds of quirks on AppDomain shutdown + //if (!VisualStudioEditor.IsWindows) + //return; +#if !UNITY_EDITOR_WIN + return; +#else + AppDomain.CurrentDomain.DomainUnload += (_, __) => action(); +#endif + + } + } +} diff --git a/Packages/com.merry-yellow.code-assist/Editor/MQTTnetInitializer.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/MQTTnetInitializer.cs.meta new file mode 100644 index 0000000..0b60f0e --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/MQTTnetInitializer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6a503036d3d400042a5d9fdd5564202b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/MQTTnetPublisher.cs b/Packages/com.merry-yellow.code-assist/Editor/MQTTnetPublisher.cs new file mode 100644 index 0000000..caf6a5c --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/MQTTnetPublisher.cs @@ -0,0 +1,926 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.IO; +using UnityEngine; +using UnityEditor; +using System.Threading; +using Task = System.Threading.Tasks.Task; +using Application = UnityEngine.Application; + +using Meryel.UnityCodeAssist.MQTTnet; +using Meryel.UnityCodeAssist.MQTTnet.Server; +using Meryel.UnityCodeAssist.MQTTnet.Protocol; +using Meryel.UnityCodeAssist.MQTTnet.Adapter; +using Meryel.UnityCodeAssist.MQTTnet.Implementations; +using Meryel.UnityCodeAssist.MQTTnet.Diagnostics; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +using MQTTnet = Meryel.UnityCodeAssist.MQTTnet; +using Newtonsoft = Meryel.UnityCodeAssist.Newtonsoft; +#pragma warning restore IDE0005 + + +#nullable enable + + +//**-- +// can also do this for better clear, sometimes it gets locked +// https://answers.unity.com/questions/704066/callback-before-unity-reloads-editor-assemblies.html# + +namespace Meryel.UnityCodeAssist.Editor +{ + public class MQTTnetPublisher : Synchronizer.Model.IProcessor + { + MqttServer? broker; + + CancellationTokenSource? cancellationTokenSource; + + readonly Synchronizer.Model.Manager syncMngr; + + //public readonly List clients; + readonly System.Collections.Concurrent.ConcurrentDictionary _clients; + + public IEnumerable Clients => _clients.Values.Where(c => c.NodeKind != Synchronizer.Model.NodeKind.SemiClient_RoslynAnalyzer.ToString()); + + Synchronizer.Model.Connect? _self; + + Synchronizer.Model.Connect Self => _self!; + + void InitializeSelf() + { + var projectPath = CommonTools.GetProjectPath(); + _self = new Synchronizer.Model.Connect() + { + ModelVersion = Synchronizer.Model.Utilities.Version, + ProjectPath = projectPath, + ProjectName = getProjectName(), + ContactInfo = $"Unity {Application.unityVersion}", + AssemblyVersion = Assister.Version, +#if MERYEL_UCA_LITE_VERSION + LiteOrFull = "Lite", +#else + LiteOrFull = "Full", +#endif + NodeKind = Synchronizer.Model.NodeKind.Server.ToString(), + ClientId = "", + }; + + string getProjectName() + { + string[] s = projectPath.Split('/'); +#pragma warning disable IDE0056 + string projectName = s[s.Length - 1]; +#pragma warning restore IDE0056 + //Logg("project = " + projectName); + return projectName; + } + } + + + public static void LogContext() + { + } + + public MQTTnetPublisher() + { + // LogContext(); + + Serilog.Log.Debug("MQTTnet server initializing, begin"); + + InitializeSelf(); + + _clients = new System.Collections.Concurrent.ConcurrentDictionary(); + syncMngr = new Synchronizer.Model.Manager(this); + + var port = Synchronizer.Model.Utilities.GetPortForMQTTnet(Self!.ProjectPath); + + + // Create the options for our MQTT Broker + MqttServerOptionsBuilder options = new MqttServerOptionsBuilder() + // set endpoint to localhost + .WithDefaultEndpoint() + // port used will be 707 + .WithDefaultEndpointPort(port) + // handler for new connections + //.WithConnectionValidator(OnNewConnection) + // handler for new messages + //.WithApplicationMessageInterceptor(OnNewMessage) + + // disable ipv6 for linux (and possibly macos too), otherwise socket exception is thrown + .WithDefaultEndpointBoundIPV6Address(System.Net.IPAddress.None) + + // for preventing socket ex after server restart https://github.com/dotnet/MQTTnet/issues/494 + // System.Net.Sockets.SocketException (0x80004005): Only one usage of each socket address (protocol/network address/port) is normally permitted. + .WithTlsEndpointReuseAddress() + ; + + IList DefaultServerAdapters = new List() + { + new MqttTcpServerAdapter(), + }; + var logger = new MqttNetNullLogger(); + + + + broker = new MqttServer(options.Build(), DefaultServerAdapters, logger); + + broker.InterceptingPublishAsync += Broker_InterceptingPublishAsync; + broker.ClientDisconnectedAsync += Broker_ClientDisconnectedAsync; + + Serilog.Log.Debug("MQTTnet server initializing, constructed broker, port: {Port}", port); + + try + { + //broker.StartAsync().GetAwaiter().GetResult(); + + var startTask = Task.Run(() => broker.StartAsync()); + if (!startTask.Wait(TimeSpan.FromSeconds(5))) + { + Serilog.Log.Error("MQTTnet broker.StartAsync timed out."); + return; + } + + + Serilog.Log.Debug("MQTTnet server initializing, started broker"); + } + catch (System.Net.Sockets.SocketException socketEx) + { + Serilog.Log.Error(socketEx, "Socket exception"); + LogContext(); + //Serilog.Log.Warning("Socket exception disposing pubSocket"); + //broker.Dispose(); + //broker = null; + return; + } + catch (Exception ex) + { + Serilog.Log.Error(ex, "MQTTnet broker.StartAsync failed."); + return; + } + + + //pubSocket.SendReady += PubSocket_SendReady; + //SendConnect(); + + cancellationTokenSource = new CancellationTokenSource(); + //pullThread = new System.Threading.Thread(async () => await PullAsync(conn.pushPull, pullThreadCancellationTokenSource.Token)); + //pullThread = new System.Threading.Thread(() => InitPull(conn.pushPull, pullTaskCancellationTokenSource.Token)); + //pullThread.Start(); + //Task.Run(() => InitPullAsync()); + + + Serilog.Log.Debug("MQTTnet server initializing, initialized"); + + // need to sleep here, clients will take some time to start subscribing + // https://github.com/zeromq/netmq/issues/482#issuecomment-182200323 + Thread.Sleep(1000); + SendConnect(); + + Serilog.Log.Debug("MQTTnet server initializing, initialized at {port} with {projectPath}", port, Self!.ProjectPath); + } + + private Task Broker_ClientDisconnectedAsync(ClientDisconnectedEventArgs arg) + { + try + { + var removed = _clients.TryRemove(arg.ClientId, out _); + Serilog.Log.Debug("Broker_ClientDisconnectedAsync {ClientId} {Result}", arg.ClientId, removed); + } + catch (Exception ex) + { + Serilog.Log.Error(ex, "async exception at {Location}", nameof(Broker_ClientDisconnectedAsync)); + } + return Task.CompletedTask; + } + + private Task Broker_InterceptingPublishAsync(InterceptingPublishEventArgs arg) + { + try + { + // if server message + if (string.IsNullOrEmpty(arg.ClientId)) + return Task.CompletedTask; + + Serilog.Log.Verbose("mqttnet consume {topic} {content}", arg.ApplicationMessage.Topic, arg.ApplicationMessage.ConvertPayloadToString()); + + var topic = arg.ApplicationMessage.Topic; + var header = topic.Substring(3); // for "cs/" prefix + var content = arg.ApplicationMessage.ConvertPayloadToString(); + + MainThreadDispatcher.Add(() => syncMngr.ProcessMessage(header, content)); + } + catch (Exception ex) + { + Serilog.Log.Error(ex, "async exception at {Location}", nameof(Broker_InterceptingPublishAsync)); + } + + return Task.CompletedTask; + } + + public void Clear() + { + // LogContext(); + + Serilog.Log.Verbose("MQTTnet clearing {HasBroker}", (broker != null)); + + var server = broker; + if (server != null) + { + server.InterceptingPublishAsync -= Broker_InterceptingPublishAsync; + Serilog.Log.Verbose("MQTTnet clearing, removed events"); + } + + cancellationTokenSource?.Cancel(); + cancellationTokenSource = null; + Serilog.Log.Verbose("MQTTnet clearing, cancelled async token"); + + if (server == null) + return; + + // broker?.StopAsync().GetAwaiter().GetResult(); // this line was freezing Unity editor, so calling Task.Run().Wait() instead + try + { + var stopTask = Task.Run(() => server.StopAsync()); + if (!stopTask.Wait(TimeSpan.FromSeconds(5))) // give it five secs to complete + { + Serilog.Log.Error("MQTTnet broker.StopAsync timed out."); + } + } + catch (Exception ex) + { + Serilog.Log.Error(ex, "MQTTnet broker.StopAsync failed."); + } + + Serilog.Log.Verbose("MQTTnet clearing, stopped broker"); + try + { + server.Dispose(); + } + catch (Exception ex) + { + Serilog.Log.Warning(ex, "MQTTnet broker.Dispose failed."); + } + + server = null; + broker = null; + + Serilog.Log.Debug("MQTTnet clearing, cleared"); + } + + string SerializeObject(T obj) + where T : class + { + // Odin cant serialize string arrays, https://github.com/TeamSirenix/odin-serializer/issues/26 + //var buffer = OdinSerializer.SerializationUtility.SerializeValue(obj, OdinSerializer.DataFormat.JSON); + //var str = System.Text.Encoding.UTF8.GetString(buffer, 0, buffer.Length); + + // Newtonsoft works fine, but needs package reference + //var str = Newtonsoft.Json.JsonConvert.SerializeObject(obj); + + // not working + //var str = EditorJsonUtility.ToJson(obj); + + // needs nuget + //System.Text.Json.JsonSerializer; + + //var str = TinyJson.JsonWriter.ToJson(obj); + //var str = Meryel.UnityCodeAssist.ProjectData.LitJson.JsonMapper.ToJson(obj); + var str = Newtonsoft.Json.JsonConvert.SerializeObject(obj); + + return str; + } + + void SendAux(Synchronizer.Model.IMessage message, bool logContent = true) + { + if (message == null) + return; + + SendAux(message.GetType().Name, message, logContent); + } + + void SendAux(string messageType, object content, bool logContent = true) + { + if (logContent) + Serilog.Log.Debug("Publishing {MessageType} {@Content}", messageType, content); + else + Serilog.Log.Debug("Publishing {MessageType}", messageType); + + var publisher = broker; + if (publisher != null) + //publisher.SendMoreFrame(messageType).SendFrame(SerializeObject(content)); + { + var applicationMessage = new MqttApplicationMessageBuilder() + .WithTopic("sc/" + messageType) // sc/ => server->client message + .WithRetainFlag(false) + .WithQualityOfServiceLevel(MqttQualityOfServiceLevel.AtMostOnce) + .WithPayload(SerializeObject(content)) + .Build(); + + //broker?.InjectApplicationMessage(new InjectedMqttApplicationMessage(applicationMessage), cancellationTokenSource?.Token ?? default).GetAwaiter().GetResult(); + broker?.InjectApplicationMessage(new InjectedMqttApplicationMessage(applicationMessage), cancellationTokenSource?.Token ?? default); + } + else + Serilog.Log.Error("Publisher socket is null"); + } + + public void SendConnect() + { + var connect = Self; + + SendAux(connect); + } + + public void SendDisconnect() + { + var disconnect = new Synchronizer.Model.Disconnect() + { + ModelVersion = Self.ModelVersion, + ProjectPath = Self.ProjectPath, + ProjectName = Self.ProjectName, + ContactInfo = Self.ContactInfo, + AssemblyVersion = Self.AssemblyVersion, + LiteOrFull = Self.LiteOrFull, + NodeKind = Self.NodeKind, + ClientId = Self.ClientId, + }; + + SendAux(disconnect); + } + + public void SendConnectionInfo() + { + var connectionInfo = new Synchronizer.Model.ConnectionInfo() + { + ModelVersion = Self.ModelVersion, + ProjectPath = Self.ProjectPath, + ProjectName = Self.ProjectName, + ContactInfo = Self.ContactInfo, + AssemblyVersion = Self.AssemblyVersion, + LiteOrFull = Self.LiteOrFull, + NodeKind = Self.NodeKind, + ClientId = Self.ClientId, + }; + + SendAux(connectionInfo); + } + + public void SendHandshake() + { + var handshake = new Synchronizer.Model.Handshake(); + + SendAux(handshake); + } + + public void SendRequestInternalLog() + { + var requestInternalLog = new Synchronizer.Model.RequestInternalLog(); + + SendAux(requestInternalLog); + } + + public void SendRequestUpdate(string app, string path, bool isInteractive) + { + var requestUpdate = new Synchronizer.Model.RequestUpdate() + { + App = app, + Path = path, + IsInteractive = isInteractive, + }; + + SendAux(requestUpdate); + } + + public void SendInternalLog() + { + var internalLog = new Synchronizer.Model.InternalLog() + { + LogContent = Logger.ELogger.GetInternalLogContent(), + }; + + SendAux(internalLog, logContent: false); + } + + + void SendStringArrayAux(string id, string[] array) + { + var stringArray = new Synchronizer.Model.StringArray() + { + Id = id, + Array = array, + }; + + SendAux(stringArray); + } + + void SendStringArrayContainerAux(params (string id, string[] array)[] container) + { + var stringArrayContainer = new Synchronizer.Model.StringArrayContainer() + { + Container = new Synchronizer.Model.StringArray[container.Length], + }; + + for (int i = 0; i < container.Length; i++) + { + stringArrayContainer.Container[i] = new Synchronizer.Model.StringArray + { + Id = container[i].id, + Array = container[i].array + }; + } + + SendAux(stringArrayContainer); + } + + public void SendTags(string[] tags) => + SendStringArrayAux(Synchronizer.Model.Ids.Tags, tags); + + public void SendLayers(string[] layerNames, string[] layerIndices) + { + SendStringArrayContainerAux( + (Synchronizer.Model.Ids.Layers, layerNames), + (Synchronizer.Model.Ids.LayerIndices, layerIndices)); + } + + public void SendSortingLayers(string[] sortingLayers, string[] sortingLayerIds, string[] sortingLayerValues) + { + SendStringArrayContainerAux( + (Synchronizer.Model.Ids.SortingLayers, sortingLayers), + (Synchronizer.Model.Ids.SortingLayerIds, sortingLayerIds), + (Synchronizer.Model.Ids.SortingLayerValues, sortingLayerValues)); + } + + public void SendRenderingLayers(string[] renderingLayers, string[] renderingLayerIndices) + { + SendStringArrayContainerAux( + (Synchronizer.Model.Ids.RenderingLayers, renderingLayers), + (Synchronizer.Model.Ids.RenderingLayerIndices, renderingLayerIndices)); + } + + public void SendPlayerPrefs(string[] playerPrefKeys, string[] playerPrefValues, + string[] playerPrefStringKeys, string[] playerPrefIntegerKeys, string[] playerPrefFloatKeys) + { + SendStringArrayContainerAux( + (Synchronizer.Model.Ids.PlayerPrefKeys, playerPrefKeys), + (Synchronizer.Model.Ids.PlayerPrefValues, playerPrefValues), + (Synchronizer.Model.Ids.PlayerPrefStringKeys, playerPrefStringKeys), + (Synchronizer.Model.Ids.PlayerPrefIntegerKeys, playerPrefIntegerKeys), + (Synchronizer.Model.Ids.PlayerPrefFloatKeys, playerPrefFloatKeys) + ); + } + + public void SendEditorPrefs(string[] editorPrefKeys, string[] editorPrefValues, + string[] editorPrefStringKeys, string[] editorPrefIntegerKeys, string[] editorPrefFloatKeys, + string[] editorPrefBooleanKeys) + { + SendStringArrayContainerAux( + (Synchronizer.Model.Ids.EditorPrefKeys, editorPrefKeys), + (Synchronizer.Model.Ids.EditorPrefValues, editorPrefValues), + (Synchronizer.Model.Ids.EditorPrefStringKeys, editorPrefStringKeys), + (Synchronizer.Model.Ids.EditorPrefIntegerKeys, editorPrefIntegerKeys), + (Synchronizer.Model.Ids.EditorPrefFloatKeys, editorPrefFloatKeys), + (Synchronizer.Model.Ids.EditorPrefBooleanKeys, editorPrefBooleanKeys) + ); + } + + public void SendInputManager(string[] axisNames, string[] axisInfos, string[] buttonKeys, string[] buttonAxis, string[] joystickNames) + { + SendStringArrayContainerAux( + (Synchronizer.Model.Ids.InputManagerAxes, axisNames), + (Synchronizer.Model.Ids.InputManagerAxisInfos, axisInfos), + (Synchronizer.Model.Ids.InputManagerButtonKeys, buttonKeys), + (Synchronizer.Model.Ids.InputManagerButtonAxis, buttonAxis), + (Synchronizer.Model.Ids.InputManagerJoystickNames, joystickNames) + ); + } + + public void SendSceneList(string[] sceneNames, string[] scenePaths, string[] sceneBuildIndices, + string[] sceneNamesAndPaths, string[] scenePathsAndNames) + { + SendStringArrayContainerAux( + (Synchronizer.Model.Ids.SceneNames, sceneNames), + (Synchronizer.Model.Ids.ScenePaths, scenePaths), + (Synchronizer.Model.Ids.SceneBuildIndices, sceneBuildIndices), + (Synchronizer.Model.Ids.SceneNamesAndPaths, sceneNamesAndPaths), + (Synchronizer.Model.Ids.ScenePathsAndNames, scenePathsAndNames) + ); + } + + public void SendScriptMissing(string component) + { + var scriptMissing = new Synchronizer.Model.ScriptMissing() + { + Component = component, + }; + + SendAux(scriptMissing); + } + + public void SendComponentHumanTrait(string[] bones, string[] muscles) + { + //var humanTrait = new Synchronizer.Model.Components.HumanTrait(); + + var boneIndices = new string[bones.Length]; + var boneNames = new string[bones.Length]; + for (int i = 0; i < bones.Length; i++) + { + boneIndices[i] = i.ToString(); + boneNames[i] = bones[i]; + } + + var muscleIndices = new string[muscles.Length]; + var muscleNames = new string[muscles.Length]; + for (int i = 0; i < muscles.Length; i++) + { + muscleIndices[i] = i.ToString(); + muscleNames[i] = muscles[i]; + } + SendStringArrayContainerAux( + (Synchronizer.Model.Ids.AnimationHumanBones, boneNames), + (Synchronizer.Model.Ids.AnimationHumanBoneIndices, boneIndices), + (Synchronizer.Model.Ids.AnimationHumanMuscles, muscleNames), + (Synchronizer.Model.Ids.AnimationHumanMuscleIndices, muscleIndices) + ); + } + + public void SendShaderGlobalKeywords() + { + SendStringArrayAux(Synchronizer.Model.Ids.ShaderGlobalKeywords, Shader.globalKeywords.Select(k => k.name).ToArray()); + } + + public void SendGameObject(GameObject go) + { + if (!go) + return; + + Serilog.Log.Debug("SendGO: {GoName}", go.name); + + var dataOfSelf = go.ToSyncModel(priority:10000); + if (dataOfSelf != null) + SendAux(dataOfSelf); + + var dataOfHierarchy = go.ToSyncModelOfHierarchy(); + if (dataOfHierarchy != null) + { + foreach (var doh in dataOfHierarchy) + SendAux(doh); + } + + var dataOfComponents = go.ToSyncModelOfComponents(); + if (dataOfComponents != null) + { + foreach (var doc in dataOfComponents) + SendAux(doc); + } + + var dataOfComponentAnimator = go.ToSyncModelOfComponentAnimator(); + if (dataOfComponentAnimator != null) + SendAux(dataOfComponentAnimator); + + var dataOfComponentAnimation = go.ToSyncModelOfComponentAnimation(); + if (dataOfComponentAnimation != null) + SendAux(dataOfComponentAnimation); + + var dataOfComponentMaterial = go.ToSyncModelOfComponentMaterial(); + if (dataOfComponentMaterial != null) + SendAux(dataOfComponentMaterial); + } + + public void SendScriptableObject(ScriptableObject so) + { + Serilog.Log.Debug("SendSO: {SoName}", so.name); + + var dataOfSo = so.ToSyncModel(); + if (dataOfSo != null) + SendAux(dataOfSo); + } + + public void SendAnalyticsEvent(string type, string content) + { + var analyticsEvent = new Synchronizer.Model.AnalyticsEvent() + { + EventType = type, + EventContent = content + }; + SendAux(analyticsEvent); + } + + public void SendErrorReport(string errorMessage, string stack, string type) + { + var errorReport = new Synchronizer.Model.ErrorReport() + { + ErrorMessage = errorMessage, + ErrorStack = stack, + ErrorType = type, + }; + SendAux(errorReport); + } + + public void SendRequestVerboseType(string type, string docPath) + { + var requestVerboseType = new Synchronizer.Model.RequestVerboseType() + { + Type = type, + DocPath = docPath, + }; + SendAux(requestVerboseType); + } + + public void ForwardRelayMessage(Synchronizer.Model.IRelayMessage relayMessage) + { + SendAux(relayMessage); + } + + + string Synchronizer.Model.IProcessor.Serialize(T value) + { + //return System.Text.Json.JsonSerializer.Serialize(value); + //return Newtonsoft.Json.JsonConvert.SerializeObject(value); + return SerializeObject(value); + } + T Synchronizer.Model.IProcessor.Deserialize(string data) + { + //return System.Text.Json.JsonSerializer.Deserialize(data)!; + //return Newtonsoft.Json.JsonConvert.DeserializeObject(data)!; + //return TinyJson.JsonParser.FromJson(data)!; + //return Meryel.UnityCodeAssist.ProjectData.LitJson.JsonMapper.ToObject(data); + return Newtonsoft.Json.JsonConvert.DeserializeObject(data)!; + + //byte[] buffer = System.Text.Encoding.UTF8.GetBytes(data); + //T val = OdinSerializer.SerializationUtility.DeserializeValue(buffer, OdinSerializer.DataFormat.JSON); + //return val; + } + + //**--make sure all Synchronizer.Model.IProcessor.Process methods are thread-safe + + // a new client has connected + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.Connect connect) + { + if (connect.ModelVersion != Self.ModelVersion) + { + Serilog.Log.Error("Version mismatch with {ContactInfo}. Please update your Unity asset and reinstall the Visual Studio/VS Code extension. {ContactModel} != {SelfModel}", connect.ContactInfo, connect.ModelVersion, Self.ModelVersion); + return; + } + + if (connect.ProjectPath != Self.ProjectPath) + { + Serilog.Log.Error("Project mismatch with {ProjectName}. '{ConnectPath}' != '{SelfPath}'", connect.ProjectName, connect.ProjectPath, Self.ProjectPath); + return; + } + + if (!string.IsNullOrEmpty(connect.LiteOrFull) && connect.LiteOrFull != Self.LiteOrFull) + { + if (connect.LiteOrFull == "Lite") + { + //**-- upgrade vsix to full here //**--//**-- + } + } + + var hasClient = _clients.TryGetValue(connect.ClientId, out var client); + if (!hasClient) + _clients[connect.ClientId] = connect; + else + { + // LiteOrFull field might be updated + client.ModelVersion = connect.ModelVersion; + client.ProjectPath = connect.ProjectPath; + client.ProjectName = connect.ProjectName; + client.ContactInfo = connect.ContactInfo; + client.AssemblyVersion = connect.AssemblyVersion; + client.LiteOrFull = connect.LiteOrFull; + client.NodeKind = connect.NodeKind; + client.ClientId = connect.ClientId; + } + + SendHandshake(); + if (ScriptFinder.GetActiveGameObject(out var activeGO)) + SendGameObject(activeGO); + Assister.SendTagsAndLayers(); + } + + // a new client is online and requesting connection + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RequestConnect requestConnect) + { + SendConnect(); + } + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.Disconnect disconnect) + { + var removed = _clients.TryRemove(disconnect.ClientId, out var client); + Serilog.Log.Debug("Synchronizer.Model.Disconnect {ClientId} {Removed}", disconnect.ClientId, removed); + } + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.ConnectionInfo connectionInfo) + { + if (connectionInfo.ModelVersion != Self.ModelVersion) + { + Serilog.Log.Error("Version mismatch with {ContactInfo}. Please update your Unity asset and reinstall the Visual Studio/VS Code extension. {ContactModel} != {SelfModel}", connectionInfo.ContactInfo, connectionInfo.ModelVersion, Self.ModelVersion); + return; + } + + if (connectionInfo.ProjectPath != Self.ProjectPath) + { + Serilog.Log.Error("Project mismatch with {ProjectName}. '{ConnectPath}' != '{SelfPath}'", connectionInfo.ProjectName, connectionInfo.ProjectPath, Self.ProjectPath); + return; + } + + if (!_clients.TryGetValue(connectionInfo.ClientId, out _)) + { + SendConnect(); + } + else + { + SendHandshake(); + if (ScriptFinder.GetActiveGameObject(out var activeGO)) + SendGameObject(activeGO); + Assister.SendTagsAndLayers(); + } + } + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RequestConnectionInfo requestConnectionInfo) + { + SendConnectionInfo(); + } + /* + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.Layers layers) + { + + } + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.Tags tags) + { + + } + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.SortingLayers sortingLayers) + { + + }*/ + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.StringArray stringArray) + { + Serilog.Log.Warning("Unity/Server shouldn't call Synchronizer.Model.IProcessor.Process(Synchronizer.Model.StringArray)"); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.StringArrayContainer stringArrayContainer) + { + Serilog.Log.Warning("Unity/Server shouldn't call Synchronizer.Model.IProcessor.Process(Synchronizer.Model.StringArrayContainer)"); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.GameObject gameObject) + { + Serilog.Log.Warning("Unity/Server shouldn't call Synchronizer.Model.IProcessor.Process(Synchronizer.Model.GameObject)"); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.ComponentData component) + { + Serilog.Log.Warning("Unity/Server shouldn't call Synchronizer.Model.IProcessor.Process(Synchronizer.Model.ComponentData)"); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.Component_Animator component_Animator) + { + Serilog.Log.Warning("Unity/Server shouldn't call Synchronizer.Model.IProcessor.Process(Synchronizer.Model.Component_Animator)"); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.Component_Animation component_Animation) + { + Serilog.Log.Warning("Unity/Server shouldn't call Synchronizer.Model.IProcessor.Process(Synchronizer.Model.Component_Animation)"); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.Component_Material component_Material) + { + Serilog.Log.Warning("Unity/Server shouldn't call Synchronizer.Model.IProcessor.Process(Synchronizer.Model.Component_Material)"); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RequestScript requestScript) + { + if (requestScript.DeclaredTypes == null || requestScript.DeclaredTypes.Length == 0) + return; + + var documentPath = requestScript.DocumentPath; + + foreach (var declaredType in requestScript.DeclaredTypes) + { + if (ScriptFinder.FindInstanceOfType(declaredType, documentPath, out var go, out var so)) + { + if (go != null) + SendGameObject(go); + else if (so != null) + SendScriptableObject(so); + else + Serilog.Log.Warning("Invalid instance of type"); + } + else + { + SendScriptMissing(declaredType); + } + } + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RequestScriptFast requestScriptFast) + { + var documentPath = requestScriptFast.DocumentPath; + + //**--namespace? + var possiblyDeclaredType = Path.GetFileNameWithoutExtension(documentPath); + + if (ScriptFinder.FindInstanceOfType(possiblyDeclaredType, documentPath, out var go, out var so)) + { + if (go != null) + SendGameObject(go); + else if (so != null) + SendScriptableObject(so); + else + Serilog.Log.Warning("Invalid instance of type"); + } + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.ScriptMissing scriptMissing) + { + Serilog.Log.Warning("Unity/Server shouldn't call Synchronizer.Model.IProcessor.Process(Synchronizer.Model.ScriptMissing)"); + } + + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.Handshake handshake) + { + // Do nothing + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RequestInternalLog requestInternalLog) + { + SendInternalLog(); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.InternalLog internalLog) + { + Logger.ELogger.VsInternalLog = internalLog.LogContent; + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.AnalyticsEvent analyticsEvent) + { + Serilog.Log.Warning("Unity/Server shouldn't call Synchronizer.Model.IProcessor.Process(Synchronizer.Model.AnalyticsEvent)"); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.ErrorReport errorReport) + { + Serilog.Log.Warning("Unity/Server shouldn't call Synchronizer.Model.IProcessor.Process(Synchronizer.Model.ErrorReport)"); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RequestVerboseType requestVerboseType) + { + Serilog.Log.Warning("Unity/Server shouldn't call Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RequestVerboseType)"); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RequestLazyLoad requestLazyLoad) + { + Monitor.LazyLoad(requestLazyLoad.Category); + } + + internal Synchronizer.Model.RequestUpdate? DelayedRequestUpdate { get; private set; } + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RequestUpdate requestUpdate) + { + if (requestUpdate.App != "Unity" && requestUpdate.App != "SystemBinariesForDotNetStandard20") + return; + + // cannot import package in play mode, so delay it + if (EditorApplication.isPlayingOrWillChangePlaymode) + { + Serilog.Log.Information("Cannot import package in play mode, please exit play mode to update"); + DelayedRequestUpdate = requestUpdate; + return; + } + DelayedRequestUpdate = null; + + // let unity update the package, don't unzip it, to prevent file already in use and other issues + AssetDatabase.ImportPackage(requestUpdate.Path, requestUpdate.IsInteractive); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RelayDocumentShow relayDocumentShow) + { + ForwardRelayMessage(relayDocumentShow); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RelayDocumentSave relayDocumentSave) + { + ForwardRelayMessage(relayDocumentSave); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RelayDocumentViewportChanged relayDocumentViewportChanged) + { + ForwardRelayMessage(relayDocumentViewportChanged); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RelayLogMessage relayLogMessage) + { + ForwardRelayMessage(relayLogMessage); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RelayUpdateExport relayUpdateExport) + { + ForwardRelayMessage(relayUpdateExport); + } + + void Synchronizer.Model.IProcessor.Process(Synchronizer.Model.RelayAdornmentText relayAdornmentText) + { + ForwardRelayMessage(relayAdornmentText); + } + + } +} + diff --git a/Packages/com.merry-yellow.code-assist/Editor/MQTTnetPublisher.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/MQTTnetPublisher.cs.meta new file mode 100644 index 0000000..4e802af --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/MQTTnetPublisher.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e6bf8bab3f6a9a439b3992693b1fc34 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/MainThreadDispatcher.cs b/Packages/com.merry-yellow.code-assist/Editor/MainThreadDispatcher.cs new file mode 100644 index 0000000..ae50f63 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/MainThreadDispatcher.cs @@ -0,0 +1,45 @@ +using System.Collections; +using System.Collections.Generic; +using System.Collections.Concurrent; +using UnityEngine; +using UnityEditor; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor +{ + + //[InitializeOnLoad] + public static class MainThreadDispatcher + { + readonly static ConcurrentBag actions; + + static MainThreadDispatcher() + { + actions = new ConcurrentBag(); + EditorApplication.update += Update; + } + + /// + /// Empty method for invoking static class ctor + /// + public static void Bump() {} + + static void Update() + { + while (actions.TryTake(out var action)) + { + action.Invoke(); + } + } + + public static void Add(System.Action action) => actions.Add(action); + } +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/MainThreadDispatcher.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/MainThreadDispatcher.cs.meta new file mode 100644 index 0000000..1545893 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/MainThreadDispatcher.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 238ff68bac1bd2a44ad831a256db9cae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/MerryYellow.CodeAssist.Editor.asmdef b/Packages/com.merry-yellow.code-assist/Editor/MerryYellow.CodeAssist.Editor.asmdef new file mode 100644 index 0000000..0d5dd76 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/MerryYellow.CodeAssist.Editor.asmdef @@ -0,0 +1,16 @@ +{ + "name": "MerryYellow.CodeAssist.Editor", + "rootNamespace": "", + "references": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": false, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/MerryYellow.CodeAssist.Editor.asmdef.meta b/Packages/com.merry-yellow.code-assist/Editor/MerryYellow.CodeAssist.Editor.asmdef.meta new file mode 100644 index 0000000..01d3ba9 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/MerryYellow.CodeAssist.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 82ec9ead3f2d6e8488c5717eed8b7cf5 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Monitor.cs b/Packages/com.merry-yellow.code-assist/Editor/Monitor.cs new file mode 100644 index 0000000..55d966f --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Monitor.cs @@ -0,0 +1,332 @@ +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine.SceneManagement; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor +{ + + //[InitializeOnLoad] + public static class Monitor + { + private readonly static string tagManagerFilePath; + private static System.DateTime previousTagManagerLastWrite; + + private static bool isAppFocused; + private static bool isAppFocusedOnTagManager; + + private static int dirtyCounter; + private static readonly Dictionary dirtyDict; + + static Monitor() + { + tagManagerFilePath = CommonTools.GetTagManagerFilePath(); + try + { + previousTagManagerLastWrite = System.IO.File.GetLastWriteTime(tagManagerFilePath); + } + catch (System.Exception ex) + { + Serilog.Log.Debug(ex, "Exception at {Location}", nameof(System.IO.File.GetLastWriteTime)); + } + dirtyDict = new Dictionary(); + dirtyCounter = 0; + + EditorApplication.hierarchyChanged += OnHierarchyChanged; + EditorApplication.update += OnUpdate; + EditorApplication.playModeStateChanged += OnPlayModeStateChanged; + Undo.postprocessModifications += MyPostprocessModificationsCallback; + //Undo.undoRedoPerformed += MyUndoCallback; + Selection.selectionChanged += OnSelectionChanged; + //EditorSceneManager.sceneOpened += EditorSceneManager_sceneOpened; + EditorSceneManager.activeSceneChangedInEditMode += EditorSceneManager_activeSceneChangedInEditMode; + EditorBuildSettings.sceneListChanged += EditorBuildSettings_sceneListChanged; + + Application.logMessageReceived += Application_logMessageReceived; + //System.Threading.Tasks.TaskScheduler.UnobservedTaskException += + } + + private static void EditorBuildSettings_sceneListChanged() + { + OnSceneListChanged(); + } + + private static void OnPlayModeStateChanged(PlayModeStateChange playModeStateChange) + { + if (playModeStateChange != PlayModeStateChange.EnteredEditMode) + return; + + var delayedRequestUpdate = MQTTnetInitializer.Publisher?.DelayedRequestUpdate; + if (delayedRequestUpdate == null) + return; + + var processor = MQTTnetInitializer.Publisher as Synchronizer.Model.IProcessor; + processor?.Process(delayedRequestUpdate); + } + + /// + /// Empty method for invoking static class ctor + /// + public static void Bump() { } + + private static void EditorSceneManager_activeSceneChangedInEditMode(Scene arg0, Scene arg1) + { + //Debug.Log("EditorSceneManager_activeSceneChangedInEditMode"); + OnHierarchyChanged(); + } + + private static void EditorSceneManager_sceneOpened(Scene scene, OpenSceneMode mode) + { + Serilog.Log.Debug("Monitor {Event} scene:{Scene} mode:{Mode}", nameof(EditorSceneManager_sceneOpened), scene.name, mode); + //Debug.Log("EditorSceneManager_sceneOpened"); + OnHierarchyChanged(); + } + + static void OnUpdate() + { + string? currentEditorFocus = null; + if (Selection.activeObject) + currentEditorFocus = Selection.activeObject.GetType().ToString(); + + //**-- use this instead? https://learn.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=net-8.0 + // there is also this approach, but need to check OnUpdate anyways for focus checking, https://github.com/AlkimeeGames/TagLayerTypeGenerator/blob/main/Editor/TypeGenerator.cs#L36 + var currentTagManagerLastWrite = previousTagManagerLastWrite; + try + { + currentTagManagerLastWrite = System.IO.File.GetLastWriteTime(tagManagerFilePath); + } + catch (System.Exception ex) + { + Serilog.Log.Debug(ex, "Exception at {Location}", nameof(System.IO.File.GetLastWriteTime)); + } + if (currentTagManagerLastWrite != previousTagManagerLastWrite) + { + previousTagManagerLastWrite = currentTagManagerLastWrite; + OnTagsOrLayersModified(); + } + else if (currentEditorFocus == "UnityEditor.TagManager") + { + // since unity does not commit changes to the file immediately, checking if user is displaying and focusing on tag manager (tags & layers) inspector + isAppFocusedOnTagManager = true; + } + + + if (isAppFocused != UnityEditorInternal.InternalEditorUtility.isApplicationActive) + { + isAppFocused = UnityEditorInternal.InternalEditorUtility.isApplicationActive; + OnOnUnityEditorFocusChanged(isAppFocused); + //Serilog.Log.Debug("On focus {State}", isAppFocused); + } + } + + static void OnTagsOrLayersModified() + { + Serilog.Log.Debug("Monitor {Event}", nameof(OnTagsOrLayersModified)); + + Assister.SendTagsAndLayers(); + } + + static void OnHierarchyChanged() + { + Serilog.Log.Debug("Monitor {Event}", nameof(OnHierarchyChanged)); + + // For requesting active doc's GO + MQTTnetInitializer.Publisher?.SendHandshake(); + + if (ScriptFinder.GetActiveGameObject(out var activeGO)) + MQTTnetInitializer.Publisher?.SendGameObject(activeGO); + //Assister.SendTagsAndLayers(); Don't send tags & layers here + } + + static void OnSceneListChanged() + { + // link below for scenes which are not on build list, but we can skip this for now, because of performance and needlessness (user probably wont work with it if its not on build list) + // https://gist.github.com/xfleckx/2527f0420fbcc428a8b86be191d8ad96 + + var scenes = EditorBuildSettings.scenes; + var count = scenes.Length; + + string[] buildIndicies = new string[count]; + string[] names = new string[count]; + string[] paths = new string[count]; + string[] namesAndPaths = new string[count * 2]; + string[] pathsAndNames = new string[count * 2]; + + for (int i = 0; i < count; i++) + { + var scene = scenes[i]; + var path = scene.path; + var name = System.IO.Path.GetFileNameWithoutExtension(path); + + buildIndicies[i] = i.ToString(); + names[i] = name; + paths[i] = path; + namesAndPaths[i] = name; + namesAndPaths[i + count] = path; + pathsAndNames[i] = path; + pathsAndNames[i + count] = name; + } + + MQTTnetInitializer.Publisher?.SendSceneList(names, paths, buildIndicies, namesAndPaths, pathsAndNames); + } + + static UndoPropertyModification[] MyPostprocessModificationsCallback(UndoPropertyModification[] modifications) + { + Serilog.Log.Debug("Monitor {Event}", nameof(MyPostprocessModificationsCallback)); + + foreach (var modification in modifications) + { + var target = modification.currentValue?.target; + SetDirty(target); + } + + // here, you can perform processing of the recorded modifications before returning them + return modifications; + } + + //static void MyUndoCallback() + //{ + // Serilog.Log.Debug("Monitor {Event}", nameof(MyUndoCallback)); + // // code for the action to take on Undo + //} + + static void OnOnUnityEditorFocusChanged(bool isFocused) + { + if (!isFocused) + { + if (isAppFocusedOnTagManager) + { + isAppFocusedOnTagManager = false; + OnTagsOrLayersModified(); + } + + OnSelectionChanged(); + FlushAllDirty(); + /* + Serilog.Log.Debug("exporting {Count} objects", selectedObjects.Count); + + //**--if too many + foreach (var obj in selectedObjects) + { + if (obj is GameObject go) + MQTTnetInitializer.Publisher.SendGameObject(go); + } + + selectedObjects.Clear(); + */ + } + } + + static void OnSelectionChanged() + { + + //**--check order, last selected should be sent last as well + //**--limit here, what if too many? + //selectedObjects.UnionWith(Selection.objects); + foreach(var so in Selection.objects) + { + SetDirty(so); + } + } + + public static void SetDirty(Object? obj) + { + if (obj == null) + return; + else if (obj is GameObject go && go) + SetDirty(go); + else if (obj is Component component && component) + //SetDirty(component.gameObject); + { + var componentGo = component.gameObject; + if (componentGo) + SetDirty(componentGo); + } + //else + //;//**--scriptable obj + } + + public static void SetDirty(GameObject go) + { + dirtyCounter++; + dirtyDict[go] = dirtyCounter; + } + + static void FlushAllDirty() + { + // Sending order is important, must send them in the same order as they are added to/modified in the collection + // Using dict instead of hashset because of that. Dict value is used as add/modify order + + var sortedDict = from entry in dirtyDict orderby entry.Value descending select entry; + + foreach (var entry in sortedDict) + { + var go = entry.Key; + MQTTnetInitializer.Publisher?.SendGameObject(go); + } + + dirtyDict.Clear(); + dirtyCounter = 0; + } + + + private static void Application_logMessageReceived(string condition, string stackTrace, LogType type) + { + if (type != LogType.Exception && type != LogType.Error && type != LogType.Warning) + return; + + if (!stackTrace.Contains("Meryel.UnityCodeAssist.Editor")) + return; + + var typeStr = type.ToString(); + + MQTTnetInitializer.Publisher?.SendErrorReport(condition, stackTrace, typeStr); + } + + + public static void LazyLoad(string category) + { + if (category == "PlayerPrefs") + { + Preferences.PreferenceMonitor.InstanceOfPlayerPrefs.Bump(); + } + else if (category == "EditorPrefs") + { + Preferences.PreferenceMonitor.InstanceOfEditorPrefs.Bump(); + } + else if (category == "InputManager") + { + Input.InputManagerMonitor.Instance.Bump(); + } + else if (category == "AnimationHuman") + { + MQTTnetInitializer.Publisher?.SendComponentHumanTrait(HumanTrait.BoneName, HumanTrait.MuscleName); + } + else if (category == "Scene") + { + OnSceneListChanged(); + } + else if (category == "ShaderGlobalKeywords") + { + MQTTnetInitializer.Publisher?.SendShaderGlobalKeywords(); + } + else + { + Serilog.Log.Error("Invalid LazyLoad category {Category}", category); + } + } + } + +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/Monitor.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Monitor.cs.meta new file mode 100644 index 0000000..58ed458 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Monitor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 654d0913b44b86a40bee8394ea8c14cf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Preferences.meta b/Packages/com.merry-yellow.code-assist/Editor/Preferences.meta new file mode 100644 index 0000000..44af078 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Preferences.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 333f5ea2064dca647adfbcef052416bb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceEntryHolder.cs b/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceEntryHolder.cs new file mode 100644 index 0000000..04cf2ea --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceEntryHolder.cs @@ -0,0 +1,65 @@ +using System.Collections.Generic; +using UnityEngine; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +//namespace BgTools.PlayerPrefsEditor +namespace Meryel.UnityCodeAssist.Editor.Preferences +{ + [System.Serializable] + public class PreferenceEntryHolder : ScriptableObject + { + public List? userDefList; + public List? unityDefList; + + private void OnEnable() + { + hideFlags = HideFlags.DontSave; + userDefList ??= new List(); + unityDefList ??= new List(); + } + + public void ClearLists() + { + userDefList?.Clear(); + unityDefList?.Clear(); + } + } + + [System.Serializable] + public class PreferenceEntry + { + public enum PrefTypes + { + String = 0, + Int = 1, + Float = 2 + } + + public PrefTypes m_typeSelection; + public string? m_key; + + // Need diffrend ones for auto type selection of serilizedProerty + public string? m_strValue; + public int m_intValue; + public float m_floatValue; + + public string? ValueAsString() + { + return m_typeSelection switch + { + PrefTypes.String => m_strValue, + PrefTypes.Int => m_intValue.ToString(), + PrefTypes.Float => m_floatValue.ToString(), + _ => string.Empty, + }; + } + } +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceEntryHolder.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceEntryHolder.cs.meta new file mode 100644 index 0000000..1ceda79 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceEntryHolder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b686b7831cfe0ec48b01473fa8a29772 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceMonitor.cs b/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceMonitor.cs new file mode 100644 index 0000000..e5b243a --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceMonitor.cs @@ -0,0 +1,375 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Globalization; +using UnityEditor; +using UnityEngine; +using UnityEditorInternal; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor.Preferences +{ + public class PreferenceMonitor + { + private static readonly Lazy _instanceOfPlayerPrefs = new Lazy(() => new PreferenceMonitor(true)); + private static readonly Lazy _instanceOfEditorPrefs = new Lazy(() => new PreferenceMonitor(false)); + public static PreferenceMonitor InstanceOfPlayerPrefs => _instanceOfPlayerPrefs.Value; + public static PreferenceMonitor InstanceOfEditorPrefs => _instanceOfEditorPrefs.Value; + + //const int Limit = 128; + const int Limit = 8192; + + /// + /// PlayerPrefs or EditorPrefs + /// + readonly bool isPlayerPrefs; + +#region ErrorValues + private readonly int ERROR_VALUE_INT = int.MinValue; + private readonly string ERROR_VALUE_STR = ""; +#endregion //ErrorValues + +#pragma warning disable CS0414 + private static string pathToPrefs = String.Empty; + private static string platformPathPrefix = @"~"; +#pragma warning restore CS0414 + + //private string[] userDef; + //private string[] unityDef; + //private bool showSystemGroup = false; + + private SerializedObject? serializedObject; + private ReorderableList? userDefList; + private ReorderableList? unityDefList; + + private PreferenceEntryHolder? prefEntryHolder; + + private PreferanceStorageAccessor? entryAccessor; + + + private bool updateView = false; + //private bool monitoring = false; + //private bool showLoadingIndicatorOverlay = false; + + +#if UNITY_EDITOR_LINUX + private readonly char[] invalidFilenameChars = { '"', '\\', '*', '/', ':', '<', '>', '?', '|' }; +#elif UNITY_EDITOR_OSX + private readonly char[] invalidFilenameChars = { '$', '%', '&', '\\', '/', ':', '<', '>', '|', '~' }; +#endif + + + + PreferenceMonitor(bool isPlayerPrefs) + { + this.isPlayerPrefs = isPlayerPrefs; + OnEnable(); + EditorApplication.update += Update; + } + + ~PreferenceMonitor() + { + OnDisable(); + } + + public void Bump() + { + Serilog.Log.Debug("Bumping preference {IsPlayerPrefs}", isPlayerPrefs); + + RetrieveAndSendKeysAndValues(false); + } + + private void RetrieveAndSendKeysAndValues(bool reloadKeys) + { + string[]? keys = GetKeys(reloadKeys); + if (keys == null) + return; + string[] values = GetKeyValues(reloadKeys, keys, out var stringKeys, out var integerKeys, out var floatKeys, out var booleanKeys); + + if (isPlayerPrefs) + MQTTnetInitializer.Publisher?.SendPlayerPrefs(keys, values, stringKeys, integerKeys, floatKeys); + else + MQTTnetInitializer.Publisher?.SendEditorPrefs(keys, values, stringKeys, integerKeys, floatKeys, booleanKeys); + } + + private void OnEnable() + { +#if UNITY_EDITOR_WIN + if (isPlayerPrefs) + pathToPrefs = @"SOFTWARE\Unity\UnityEditor\" + PlayerSettings.companyName + @"\" + PlayerSettings.productName; + else + pathToPrefs = @"Software\Unity Technologies\Unity Editor 5.x"; + + platformPathPrefix = @""; + entryAccessor = new WindowsPrefStorage(pathToPrefs); +#elif UNITY_EDITOR_OSX + if (isPlayerPrefs) + pathToPrefs = @"Library/Preferences/com." + MakeValidFileName(PlayerSettings.companyName) + "." + MakeValidFileName(PlayerSettings.productName) + ".plist"; + else + pathToPrefs = @"Library/Preferences/com.unity3d.UnityEditor5.x.plist"; + + platformPathPrefix = @"~"; + entryAccessor = new MacPrefStorage(pathToPrefs); + //entryAccessor.StartLoadingDelegate = () => { showLoadingIndicatorOverlay = true; }; + //entryAccessor.StopLoadingDelegate = () => { showLoadingIndicatorOverlay = false; }; +#elif UNITY_EDITOR_LINUX + if (isPlayerPrefs) + pathToPrefs = @".config/unity3d/" + MakeValidFileName(PlayerSettings.companyName) + "/" + MakeValidFileName(PlayerSettings.productName) + "/prefs"; + else + pathToPrefs = @".local/share/unity3d/prefs"; + + platformPathPrefix = @"~"; + entryAccessor = new LinuxPrefStorage(pathToPrefs); +#else + Serilog.Log.Warning("Undefined Unity Editor platform"); + pathToPrefs = String.Empty; + platformPathPrefix = @"~"; + entryAccessor = null; +#endif + + if (entryAccessor != null) + { + entryAccessor.PrefEntryChangedDelegate = () => { updateView = true; }; + entryAccessor.StartMonitoring(); + } + } + + // Handel view updates for monitored changes + // Necessary to avoid main thread access issue + private void Update() + { + if (updateView) + { + updateView = false; + //PrepareData(); + //Repaint(); + + Serilog.Log.Debug("Updating preference {IsPlayerPrefs}", isPlayerPrefs); + + RetrieveAndSendKeysAndValues(true); + } + } + + private void OnDisable() + { + entryAccessor?.StopMonitoring(); + } + + private void InitReorderedList() + { + if (prefEntryHolder == null) + { + var tmp = Resources.FindObjectsOfTypeAll(); + if (tmp.Length > 0) + { + prefEntryHolder = tmp[0]; + } + else + { + prefEntryHolder = ScriptableObject.CreateInstance(); + } + } + + + serializedObject ??= new SerializedObject(prefEntryHolder); + + userDefList = new ReorderableList(serializedObject, serializedObject.FindProperty("userDefList"), false, true, true, true); + unityDefList = new ReorderableList(serializedObject, serializedObject.FindProperty("unityDefList"), false, true, false, false); + + } + + + + + private string[]? GetKeys(bool reloadKeys) + { + if (entryAccessor == null) + { + Serilog.Log.Warning($"{nameof(entryAccessor)} is null"); + return null; + } + + string[] keys = entryAccessor.GetKeys(reloadKeys); + + if (keys.Length > Limit) + keys = keys.Where(k => !k.StartsWith("unity.") && !k.StartsWith("UnityGraphicsQuality")).Take(Limit).ToArray(); + + return keys; + } + + string[]? _cachedKeyValues = null; + + string[]? _cachedStringKeys = null; + string[]? _cachedIntegerKeys = null; + string[]? _cachedFloatKeys = null; + string[]? _cachedBooleanKeys = null; + + private string[] GetKeyValues(bool reloadData, string[] keys, + out string[] stringKeys, out string[] integerKeys, out string[] floatKeys, out string[] booleanKeys) + { + if (!reloadData && _cachedKeyValues != null && _cachedKeyValues.Length == keys.Length) + { + stringKeys = _cachedStringKeys!; + integerKeys = _cachedIntegerKeys!; + floatKeys = _cachedFloatKeys!; + booleanKeys = _cachedBooleanKeys!; + return _cachedKeyValues; + } + + string[] values = new string[keys.Length]; + var stringKeyList = new List(); + var integerKeyList = new List(); + var floatKeyList = new List(); + var boolenKeyList = new List(); + + for (int i = 0; i < keys.Length; i++) + { + var key = keys[i]; + + string stringValue; + if (isPlayerPrefs) + stringValue = PlayerPrefs.GetString(key, ERROR_VALUE_STR); + else + stringValue = EditorPrefs.GetString(key, ERROR_VALUE_STR); + + if (stringValue != ERROR_VALUE_STR) + { + values[i] = stringValue; + stringKeyList.Add(key); + continue; + } + + float floatValue; + if (isPlayerPrefs) + floatValue = PlayerPrefs.GetFloat(key, float.NaN); + else + floatValue = EditorPrefs.GetFloat(key, float.NaN); + + if (!float.IsNaN(floatValue)) + { + values[i] = floatValue.ToString(); + floatKeyList.Add(key); + continue; + } + + int intValue; + if (isPlayerPrefs) + intValue = PlayerPrefs.GetInt(key, ERROR_VALUE_INT); + else + intValue = EditorPrefs.GetInt(key, ERROR_VALUE_INT); + + if (intValue != ERROR_VALUE_INT) + { + values[i] = intValue.ToString(); + integerKeyList.Add(key); + continue; + } + + bool boolValue = false; + if (!isPlayerPrefs) + { + bool boolValueTrue = EditorPrefs.GetBool(key, true); + bool boolValueFalse = EditorPrefs.GetBool(key, false); + + boolValue = boolValueFalse; + if (boolValueTrue == boolValueFalse) + { + values[i] = boolValueTrue.ToString(); + boolenKeyList.Add(key); + continue; + } + } + + values[i] = string.Empty; + if (isPlayerPrefs) + { + // Keys with ? causing problems, just ignore them + if (key.Contains("?")) + Serilog.Log.Debug("Invalid {PreferenceType} KEY WITH '?', '{Key}' at {Location}, str:{StringValue}, int:{IntegerValue}, float:{FloatValue}, bool:{BooleanValue}", + (isPlayerPrefs ? "PlayerPrefs" : "EditorPrefs"), key, nameof(GetKeyValues), + stringValue, intValue, floatValue, boolValue); + + else + // EditorPrefs gives error for some keys + Serilog.Log.Error("Invalid {PreferenceType} '{Key}' at {Location}, str:{StringValue}, int:{IntegerValue}, float:{FloatValue}, bool:{BooleanValue}", + (isPlayerPrefs ? "PlayerPrefs" : "EditorPrefs"), key, nameof(GetKeyValues), + stringValue, intValue, floatValue, boolValue); + } + } + + stringKeys = stringKeyList.ToArray(); + integerKeys = integerKeyList.ToArray(); + floatKeys = floatKeyList.ToArray(); + booleanKeys = boolenKeyList.ToArray(); + + _cachedKeyValues = values; + + _cachedStringKeys = stringKeys; + _cachedIntegerKeys = integerKeys; + _cachedFloatKeys = floatKeys; + _cachedBooleanKeys = booleanKeys; + + return values; + } + + private void LoadKeys(out string[]? userDef, out string[]? unityDef, bool reloadKeys) + { + if(entryAccessor == null) + { + userDef = null; + unityDef = null; + return; + } + + string[] keys = entryAccessor.GetKeys(reloadKeys); + + //keys.ToList().ForEach( e => { Debug.Log(e); } ); + + // Seperate keys int unity defined and user defined + Dictionary> groups = keys + .GroupBy((key) => key.StartsWith("unity.") || key.StartsWith("UnityGraphicsQuality")) + .ToDictionary((g) => g.Key, (g) => g.ToList()); + + unityDef = (groups.ContainsKey(true)) ? groups[true].ToArray() : new string[0]; + userDef = (groups.ContainsKey(false)) ? groups[false].ToArray() : new string[0]; + } + + +#if (UNITY_EDITOR_LINUX || UNITY_EDITOR_OSX) + private string MakeValidFileName(string unsafeFileName) + { + string normalizedFileName = unsafeFileName.Trim().Normalize(NormalizationForm.FormD); + StringBuilder stringBuilder = new StringBuilder(); + + // We need to use a TextElementEmumerator in order to support UTF16 characters that may take up more than one char(case 1169358) + TextElementEnumerator charEnum = StringInfo.GetTextElementEnumerator(normalizedFileName); + while (charEnum.MoveNext()) + { + string c = charEnum.GetTextElement(); + if (c.Length == 1 && invalidFilenameChars.Contains(c[0])) + { + stringBuilder.Append('_'); + continue; + } + UnicodeCategory unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c, 0); + if (unicodeCategory != UnicodeCategory.NonSpacingMark) + stringBuilder.Append(c); + } + return stringBuilder.ToString().Normalize(NormalizationForm.FormC); + } +#endif + + } + + +} diff --git a/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceMonitor.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceMonitor.cs.meta new file mode 100644 index 0000000..7a9c9ca --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceMonitor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d848223c4ab636544a7b13aeffa72434 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceStorageAccessor.cs b/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceStorageAccessor.cs new file mode 100644 index 0000000..12f553d --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceStorageAccessor.cs @@ -0,0 +1,292 @@ +using System; +using System.Linq; + +#if UNITY_EDITOR_WIN +using Microsoft.Win32; +using System.Text; +#elif UNITY_EDITOR_OSX +using System.Diagnostics; +using System.IO; +using System.Text.RegularExpressions; +#elif UNITY_EDITOR_LINUX +using System.IO; +using System.Xml; +using System.Xml.Linq; +#endif + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +//namespace BgTools.PlayerPrefsEditor +namespace Meryel.UnityCodeAssist.Editor.Preferences +{ + public abstract class PreferanceStorageAccessor + { + protected string prefPath; + protected string[] cachedData = new string[0]; + + protected abstract void FetchKeysFromSystem(); + + protected PreferanceStorageAccessor(string pathToPrefs) + { + prefPath = pathToPrefs; + } + + public string[] GetKeys(bool reloadData = true) + { + if (reloadData || cachedData.Length == 0) + { + FetchKeysFromSystem(); + } + + return cachedData; + } + + public Action? PrefEntryChangedDelegate; + protected bool ignoreNextChange = false; + + public void IgnoreNextChange() + { + ignoreNextChange = true; + } + + protected virtual void OnPrefEntryChanged() + { + if (ignoreNextChange) + { + ignoreNextChange = false; + return; + } + + PrefEntryChangedDelegate?.Invoke(); + } + + public Action? StartLoadingDelegate; + public Action? StopLoadingDelegate; + + public abstract void StartMonitoring(); + public abstract void StopMonitoring(); + public abstract bool IsMonitoring(); + } + +#if UNITY_EDITOR_WIN + + public class WindowsPrefStorage : PreferanceStorageAccessor + { + readonly RegistryMonitor monitor; + + public WindowsPrefStorage(string pathToPrefs) : base(pathToPrefs) + { + monitor = new RegistryMonitor(RegistryHive.CurrentUser, prefPath); + monitor.RegChanged += new EventHandler(OnRegChanged); + } + + private void OnRegChanged(object sender, EventArgs e) + { + OnPrefEntryChanged(); + } + + protected override void FetchKeysFromSystem() + { + cachedData = new string[0]; + + using (RegistryKey rootKey = Registry.CurrentUser.OpenSubKey(prefPath)) + { + if (rootKey != null) + { + cachedData = rootKey.GetValueNames(); + rootKey.Close(); + } + } + + // Clean _h3320113488 nameing + //cachedData = cachedData.Select((key) => { return key.Substring(0, key.LastIndexOf("_h", StringComparison.Ordinal)); }).ToArray(); + for (int i = 0; i < cachedData.Length; i++) + { + var indexOfSuffix = cachedData[i].LastIndexOf("_h", StringComparison.Ordinal); + if (indexOfSuffix >= 0) + cachedData[i] = cachedData[i].Substring(0, indexOfSuffix); + } + + EncodeAnsiInPlace(); + } + + public override void StartMonitoring() + { + monitor.Start(); + } + + public override void StopMonitoring() + { + monitor.Stop(); + } + + public override bool IsMonitoring() + { + return monitor.IsMonitoring; + } + + private void EncodeAnsiInPlace() + { + Encoding utf8 = Encoding.UTF8; + Encoding ansi = Encoding.GetEncoding(1252); + + for (int i = 0; i < cachedData.Length; i++) + { + cachedData[i] = utf8.GetString(ansi.GetBytes(cachedData[i])); + } + } + } + +#elif UNITY_EDITOR_LINUX + + public class LinuxPrefStorage : PreferanceStorageAccessor + { + readonly FileSystemWatcher fileWatcher; + + public LinuxPrefStorage(string pathToPrefs) : base(Path.Combine(Environment.GetEnvironmentVariable("HOME"), pathToPrefs)) + { + fileWatcher = new FileSystemWatcher + { + Path = Path.GetDirectoryName(prefPath), + NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite, + Filter = "prefs" + }; + + fileWatcher.Changed += OnWatchedFileChanged; + } + + protected override void FetchKeysFromSystem() + { + cachedData = new string[0]; + + if (File.Exists(prefPath)) + { + XmlReaderSettings settings = new XmlReaderSettings(); + XmlReader reader = XmlReader.Create(prefPath, settings); + + XDocument doc = XDocument.Load(reader); + + cachedData = doc.Element("unity_prefs").Elements().Select((e) => e.Attribute("name").Value).ToArray(); + } + } + + public override void StartMonitoring() + { + fileWatcher.EnableRaisingEvents = true; + } + + public override void StopMonitoring() + { + fileWatcher.EnableRaisingEvents = false; + } + + public override bool IsMonitoring() + { + return fileWatcher.EnableRaisingEvents; + } + + private void OnWatchedFileChanged(object source, FileSystemEventArgs e) + { + OnPrefEntryChanged(); + } + } + +#elif UNITY_EDITOR_OSX + + public class MacPrefStorage : PreferanceStorageAccessor + { + private readonly FileSystemWatcher fileWatcher; + private readonly DirectoryInfo prefsDirInfo; + private readonly String prefsFileNameWithoutExtension; + + public MacPrefStorage(string pathToPrefs) : base(Path.Combine(Environment.GetEnvironmentVariable("HOME"), pathToPrefs)) + { + prefsDirInfo = new DirectoryInfo(Path.GetDirectoryName(prefPath)); + prefsFileNameWithoutExtension = Path.GetFileNameWithoutExtension(prefPath); + + fileWatcher = new FileSystemWatcher + { + Path = Path.GetDirectoryName(prefPath), + NotifyFilter = NotifyFilters.LastWrite, + Filter = Path.GetFileName(prefPath) + }; + + // MAC delete the old and create a new file instead of updating + fileWatcher.Created += OnWatchedFileChanged; + } + + protected override void FetchKeysFromSystem() + { + // Workaround to avoid incomplete tmp phase from MAC OS + foreach (FileInfo info in prefsDirInfo.GetFiles()) + { + // Check if tmp PlayerPrefs file exist + if (info.FullName.Contains(prefsFileNameWithoutExtension) && !info.FullName.EndsWith(".plist")) + { + StartLoadingDelegate?.Invoke(); + return; + } + } + StopLoadingDelegate?.Invoke(); + + cachedData = new string[0]; + + if (File.Exists(prefPath)) + { + string fixedPrefsPath = prefPath.Replace("\"", "\\\"").Replace("'", "\\'").Replace("`", "\\`"); + var cmdStr = string.Format(@"-p '{0}'", fixedPrefsPath); + + string stdOut = String.Empty; + string errOut = String.Empty; + + var process = new System.Diagnostics.Process(); + process.StartInfo.UseShellExecute = false; + process.StartInfo.FileName = "plutil"; + process.StartInfo.Arguments = cmdStr; + process.StartInfo.RedirectStandardOutput = true; + process.StartInfo.RedirectStandardError = true; + process.OutputDataReceived += new DataReceivedEventHandler((sender, evt) => { stdOut += evt.Data + "\n"; }); + process.ErrorDataReceived += new DataReceivedEventHandler((sender, evt) => { errOut += evt.Data + "\n"; }); + + process.Start(); + + process.BeginOutputReadLine(); + process.BeginErrorReadLine(); + + process.WaitForExit(); + + MatchCollection matches = Regex.Matches(stdOut, @"(?: "")(.*)(?:"" =>.*)"); + cachedData = matches.Cast().Select((e) => e.Groups[1].Value).ToArray(); + } + } + + public override void StartMonitoring() + { + fileWatcher.EnableRaisingEvents = true; + } + + public override void StopMonitoring() + { + fileWatcher.EnableRaisingEvents = false; + } + + public override bool IsMonitoring() + { + return fileWatcher.EnableRaisingEvents; + } + + private void OnWatchedFileChanged(object source, FileSystemEventArgs e) + { + OnPrefEntryChanged(); + } + + } +#endif +} diff --git a/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceStorageAccessor.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceStorageAccessor.cs.meta new file mode 100644 index 0000000..9880da9 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Preferences/PreferenceStorageAccessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ca73981befbec034a8f1b31535ef8b7d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Preferences/RegistryMonitor.cs b/Packages/com.merry-yellow.code-assist/Editor/Preferences/RegistryMonitor.cs new file mode 100644 index 0000000..cd50d08 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Preferences/RegistryMonitor.cs @@ -0,0 +1,339 @@ + +/* + * Thanks to gr0ss for the inspiration. + * + * https://github.com/gr0ss/RegistryMonitor + * + * 11/08/2019 + */ + +using System; +using System.ComponentModel; +using System.IO; +using System.Threading; +using System.Runtime.InteropServices; +using Microsoft.Win32; + +//namespace BgTools.PlayerPrefsEditor +namespace Meryel.UnityCodeAssist.Editor.Preferences +{ + public class RegistryMonitor : IDisposable + { + #region P/Invoke + + [DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)] + private static extern int RegOpenKeyEx(IntPtr hKey, string subKey, uint options, int samDesired, out IntPtr phkResult); + + [DllImport("advapi32.dll", SetLastError = true)] + private static extern int RegNotifyChangeKeyValue(IntPtr hKey, bool bWatchSubtree, RegChangeNotifyFilter dwNotifyFilter, IntPtr hEvent, bool fAsynchronous); + + [DllImport("advapi32.dll", SetLastError = true)] + private static extern int RegCloseKey(IntPtr hKey); + + private const int KEY_QUERY_VALUE = 0x0001; + private const int KEY_NOTIFY = 0x0010; + private const int STANDARD_RIGHTS_READ = 0x00020000; + + private static readonly IntPtr HKEY_CLASSES_ROOT = new IntPtr(unchecked((int)0x80000000)); + private static readonly IntPtr HKEY_CURRENT_USER = new IntPtr(unchecked((int)0x80000001)); + private static readonly IntPtr HKEY_LOCAL_MACHINE = new IntPtr(unchecked((int)0x80000002)); + private static readonly IntPtr HKEY_USERS = new IntPtr(unchecked((int)0x80000003)); + private static readonly IntPtr HKEY_PERFORMANCE_DATA = new IntPtr(unchecked((int)0x80000004)); + private static readonly IntPtr HKEY_CURRENT_CONFIG = new IntPtr(unchecked((int)0x80000005)); + private static readonly IntPtr HKEY_DYN_DATA = new IntPtr(unchecked((int)0x80000006)); + + #endregion + + #region Event handling + + /// + /// Occurs when the specified registry key has changed. + /// + public event EventHandler RegChanged; + + /// + /// Raises the event. + /// + /// + ///

+ /// OnRegChanged is called when the specified registry key has changed. + ///

+ /// + /// When overriding in a derived class, be sure to call + /// the base class's method. + /// + ///
+ protected virtual void OnRegChanged() + { + RegChanged?.Invoke(this, null); + } + + /// + /// Occurs when the access to the registry fails. + /// + public event ErrorEventHandler Error; + + /// + /// Raises the event. + /// + /// The which occured while watching the registry. + /// + ///

+ /// OnError is called when an exception occurs while watching the registry. + ///

+ /// + /// When overriding in a derived class, be sure to call + /// the base class's method. + /// + ///
+ protected virtual void OnError(Exception e) + { + Error?.Invoke(this, new ErrorEventArgs(e)); + } + + #endregion + + #region Private member variables + + private IntPtr _registryHive; + private string _registrySubName; + private readonly object _threadLock = new object(); + private Thread _thread; + private bool _disposed = false; + private readonly ManualResetEvent _eventTerminate = new ManualResetEvent(false); + + private RegChangeNotifyFilter _regFilter = RegChangeNotifyFilter.Key | RegChangeNotifyFilter.Attribute | RegChangeNotifyFilter.Value | RegChangeNotifyFilter.Security; + + #endregion + + /// + /// Initializes a new instance of the class. + /// + /// The registry key to monitor. + public RegistryMonitor(RegistryKey registryKey) + { + InitRegistryKey(registryKey.Name); + } + + /// + /// Initializes a new instance of the class. + /// + /// The name. + public RegistryMonitor(string name) + { + if (name == null || name.Length == 0) + throw new ArgumentNullException("name"); + + InitRegistryKey(name); + } + + /// + /// Initializes a new instance of the class. + /// + /// The registry hive. + /// The sub key. + public RegistryMonitor(RegistryHive registryHive, string subKey) + { + InitRegistryKey(registryHive, subKey); + } + + /// + /// Disposes this object. + /// + public void Dispose() + { + Stop(); + _disposed = true; + GC.SuppressFinalize(this); + } + + /// + /// Gets or sets the RegChangeNotifyFilter. + /// + public RegChangeNotifyFilter RegChangeNotifyFilter + { + get { return _regFilter; } + set + { + lock (_threadLock) + { + if (IsMonitoring) + throw new InvalidOperationException("Monitoring thread is already running"); + + _regFilter = value; + } + } + } + + #region Initialization + + private void InitRegistryKey(RegistryHive hive, string name) + { + _registryHive = hive switch + { + RegistryHive.ClassesRoot => HKEY_CLASSES_ROOT, + RegistryHive.CurrentConfig => HKEY_CURRENT_CONFIG, + RegistryHive.CurrentUser => HKEY_CURRENT_USER, + RegistryHive.DynData => HKEY_DYN_DATA, + RegistryHive.LocalMachine => HKEY_LOCAL_MACHINE, + RegistryHive.PerformanceData => HKEY_PERFORMANCE_DATA, + RegistryHive.Users => HKEY_USERS, + _ => throw new InvalidEnumArgumentException("hive", (int)hive, typeof(RegistryHive)), + }; + _registrySubName = name; + } + + private void InitRegistryKey(string name) + { + string[] nameParts = name.Split('\\'); + + switch (nameParts[0]) + { + case "HKEY_CLASSES_ROOT": + case "HKCR": + _registryHive = HKEY_CLASSES_ROOT; + break; + + case "HKEY_CURRENT_USER": + case "HKCU": + _registryHive = HKEY_CURRENT_USER; + break; + + case "HKEY_LOCAL_MACHINE": + case "HKLM": + _registryHive = HKEY_LOCAL_MACHINE; + break; + + case "HKEY_USERS": + _registryHive = HKEY_USERS; + break; + + case "HKEY_CURRENT_CONFIG": + _registryHive = HKEY_CURRENT_CONFIG; + break; + + default: + _registryHive = IntPtr.Zero; + throw new ArgumentException("The registry hive '" + nameParts[0] + "' is not supported", "value"); + } + + _registrySubName = String.Join("\\", nameParts, 1, nameParts.Length - 1); + } + + #endregion + + /// + /// true if this object is currently monitoring; + /// otherwise, false. + /// + public bool IsMonitoring + { + get { return _thread != null; } + } + + /// + /// Start monitoring. + /// + public void Start() + { + if (_disposed) + throw new ObjectDisposedException(null, "This instance is already disposed"); + + lock (_threadLock) + { + if (!IsMonitoring) + { + _eventTerminate.Reset(); + _thread = new Thread(new ThreadStart(MonitorThread)) { IsBackground = true }; + _thread.Start(); + } + } + } + + /// + /// Stops the monitoring thread. + /// + public void Stop() + { + if (_disposed) + throw new ObjectDisposedException(null, "This instance is already disposed"); + + lock (_threadLock) + { + Thread thread = _thread; + if (thread != null) + { + _eventTerminate.Set(); + thread.Join(); + } + } + } + + private void MonitorThread() + { + try + { + ThreadLoop(); + } + catch (Exception e) + { + OnError(e); + } + _thread = null; + } + + private void ThreadLoop() + { + int result = RegOpenKeyEx(_registryHive, _registrySubName, 0, STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_NOTIFY, out IntPtr registryKey); + if (result != 0) + { + throw new Win32Exception(result); + } + + try + { + AutoResetEvent _eventNotify = new AutoResetEvent(false); + WaitHandle[] waitHandles = new WaitHandle[] { _eventNotify, _eventTerminate }; + while (!_eventTerminate.WaitOne(0, true)) + { + result = RegNotifyChangeKeyValue(registryKey, true, _regFilter, _eventNotify.SafeWaitHandle.DangerousGetHandle(), true); + if (result != 0) + { + throw new Win32Exception(result); + } + + if (WaitHandle.WaitAny(waitHandles) == 0) + { + OnRegChanged(); + } + } + } + finally + { + if (registryKey != IntPtr.Zero) + { + RegCloseKey(registryKey); + } + } + } + } + + /// + /// Filter for notifications reported by . + /// + [Flags] + public enum RegChangeNotifyFilter + { + /// Notify the caller if a subkey is added or deleted. + Key = 1, + /// Notify the caller of changes to the attributes of the key, + /// such as the security descriptor information. + Attribute = 2, + /// Notify the caller of changes to a value of the key. This can + /// include adding or deleting a value, or changing an existing value. + Value = 4, + /// Notify the caller of changes to the security descriptor + /// of the key. + Security = 8, + } +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/Preferences/RegistryMonitor.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Preferences/RegistryMonitor.cs.meta new file mode 100644 index 0000000..4ce6770 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Preferences/RegistryMonitor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fe045212b5ab43f4d9860e1fb03b686b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/ScriptFinder.cs b/Packages/com.merry-yellow.code-assist/Editor/ScriptFinder.cs new file mode 100644 index 0000000..1a78f5c --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/ScriptFinder.cs @@ -0,0 +1,309 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Reflection; +using System.Linq; +using UnityEngine; +using UnityEditor; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor +{ + + public class ScriptFinder //: MonoBehaviour + { + + internal static Type? GetType123(string typeName) + { + //**-- + //**-- + /* + * for performance, + * check assembly-csharp, assembly-csharp-editor, assembly-csharp-first-pass,assembly-csharp-editor-first-pass + * first, (then maybe asmdef dlls), then check mscorlib and other referenced dlls + */ + + + //**--use typecache??? + //TypeCache + + //**--check this again + //https://github.com/Unity-Technologies/SuperScience/blob/main/Editor/GlobalNamespaceWatcher.cs + + // Try Type.GetType() first. This will work with types defined + // by the Mono runtime, in the same assembly as the caller, etc. + Type type = Type.GetType(typeName); + + // If it worked, then we're done here + if (type != null) + { + return type; + } + + // Attempt to search for type on the loaded assemblies + Assembly[] currentAssemblies = AppDomain.CurrentDomain.GetAssemblies(); + foreach (Assembly assembly in currentAssemblies) + { + type = assembly.GetType(typeName); + if (type != null) + { + return type; + } + } + + // If we still haven't found the proper type, we can enumerate all of the + // loaded assemblies and see if any of them define the type + var currentAssembly = Assembly.GetExecutingAssembly(); + var referencedAssemblies = currentAssembly.GetReferencedAssemblies(); + foreach (var assemblyName in referencedAssemblies) + { + // Load the referenced assembly + var assembly = Assembly.Load(assemblyName); + if (assembly != null) + { + // See if that assembly defines the named type + type = assembly.GetType(typeName); + if (type != null) + { + return type; + } + } + } + + // The type just couldn't be found... + return null; + } + + public static bool FindInstanceOfType(string typeName, string docPath, out GameObject? gameObjectInstanceOfType, out ScriptableObject? scriptableObjectInstanceOfType) + { + gameObjectInstanceOfType = null; + scriptableObjectInstanceOfType = null; + + var type = GetType123(typeName); + + if (type == null) + { + // Possibly a class has been created in Visual Studio, and these changes are not reflected in Unity domain yet + // We can force Unity to recompile and get the type, but since there will be no instance of that type, it won't be of any use, will be just a performance burden + Serilog.Log.Debug("{Type} type couldn't be found", typeName); + return false; + } + + + var obj = GetObjectOfType(type, out var requestVerboseType); + if (requestVerboseType) + MQTTnetInitializer.Publisher?.SendRequestVerboseType(typeName, docPath); + + if (obj != null && obj is GameObject go) + { + gameObjectInstanceOfType = go; + return true; + } + else if (obj != null && obj is ScriptableObject so) + { + scriptableObjectInstanceOfType = so; + return true; + } + + Serilog.Log.Debug("Instance of {Type} type couldn't be found", typeName); + return false; + } + + static UnityEngine.Object? GetObjectOfType(Type type, out bool requestVerboseType) + { + requestVerboseType = false; + var isMonoBehaviour = type.IsSubclassOf(typeof(MonoBehaviour)); + var isScriptableObject = type.IsSubclassOf(typeof(ScriptableObject)); + + if (!isMonoBehaviour && !isScriptableObject) + { + // Possibly a class's base class changed from none to MonoBehaviour in Visual Studio, and these changes are not reflected in Unity domain yet + // We can force Unity to recompile and get the type correctly, but since there will be no instance of that type, it won't be of any use, will be just a performance burden + Serilog.Log.Debug("{Type} is not a valid Unity object", type.ToString()); + //requestVerboseType = true; + return null; + } + + UnityEngine.Object? obj; + + obj = getObjectToSend(Selection.activeGameObject, type); + if (obj != null) + return obj; + + + obj = getObjectToSend(Selection.activeTransform, type); + if (obj != null) + return obj; + + + obj = getObjectToSend(Selection.activeObject, type); + if (obj != null) + return obj; + + + //**--check source code of this, for sorting + var filteredArray = Selection.GetFiltered(type, SelectionMode.Unfiltered); + if (filteredArray != null) + { + //**--sort + foreach (var filtered in filteredArray) + { + obj = getObjectToSend(filtered, type); + if (obj != null) + return obj; + } + } + + + + //**--rest can be slow, try avoiding them, make own db etc + //**--can add a stop-wacher and add warning if slow as well + //**--can also cache the result + + try + { + // UnityEngine.Object.FindObjectOfType is deprecated in new versions of Unity +#if UNITY_2022_3 || UNITY_2023_1_OR_NEWER + // Object.FindAnyObjectOfType doesn't return Assets (for example meshes, textures, or prefabs), or inactive objects. It also doesn't return objects that have HideFlags.DontSave set. + obj = UnityEngine.Object.FindAnyObjectByType(type); +#else + // Object.FindObjectOfType will not return Assets (meshes, textures, prefabs, ...) or inactive objects. It will not return an object that has HideFlags.DontSave set. + obj = UnityEngine.Object.FindObjectOfType(type); +#endif + } + catch (Exception ex) + { + Serilog.Log.Warning(ex, "FindObjectOfType/FindAnyObjectByType failed for {Type}, mb:{isMB}, so:{isSO}", type.ToString(), isMonoBehaviour, isScriptableObject); + } + + obj = getObjectToSend(obj, type); + if (obj != null) + return obj; + + UnityEngine.Object[]? arr = null; + try + { + // This function can return any type of Unity object that is loaded, including game objects, prefabs, materials, meshes, textures, etc. + // Contrary to Object.FindObjectsOfType this function will also list disabled objects. + arr = Resources.FindObjectsOfTypeAll(type); + } + catch (Exception ex) + { + //var isMonoBehaviour = type.IsSubclassOf(typeof(MonoBehaviour)); + //var isScriptableObject = type.IsSubclassOf(typeof(ScriptableObject)); + Serilog.Log.Warning(ex, "FindObjectsOfTypeAll failed for {Type}, mb:{isMB}, so:{isSO}", type.ToString(), isMonoBehaviour, isScriptableObject); + } + + if (arr != null) + { + //**--sort + foreach (var item in arr) + { + obj = getObjectToSend(item, type); + if (obj != null) + return obj; + } + } + + + return obj; + + + static UnityEngine.Object? getObjectToSend(UnityEngine.Object? obj, Type type) + { + if (obj == null || !obj) + return null; + + if (obj is GameObject go) + { + if (!go) + return null; + if (isTypeComponent(type) && go.GetComponent(type) != null) + return go; + } + else if (obj is Transform transform) + { + go = transform.gameObject; + if (!go) + return null; + if (isTypeComponent(type) && go.GetComponent(type) != null) + return go; + } + else if (obj is Component comp) + { + go = comp.gameObject; + if (!go) + return null; + else + return go; + } + else if (obj is ScriptableObject so) + { + if (!so) + return null; + else + return so; + } + + return null; + } + + static bool isTypeComponent(Type type) + { + var componentType = typeof(Component);//**--cache these types + if (type == componentType || type.IsSubclassOf(componentType)) + return true; + + // MonoBehaviour is Component, so below is unnecessary + //var monoBehaviourType = typeof(MonoBehaviour); + //if (type == monoBehaviourType || type.IsSubclassOf(monoBehaviourType)) + // return true; + + //else if(type is interface)//**-- + + return false; + } + } + + public static void DENEMEEEE() + { + //UnityEditor.SceneManagement.EditorSceneManager.all + //AssetDatabase.get + + foreach (var sceneGUID in AssetDatabase.FindAssets("t:Scene", new string[] { "Assets" })) + { + var scenePath = AssetDatabase.GUIDToAssetPath(sceneGUID); + Debug.Log("scenePath: " + scenePath); + + //EditorSceneManager.OpenScene(scenePath); + //var scene = EditorSceneManager.GetActiveScene(); + } + + var assets = AssetDatabase.FindAssets("Deneme_OtherScene"); + Debug.Log("Assets: " + assets.Length); + + foreach (var assetGuid in assets) + { + var assetPath = AssetDatabase.GUIDToAssetPath(assetGuid); + Debug.Log("Asset: " + assetGuid + " " + assetPath); + } + } + + public static bool GetActiveGameObject(out GameObject activeGameObject) + { + activeGameObject = Selection.activeGameObject; + return activeGameObject ? true : false; + } + + } + + +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/ScriptFinder.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/ScriptFinder.cs.meta new file mode 100644 index 0000000..cbe4681 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/ScriptFinder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 11ac3f66eb86de34cb65aa46b691b9ec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/SetupManager.cs b/Packages/com.merry-yellow.code-assist/Editor/SetupManager.cs new file mode 100644 index 0000000..54280ed --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/SetupManager.cs @@ -0,0 +1,43 @@ +using System.Collections; +using System.Collections.Generic; +using System.Collections.Concurrent; +using UnityEngine; +using UnityEditor; + + +#pragma warning disable IDE0005 +//using Serilog = Meryel.UnityCodeAssist.Serilog; +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor.Setup +{ + +#if !MERYEL_UCA_LITE_VERSION + [InitializeOnLoad] + public static class SetupManager + { + static SetupManager() + { + //var cleanupPath = CommonTools.GetToolPath("CleanupObsoleteFiles.bat"); + //Assister.Execute(cleanupPath); + Cleanup.DoCleanup(); + + //var installerPath = CommonTools.GetToolPath("InstallFullVersionOfVsix.bat"); + //Assister.Execute(installerPath); + Assister.Upgrade(); + + // delete itself (file), so these cleanup and install only called once + var scriptMeta = CommonTools.GetScriptPath("SetupManager.cs.meta"); + System.IO.File.Delete(scriptMeta); + var script = CommonTools.GetScriptPath("SetupManager.cs"); + System.IO.File.Delete(script); + } + + } +#endif +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/SetupManager.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/SetupManager.cs.meta new file mode 100644 index 0000000..2589d5a --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/SetupManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ff81bd2adb6cbc242b782ff821e5f58b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/StatusWindow.cs b/Packages/com.merry-yellow.code-assist/Editor/StatusWindow.cs new file mode 100644 index 0000000..0a1aafd --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/StatusWindow.cs @@ -0,0 +1,86 @@ +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEditor; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor +{ + public class StatusWindow : EditorWindow + { + GUIStyle? styleLabel; + + public static void Display() + { + // Get existing open window or if none, make a new one: + var window = GetWindow(); + window.Show(); + + MQTTnetInitializer.Publisher?.SendConnectionInfo(); + + Serilog.Log.Debug("Displaying status window"); + + MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "StatusWindow_Display"); + } + + private void OnEnable() + { + //**--icon + //var icon = AssetDatabase.LoadAssetAtPath("Assets/Sprites/Gear.png"); + //titleContent = new GUIContent("Code Assist", icon); + titleContent = new GUIContent(Assister.Title); + } + + private void OnGUI() + { + var hasAnyClient = MQTTnetInitializer.Publisher?.Clients.Any() == true; + + styleLabel ??= new GUIStyle(GUI.skin.label) + { + wordWrap = true, + alignment = TextAnchor.MiddleLeft, + }; + + if (hasAnyClient) + { + EditorGUILayout.LabelField($"Code Assist is working!", styleLabel, GUILayout.ExpandWidth(true)); + + foreach (var client in MQTTnetInitializer.Publisher!.Clients) + { + EditorGUILayout.LabelField($"Connected to {client.ContactInfo}", styleLabel, GUILayout.ExpandWidth(true)); + } + } + else + { + EditorGUILayout.LabelField($"Code Assist isn't working!", styleLabel, GUILayout.ExpandWidth(true)); + + EditorGUILayout.LabelField($"No IDE found", styleLabel, GUILayout.ExpandWidth(true)); + } + +#if MERYEL_UCA_LITE_VERSION + + EditorGUILayout.LabelField($"", styleLabel, GUILayout.ExpandWidth(true)); + EditorGUILayout.LabelField($"This is the lite version of Code Assist with limited features.", styleLabel, GUILayout.ExpandWidth(true)); + EditorGUILayout.LabelField($"To unlock all of the features, get the full version.", styleLabel, GUILayout.ExpandWidth(true)); + + if (GUILayout.Button("Get full version")) + { + Application.OpenURL("https://unitycodeassist.netlify.app/purchase?utm_source=unity_getfullbutton"); + } + +#endif // MERYEL_UCA_LITE_VERSION + + + } + } + +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/StatusWindow.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/StatusWindow.cs.meta new file mode 100644 index 0000000..3334f99 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/StatusWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bf49614de8ad81c45828cc9e98f0c174 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/UnityClassExtensions.cs b/Packages/com.merry-yellow.code-assist/Editor/UnityClassExtensions.cs new file mode 100644 index 0000000..f852243 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/UnityClassExtensions.cs @@ -0,0 +1,683 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using UnityEngine; +using UnityEditor; +using UnityEditor.Animations; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor +{ + internal static partial class UnityClassExtensions + { + static GameObject? GetParentGO(GameObject go) + { + if (!go) + return null; + + var parentTransform = go.transform.parent; + + if (parentTransform && parentTransform.gameObject) + return parentTransform.gameObject; + else + return null; + } + + static string GetId(UnityEngine.Object? obj) + { + try + { + // obj can be null + + var globalObjectId = GlobalObjectId.GetGlobalObjectIdSlow(obj); + var objectGuid = globalObjectId.ToString(); + return objectGuid; + } + catch (Exception ex) + { + // OnBeforeSerialize of user scripts may raise exception + Serilog.Log.Warning(ex, "GetGlobalObjectIdSlow failed for obj {Obj}", obj); + return "GlobalObjectId_V1-0-00000000000000000000000000000000-0-0"; + } + } + + public static Synchronizer.Model.Component_Material? ToSyncModelOfComponentMaterial(this GameObject go) + { + if (!go.TryGetComponent(out var renderer)) + return null; + + if (!renderer) + return null; + + var propertyNames = new List(); + var propertyIndices = new List(); + var propertyTypes = new List(); + var propertyValues = new List(); + + var processedShaders = new HashSet(); + + // most of the time, there will be a single material, so initiate with capacity of 1 + var keywordsContainer = new List(1); + var passNamesContainer = new List(1); + var passIndicesContainer = new List(1); + + foreach (var material in renderer.sharedMaterials) + { + if (!material) + continue; + + var shader = material.shader; + if (!shader) + continue; + + if (processedShaders.Contains(shader)) + continue; + processedShaders.Add(shader); + + int propertyCount = shader.GetPropertyCount(); + + for (int i = 0; i < propertyCount; i++) + { + var propertyName = shader.GetPropertyName(i); + var propertyId = Shader.PropertyToID(propertyName); + + if (!material.HasProperty(propertyId)) + continue; + + var propertyTypeRaw = shader.GetPropertyType(i); + GetExtendedTypeAndValue(propertyId, propertyTypeRaw, material, out var propertyTypeExtended, out var propertyValue); + + propertyNames.Add(propertyName); + propertyIndices.Add(propertyId.ToString()); + propertyTypes.Add((int)propertyTypeExtended); + propertyValues.Add(propertyValue); + } + + keywordsContainer.Add(shader.keywordSpace.keywordNames); + + var passCount = material.passCount; + var passNames = new string[passCount]; + var passIndices = new string[passCount]; + for (int i = 0; i < passCount; i++) + { + passNames[i] = material.GetPassName(i); + passIndices[i] = i.ToString(); + } + passNamesContainer.Add(passNames); + passIndicesContainer.Add(passIndices); + } + + var data = new Synchronizer.Model.Component_Material + { + GameObjectId = GetId(go), + PropertyNames = propertyNames.ToArray(), + PropertyIndices = propertyIndices.ToArray(), + PropertyTypes = propertyTypes.ToArray(), + PropertyValues = propertyValues.ToArray(), + Keywords = ConcatenateListOfArrays(keywordsContainer), + PassNames = ConcatenateListOfArrays(passNamesContainer), + PassIndices = ConcatenateListOfArrays(passIndicesContainer), + }; + return data; + + + static void GetExtendedTypeAndValue(int propertyId, UnityEngine.Rendering.ShaderPropertyType typeRaw, Material material, out Synchronizer.Model.Component_Material.MaterialPropertyType typeExtended, out string value) + { + // Handle scalar types based on shader declaration + switch (typeRaw) + { + case UnityEngine.Rendering.ShaderPropertyType.Color: + typeExtended = Synchronizer.Model.Component_Material.MaterialPropertyType.Color; + value = material.GetColor(propertyId).ToString(); + break; + + case UnityEngine.Rendering.ShaderPropertyType.Vector: + typeExtended = Synchronizer.Model.Component_Material.MaterialPropertyType.Vector; + value = material.GetVector(propertyId).ToString(); + break; + + case UnityEngine.Rendering.ShaderPropertyType.Float: + typeExtended = Synchronizer.Model.Component_Material.MaterialPropertyType.Float; + value = material.GetFloat(propertyId).ToString(); + break; + + case UnityEngine.Rendering.ShaderPropertyType.Range: + typeExtended = Synchronizer.Model.Component_Material.MaterialPropertyType.Range; + value = material.GetFloat(propertyId).ToString(); + break; + + case UnityEngine.Rendering.ShaderPropertyType.Texture: + { + typeExtended = Synchronizer.Model.Component_Material.MaterialPropertyType.Texture; + var texture = material.GetTexture(propertyId); + if (texture) + value = texture.name; + else + value = string.Empty; + } + break; + + case UnityEngine.Rendering.ShaderPropertyType.Int: + typeExtended = Synchronizer.Model.Component_Material.MaterialPropertyType.Integer; + value = material.GetInteger(propertyId).ToString(); + break; + + default: + typeExtended = Synchronizer.Model.Component_Material.MaterialPropertyType.Invalid; + value = string.Empty; + Serilog.Log.Error("invalid material type {TypeRaw}", typeRaw); + break; + } + } + + static string[] ConcatenateListOfArrays(List listOfArrays) + { + if (listOfArrays.Count == 0) + return new string[0]; + else if (listOfArrays.Count == 1) + return listOfArrays[0]; + + int totalLength = 0; + foreach (var arr in listOfArrays) + totalLength += arr.Length; + + string[] result = new string[totalLength]; + Span span = result.AsSpan(); + + int offset = 0; + foreach (var arr in listOfArrays) + { + arr.AsSpan().CopyTo(span.Slice(offset)); + offset += arr.Length; + } + + return result; + } + + + } + + public static Synchronizer.Model.Component_Animation? ToSyncModelOfComponentAnimation(this GameObject go) + { + if (!go.TryGetComponent(out var animation)) + return null; + + if (!animation.isActiveAndEnabled) + return null; + + var data = new Synchronizer.Model.Component_Animation + { + GameObjectId = GetId(go) + }; + + /* + var clips = AnimationUtility.GetAnimationClips(go); + data.Clips = new string[clips.Length]; + for (int i = 0; i < clips.Length; i++) + { + data.Clips[i] = clips[i].name; + } + */ + + var states = new List(); + foreach (AnimationState state in animation) + { + states.Add(state.name); + } + data.States = states.ToArray(); + + return data; + } + + public static Synchronizer.Model.Component_Animator? ToSyncModelOfComponentAnimator(this GameObject go) + { + if (!go.TryGetComponent(out var animator)) + return null; + + if (!animator.isActiveAndEnabled) + return null; + + if (!animator.runtimeAnimatorController) + return null; + + var data = new Synchronizer.Model.Component_Animator + { + GameObjectId = GetId(go) + }; + + var layerCount = animator.layerCount; + data.LayerIndices = new string[layerCount]; + data.LayerNames = new string[layerCount]; + for (int i = 0; i < layerCount; i++) + { + data.LayerIndices[i] = i.ToString(); + data.LayerNames[i] = animator.GetLayerName(i); + } + + int curParameterIndex = 0; + try + { + var parameterCount = animator.parameterCount; + data.ParameterIndices = new string[parameterCount]; + data.ParameterNames = new string[parameterCount]; + data.ParameterHashes = new string[parameterCount]; + data.ParameterTypes = new int[parameterCount]; + for (var i = 0; i < parameterCount; i++) + { + curParameterIndex = i; + // receiving error here, like "IndexOutOfRangeException: Index must be between 0 and 3", + // probably user edits it while retrieving data + var parameter = animator.GetParameter(i); + data.ParameterIndices[i] = i.ToString(); + data.ParameterNames[i] = parameter.name; + data.ParameterHashes[i] = parameter.nameHash.ToString(); + data.ParameterTypes[i] = (int)parameter.type; + } + } + catch (IndexOutOfRangeException indexOutOfRangeException) + { + Serilog.Log.Debug(indexOutOfRangeException, "handling IndexOutOfRangeException of animator.GetParameter(i)"); + + var parameterCount = curParameterIndex; + + data.ParameterIndices = ResizeArray(data.ParameterIndices, parameterCount); + data.ParameterNames = ResizeArray(data.ParameterNames, parameterCount); + data.ParameterHashes = ResizeArray(data.ParameterHashes, parameterCount); + data.ParameterTypes = ResizeArray(data.ParameterTypes, parameterCount); + } + + // When you specify a state name, or the string used to generate a hash, it should include the name of the parent layer. For example, if you have a Bounce state in the Base Layer, the name is Base Layer.Bounce + // The name should be in the form Layer.Name or Layer.SubStateMachine.Name + if (!GetAnimatorStateInfo(animator, out var states, out var transitions) || + states == null || transitions == null) //for nullables + return data; + + var stateCount = states.Count; + data.StateNames = new string[stateCount]; + data.StateNameHashes = new string[stateCount]; + data.StateTags = new string[stateCount]; + data.StateTagHashes = new string[stateCount]; + data.StateFullPaths = new string[stateCount]; + data.StateFullPathHashes = new string[stateCount]; + data.StateMotionNames = new string[stateCount]; + for (int i = 0; i < stateCount; i++) + { + var state = states[i].state; + var fullPath = states[i].fullPath; + data.StateNames[i] = state.name; + data.StateNameHashes[i] = state.nameHash.ToString(); + data.StateTags[i] = state.tag; + data.StateTagHashes[i] = Animator.StringToHash(state.tag).ToString(); + data.StateFullPaths[i] = fullPath; + data.StateFullPathHashes[i] = Animator.StringToHash(fullPath).ToString(); + var motion = state.motion; + if (motion) + data.StateMotionNames[i] = motion.name; + else + data.StateMotionNames[i] = string.Empty; + } + + var transitionCount = transitions.Count; + data.TransitionNames = new string[transitionCount]; + data.TransitionNameHashes = new string[transitionCount]; + data.TransitionUsernames = new string[transitionCount]; + data.TransitionUsernameHashes = new string[transitionCount]; + data.TransitionFullPaths = new string[transitionCount]; + data.TransitionFullPathHashes = new string[transitionCount]; + for (int i = 0; i < transitionCount; i++) + { + var transition = transitions[i].transition; + var fullPath = transitions[i].fullPath; + data.TransitionNames[i] = transition.name; + data.TransitionNameHashes[i] = Animator.StringToHash(transition.name).ToString(); + data.TransitionUsernames[i] = transition.GetDisplayName(transition.destinationState); + data.TransitionUsernameHashes[i] = Animator.StringToHash(data.TransitionUsernames[i]).ToString(); + data.TransitionFullPaths[i] = fullPath; + data.TransitionFullPathHashes[i] = Animator.StringToHash(fullPath).ToString(); + } + + var clips = animator.runtimeAnimatorController.animationClips; + data.Clips = new string[clips.Length]; + for (int i = 0; i < clips.Length; i++) + data.Clips[i] = clips[i].name; + + return data; + + //var events = clips.SelectMany(c => c.events); + + static T[] ResizeArray(T[] array, int size) + { + Array.Resize(ref array, size); + return array; + } + } + + + + public static bool GetAnimatorStateInfo(Animator animator, out List<(AnimatorState state, string fullPath)>? states, out List<(AnimatorTransition transition, string fullPath)>? transitions) + { + AnimatorController? controller = animator.runtimeAnimatorController as AnimatorController; + if (!controller || controller == null) + { + states = null; + transitions = null; + return false; + } + + AnimatorControllerLayer[] layers = controller.layers; + states = new List<(AnimatorState, string)>(); + transitions = new List<(AnimatorTransition, string)>(); + foreach (AnimatorControllerLayer layer in layers) + { + if (layer == null || layer.stateMachine == null) + continue; + + ChildAnimatorState[] animStates = layer.stateMachine.states; + getStateMachineInfo(layer.stateMachine, 0, layer.name, states, transitions); + } + return true; + + + static void getStateMachineInfo(AnimatorStateMachine stateMachine, int depth, string curPath, + List<(AnimatorState state, string fullPath)> states, + List<(AnimatorTransition transition, string fullPath)> transitions) + { + // for performance + if (depth > 4 || states.Count > 128) + return; + + states.AddRange(stateMachine.states.Select(s => (s.state, curPath + "." + s.state.name))); + + //var transitions = stateMachine.GetStateMachineTransitions(stateMachine); + transitions.AddRange(stateMachine.GetStateMachineTransitions(stateMachine).Select(t => (t, curPath + "." + t.name))); + + foreach (var subStateMachine in stateMachine.stateMachines) + getStateMachineInfo(subStateMachine.stateMachine, depth + 1, curPath + "." + subStateMachine.stateMachine.name, states, transitions); + } + } + + internal static Synchronizer.Model.GameObject? ToSyncModel(this GameObject go, int priority = 0) + { + if (!go) + return null; + + var data = new Synchronizer.Model.GameObject() + { + Id = GetId(go), + + Name = go.name, + Layer = go.layer.ToString(), + Tag = go.tag, + Scene = go.scene.name, + + ParentId = GetId(GetParentGO(go)), + ChildrenIds = getChildrenIds(go), + + Components = getComponents(go), + + Priority = priority, + }; + return data; + + static string[] getChildrenIds(GameObject g) + { + var ids = new List(); + var limit = 10;//**-- + foreach (Transform child in g.transform) + { + if (!child || !child.gameObject) + continue; + + ids.Add(GetId(child.gameObject)); + + if (--limit <= 0) + break; + } + return ids.ToArray(); + } + + //**--limit/10 + static string[] getComponents(GameObject g) => + g.GetComponents().Where(c => c).Select(c => c.GetType().FullName).Take(10).ToArray(); + /*(string[] componentNames, Synchronizer.Model.ComponentData[] componentData) getComponents(GameObject g) + { + var components = g.GetComponents(); + var names = components.Select(c => c.name).ToArray(); + + var data = new List(); + foreach (var comp in components) + { + var name = comp.name; + + + } + + return (names, data.ToArray()); + }*/ + } + + internal static Synchronizer.Model.GameObject[]? ToSyncModelOfHierarchy(this GameObject go) + { + if (!go) + return null; + + var list = new List(); + + var parent = GetParentGO(go); + if (parent != null && parent) + { + var parentModel = parent.ToSyncModel(); + if (parentModel != null) + list.Add(parentModel); + } + + int limit = 10; + foreach (Transform child in go.transform) + { + if (!child || !child.gameObject) + continue; + + var childModel = child.gameObject.ToSyncModel(); + if (childModel == null) + continue; + + list.Add(childModel); + + if (--limit <= 0) + break; + } + + return list.ToArray(); + } + + internal static Synchronizer.Model.ComponentData[]? ToSyncModelOfComponents(this GameObject go) + { + if (!go) + return null; + + var limit = 10;//**-- + return go.GetComponents().Where(c => c).Select(c => c.ToSyncModel(go)).Where(cd => cd != null).Take(limit).ToArray()!; + + /* + var components = go.GetComponents(); + var len = components.Count(c => c != null); + len = Math.Min(len, limit);//**--limit + + var array = new Synchronizer.Model.ComponentData[len]; + + var arrayIndex = 0; + foreach (var component in components) + { + if (component == null) + continue; + + array[arrayIndex++] = component.ToSyncModel(go); + + if (arrayIndex >= len) + break; + } + + return array; + */ + } + + internal static Synchronizer.Model.ComponentData? ToSyncModel(this Component component, GameObject go) + { + if (!component || !go) + return null; + + Type type = component.GetType(); + var list = new List<(string, string)>(); + ShowFieldInfo(type, component, list); + + var data = new Synchronizer.Model.ComponentData() + { + GameObjectId = GetId(go), + Component = component.GetType().FullName, + Type = Synchronizer.Model.ComponentData.DataType.Component, + Data = list.ToArray(), + }; + return data; + } + + internal static Synchronizer.Model.ComponentData? ToSyncModel(this ScriptableObject so) + { + if (!so) + return null; + + Type type = so.GetType(); + var list = new List<(string, string)>(); + ShowFieldInfo(type, so, list); + + var data = new Synchronizer.Model.ComponentData() + { + GameObjectId = GetId(so), + Component = so.GetType().FullName, + Type = Synchronizer.Model.ComponentData.DataType.ScriptableObject, + Data = list.ToArray(), + }; + return data; + } + + + static bool IsTypeCompatible(Type type) + { + if (type == null || !(type.IsSubclassOf(typeof(MonoBehaviour)) || type.IsSubclassOf(typeof(ScriptableObject)))) + return false; + return true; + } + + static void ShowFieldInfo(Type type)//, MonoImporter importer, List names, List objects, ref bool didModify) + { + // Only show default properties for types that support it (so far only MonoBehaviour derived types) + if (!IsTypeCompatible(type)) + return; + + ShowFieldInfo(type.BaseType);//, importer, names, objects, ref didModify); + + FieldInfo[] infos = type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly); + foreach (FieldInfo field in infos) + { + if (!field.IsPublic) + { + object[] attr = field.GetCustomAttributes(typeof(SerializeField), true); + if (attr == null || attr.Length == 0) + continue; + } + + /* + if (field.FieldType.IsSubclassOf(typeof(Object)) || field.FieldType == typeof(Object)) + { + Object oldTarget = importer.GetDefaultReference(field.Name); + Object newTarget = EditorGUILayout.ObjectField(ObjectNames.NicifyVariableName(field.Name), oldTarget, field.FieldType, false); + + names.Add(field.Name); + objects.Add(newTarget); + + if (oldTarget != newTarget) + didModify = true; + } + */ + + if (field.FieldType.IsValueType && field.FieldType.IsPrimitive && !field.FieldType.IsEnum) + { + + } + else if (field.FieldType == typeof(string)) + { + + } + } + } + + static void ShowFieldInfo(Type type, UnityEngine.Object unityObjectInstance, List<(string, string)> fields)//, MonoImporter importer, List names, List objects, ref bool didModify) + { + // Only show default properties for types that support it (so far only MonoBehaviour derived types) + if (!IsTypeCompatible(type)) + return; + + if (!unityObjectInstance) + return; + + ShowFieldInfo(type.BaseType, unityObjectInstance, fields);//, importer, names, objects, ref didModify); + + FieldInfo[] infos = type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly); + foreach (FieldInfo field in infos) + { + if (!field.IsPublic) + { + object[] attr = field.GetCustomAttributes(typeof(SerializeField), true); + if (attr == null || attr.Length == 0) + continue; + } + + // check attribute [HideInInspector] + { + object[] attr = field.GetCustomAttributes(typeof(HideInInspector), true); + if (attr != null && attr.Length > 0) + continue; + } + + // readonly + if (field.IsInitOnly) + continue; + + + /* + if (field.FieldType.IsSubclassOf(typeof(Object)) || field.FieldType == typeof(Object)) + { + Object oldTarget = importer.GetDefaultReference(field.Name); + Object newTarget = EditorGUILayout.ObjectField(ObjectNames.NicifyVariableName(field.Name), oldTarget, field.FieldType, false); + + names.Add(field.Name); + objects.Add(newTarget); + + if (oldTarget != newTarget) + didModify = true; + } + */ + + if (field.FieldType.IsValueType && field.FieldType.IsPrimitive && !field.FieldType.IsEnum) + { + var val = field.GetValue(unityObjectInstance); + fields.Add((field.Name, val.ToString()));//**--culture + } + else if (field.FieldType == typeof(string)) + { + var val = (string)field.GetValue(unityObjectInstance); + fields.Add((field.Name, val)); + } + } + } + + } +} diff --git a/Packages/com.merry-yellow.code-assist/Editor/UnityClassExtensions.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/UnityClassExtensions.cs.meta new file mode 100644 index 0000000..a180464 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/UnityClassExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3839ff35a8db8d4449c565bdf10551f6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/UnityEditorShell.cs b/Packages/com.merry-yellow.code-assist/Editor/UnityEditorShell.cs new file mode 100644 index 0000000..430d38b --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/UnityEditorShell.cs @@ -0,0 +1,305 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Text; +using UnityEngine; +using UnityEngine.Events; +using UnityEditor; + + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor.Shell +{ + public class UnityEditorShell + { + public static string DefaultShellApp + { + get + { +#if UNITY_EDITOR_WIN + return "cmd.exe"; +#elif UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX + //return "bash"; + return System.IO.File.Exists("/bin/zsh") ? "/bin/zsh" : "/bin/bash"; +#else + Serilog.Log.Error("invalid platform"); + return "invalid-platform"; +#endif + } + } + + // we are using unity actions for posterity in case we want to inspect those in-editor someday + private static readonly List ActionsQueue; + + static UnityEditorShell() + { + ActionsQueue = new List(); + EditorApplication.update += OnUpdate; + } + + // while running the Unity Editor update loop, we'll unqueue any tasks if such exist. + // actions can be + private static void OnUpdate() + { + while (ActionsQueue.Count > 0) + { + lock (ActionsQueue) + { + var action = ActionsQueue[0]; + try + { + action?.Invoke(); + } + catch (Exception e) + { + Serilog.Log.Error(e, "error invoking shell action"); + } + finally + { + ActionsQueue.RemoveAt(0); + } + } + } + } + + private static void Enqueue(UnityAction action) + { + lock (ActionsQueue) + { + ActionsQueue.Add(action); + } + } + + public static ShellCommandEditorToken Execute(string cmd) + { + var shellCommandEditorToken = new ShellCommandEditorToken(); + System.Threading.ThreadPool.QueueUserWorkItem(delegate (object state) + { + Process? process = null; + + try + { + var processStartInfo = CreateProcessStartInfo(cmd); + + // in case the command was already killed from the editor when the thread was queued + if (shellCommandEditorToken.IsKillRequested) + { + return; + } + + process = Process.Start(processStartInfo); + SetupProcessCallbacks(process, processStartInfo, shellCommandEditorToken); + ReadProcessOutput(process, shellCommandEditorToken); + } + catch (Exception e) + { + Serilog.Log.Error(e, "error starting shell"); + process?.Close(); + + Enqueue(() => + { + shellCommandEditorToken.FeedLog(UnityShellLogType.Error, e.ToString()); + shellCommandEditorToken.MarkAsDone(-1); + }); + } + }); + return shellCommandEditorToken; + } + + private static ProcessStartInfo CreateProcessStartInfo(string cmd) + { + var processStartInfo = new ProcessStartInfo(DefaultShellApp); +#if UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX + processStartInfo.Arguments = "-c"; +#elif UNITY_EDITOR_WIN + processStartInfo.Arguments = "/c"; +#endif + + processStartInfo.Arguments += (" \"" + cmd + " \""); + processStartInfo.CreateNoWindow = true; + processStartInfo.ErrorDialog = true; + processStartInfo.UseShellExecute = false; + //processStartInfo.WorkingDirectory = options.WorkingDirectory == null ? "./" : options.WorkingDirectory; + processStartInfo.RedirectStandardOutput = true; + processStartInfo.RedirectStandardError = true; + processStartInfo.RedirectStandardInput = true; + processStartInfo.StandardOutputEncoding = Encoding.UTF8; + processStartInfo.StandardErrorEncoding = Encoding.UTF8; + return processStartInfo; + } + + private static void SetupProcessCallbacks(Process process, ProcessStartInfo processStartInfo, ShellCommandEditorToken shellCommandEditorToken) + { + shellCommandEditorToken.BindProcess(process); + + process.ErrorDataReceived += delegate (object sender, DataReceivedEventArgs e) + { + Serilog.Log.Error("error on shell.ErrorDataReceived: {data}", e.Data); + }; + process.OutputDataReceived += delegate (object sender, DataReceivedEventArgs e) + { + Serilog.Log.Debug("shell.OutputDataReceived: {data}", e.Data); + }; + process.Exited += delegate (object sender, System.EventArgs e) + { + Serilog.Log.Debug("shell.Exited: {data}", e.ToString()); + }; + } + + private static void ReadProcessOutput(Process process, ShellCommandEditorToken shellCommandEditorToken) + { + do + { + var line = process.StandardOutput.ReadLine(); + if (line == null) + { + break; + } + + line = line.Replace("\\", "/"); + Enqueue(delegate () { shellCommandEditorToken.FeedLog(UnityShellLogType.Log, line); }); + } while (true); + + while (true) + { + var error = process.StandardError.ReadLine(); + if (string.IsNullOrEmpty(error)) + { + break; + } + + Enqueue(delegate () { shellCommandEditorToken.FeedLog(UnityShellLogType.Error, error); }); + } + + process.WaitForExit(); + var exitCode = process.ExitCode; + process.Close(); + Enqueue(() => { shellCommandEditorToken.MarkAsDone(exitCode); }); + } + + } + + public class ShellCommandEditorToken + { + public event UnityAction? OnLog; + public event UnityAction? OnExit; + + private Process? _process; + + internal void BindProcess(Process process) + { + _process = process; + } + + internal void FeedLog(UnityShellLogType unityShellLogType, string log) + { + OnLog?.Invoke(unityShellLogType, log); + + if (unityShellLogType == UnityShellLogType.Error) + { + HasError = true; + } + } + + public bool IsKillRequested { get; private set; } + + public void Kill() + { + if (IsKillRequested) + { + return; + } + + IsKillRequested = true; + if (_process != null) + { + _process.Kill(); + _process = null; + } + else + { + MarkAsDone(137); + } + } + + public bool HasError { get; private set; } + + public int ExitCode { get; private set; } + + public bool IsDone { get; private set; } + + internal void MarkAsDone(int exitCode) + { + ExitCode = exitCode; + IsDone = true; + OnExit?.Invoke(exitCode); + } + + /// + /// This method is intended for compiler use. Don't call it in your code. + /// + public ShellCommandAwaiter GetAwaiter() + { + return new ShellCommandAwaiter(this); + } + } + + public struct ShellCommandAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion + { + private readonly ShellCommandEditorToken _shellCommandEditorToken; + + public ShellCommandAwaiter(ShellCommandEditorToken shellCommandEditorToken) + { + _shellCommandEditorToken = shellCommandEditorToken; + } + + public int GetResult() + { + return _shellCommandEditorToken.ExitCode; + } + + public bool IsCompleted => _shellCommandEditorToken.IsDone; + + public void OnCompleted(Action continuation) + { + UnsafeOnCompleted(continuation); + } + + public void UnsafeOnCompleted(Action continuation) + { + if (IsCompleted) + { + continuation(); + } + else + { + _shellCommandEditorToken.OnExit += (_) => { continuation(); }; + } + } + } + + public enum UnityShellLogType + { + Log, + Error + } + + public class ShellCommandYieldable : CustomYieldInstruction + { + private readonly ShellCommandEditorToken _shellCommandEditorToken; + + public ShellCommandYieldable(ShellCommandEditorToken shellCommandEditorToken) + { + _shellCommandEditorToken = shellCommandEditorToken; + } + + public override bool keepWaiting => !_shellCommandEditorToken.IsDone; + } +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/UnityEditorShell.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/UnityEditorShell.cs.meta new file mode 100644 index 0000000..9412f7e --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/UnityEditorShell.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f8a1c8d4b7d7fcc41bc2bdb8aa27522e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/Updater.cs b/Packages/com.merry-yellow.code-assist/Editor/Updater.cs new file mode 100644 index 0000000..fac4352 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Updater.cs @@ -0,0 +1,150 @@ +using System.Collections; +using UnityEngine; +using UnityEditor; +using UnityEngine.Networking; + +#pragma warning disable IDE0005 +using Serilog = Meryel.Serilog; + +#pragma warning restore IDE0005 + + +#nullable enable + + +namespace Meryel.UnityCodeAssist.Editor +{ + + public static class Updater + { + const string EditorPrefsKey = "my_uca_update_disabled"; + const string SessionStateKey = "my_uca_update_checked_before"; + const string ItchApiUri = "https://itch.io/api/1/x/wharf/latest?target=meryel/unity-code-assist&channel_name=asset"; + const string ItchStoreUri = "https://meryel.itch.io/unity-code-assist"; + const string AssetStoreUri = "https://assetstore.unity.com/packages/tools/utilities/code-assist-216713"; + const string VSMarketplaceUri = "https://marketplace.visualstudio.com/items?itemName=MerryYellow.UCA-Lite"; + const string VSCodeMarketplaceUri = "https://marketplace.visualstudio.com/items?itemName=MerryYellow.uca-lite-vscode"; + + +#pragma warning disable CS0162 + public static void CheckUpdateSilent() + { +#if !MERYEL_UCA_ITCH_BUILD + return; +#endif + + var updateDisabled = EditorPrefs.GetBool(EditorPrefsKey, false); + if (updateDisabled) + return; + + var updateCheckedBefore = SessionState.GetBool(SessionStateKey, false); + if (updateCheckedBefore) + return; + + EditorCoroutines.EditorCoroutineUtility.StartCoroutine(GetRequest(ItchApiUri, false), MQTTnetInitializer.Publisher); + } +#pragma warning restore CS0162 + + public static void CheckUpdateForced() + { + EditorCoroutines.EditorCoroutineUtility.StartCoroutine(GetRequest(ItchApiUri, true), MQTTnetInitializer.Publisher); + } + + + static void DisplayDialog() + { + SessionState.SetBool(SessionStateKey, true); + + int option = EditorUtility.DisplayDialogComplex( + "Update Unity Code Assist", + "Do you want to update asset: Unity Code Assist?", + "Update", //"Save", + "Cancel", + "Never ask again"); //"Don't Save"); + + switch (option) + { + // update - Save. + case 0: +#if MERYEL_UCA_ITCH_BUILD + Application.OpenURL(ItchStoreUri); +#endif +#if MERYEL_UCA_ASSET_STORE_BUILD + Application.OpenURL(AssetStoreUri); + Serilog.Log.Information("It may take a few days for the Asset Store team to review updates. Thank you for your patience."); +#endif +#if MERYEL_UCA_VS_MARKETPLACE_BUILD + Application.OpenURL(VSMarketplaceUri); +#endif +#if MERYEL_UCA_VSC_MARKETPLACE_BUILD + Application.OpenURL(VSCodeMarketplaceUri); +#endif + break; + + // Cancel. + case 1: + // do nothing + break; + + // never ask again - Don't Save. + case 2: + EditorPrefs.SetBool(EditorPrefsKey, true); + break; + + default: + Serilog.Log.Error("Unrecognized option for {Location}.", nameof(DisplayDialog)); + break; + } + + } + + static void Compare(string response, bool isForced) + { + var regex = new System.Text.RegularExpressions.Regex("\\d+(\\.\\d+){2,4}"); + var match = regex.Match(response); + if (!match.Success) + { + Serilog.Log.Error("Invalid update response, couldn't parse: {Response}", response); + return; + } + + var version = match.Value; + + if (Assister.VersionCompare(Assister.Version, version) >= 0) + { + if (isForced) + Serilog.Log.Information("Unity Code Assist is up to date, version: {Version}", Assister.Version); + return; + } + + DisplayDialog(); + } + + static IEnumerator GetRequest(string uri, bool isForced) + { + using (UnityWebRequest webRequest = UnityWebRequest.Get(uri)) + { + // Request and wait for the desired page. + yield return webRequest.SendWebRequest(); + + string[] pages = uri.Split('/'); + int page = pages.Length - 1; + + switch (webRequest.result) + { + case UnityWebRequest.Result.ConnectionError: + case UnityWebRequest.Result.DataProcessingError: + Serilog.Log.Error("Error while checking new version of UnityCodeAssist " + pages[page] + ": Error: " + webRequest.error); + break; + case UnityWebRequest.Result.ProtocolError: + Serilog.Log.Error("Error while checking new version of UnityCodeAssist " + pages[page] + ": HTTP Error: " + webRequest.error); + break; + case UnityWebRequest.Result.Success: + Serilog.Log.Debug("Checking new version of UnityCodeAssist " + pages[page] + ": Received: " + webRequest.downloadHandler.text); + Compare(webRequest.downloadHandler.text, isForced); + break; + } + } + } + } +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Editor/Updater.cs.meta b/Packages/com.merry-yellow.code-assist/Editor/Updater.cs.meta new file mode 100644 index 0000000..0772a04 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/Updater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bebf3fdfe56579944af4d710a6465a94 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Editor/csc.rsp b/Packages/com.merry-yellow.code-assist/Editor/csc.rsp new file mode 100644 index 0000000..99323e8 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/csc.rsp @@ -0,0 +1 @@ +-define:MERYEL_UCA_LITE_VERSION;MERYEL_UCA_VS_MARKETPLACE_BUILD diff --git a/Packages/com.merry-yellow.code-assist/Editor/csc.rsp.meta b/Packages/com.merry-yellow.code-assist/Editor/csc.rsp.meta new file mode 100644 index 0000000..d834485 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Editor/csc.rsp.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 45ca2846d675c9a438e49991db89e437 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/GPT Notice.md b/Packages/com.merry-yellow.code-assist/GPT Notice.md new file mode 100644 index 0000000..2e9ecb3 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/GPT Notice.md @@ -0,0 +1,47 @@ +Generative AI is one of the features of Code Assist. If you have any ethical or legal concerns, you can use Code Assist without this feature by disabling generative AI in the options. + +To use generative AI with your comments: +* Type "//gpt " +* Type your prompt +* Press Enter key + +To use generative AI with CodeLens: +* Click Gpt Codelens which is above class or method declaration + +Requirements (OpenAI ChatGPT): You need an OpenAI account and provide it's API key to this asset. +https://platform.openai.com/account/api-keys + +Provide key by one of the below +* Create an environment variable called OPENAI_API_KEY with the API key +* Create a file with name .openai under user profile directory with the API key +* Set API key in Visual Studio options, Tools->Options->Unity Code Assist->Generative AI->Authentication + +Requirements (Google Gemini): You need a Google account and provide it's API key to this asset. +https://ai.google.dev/gemini-api/docs/api-key + +Provide key by one of the below +* Create an environment variable called GOOGLE_API_KEY with the API key +* Create a file with name .gemini under user profile directory with the API key +* Set API key in options, Tools->Options->Unity Code Assist->Generative AI->Authentication + +Requirements (Anthropic Claude): You need an Anthropic account and provide it's API key to this asset. +https://console.anthropic.com/settings/keys + +Provide key by one of the below +* Create an environment variable called ANTHROPIC_API_KEY with the API key +* Create a file with name .anthropic under user profile directory with the API key +* Set API key in options, Tools->Options->Comment2GPT->Authentication + +Requirements (DeepSeek): You need a DeepSeek account and provide it's API key to this asset. +https://platform.deepseek.com/api_keys + +Provide key by one of the below +* Create an environment variable called DEEPSEEK_API_KEY with the API key +* Create a file with name .deepseek under user profile directory with the API key +* Set API key in options, Tools->Options->Comment2GPT->Authentication + +This asset has one-time purchase fee, but you may need to pay extra for OpenAI, Google AI, Anthropic or DeepSeek services to use Generative AI feature. +https://openai.com/pricing +https://ai.google.dev/pricing +https://www.anthropic.com/pricing#anthropic-api +https://api-docs.deepseek.com/quick_start/pricing \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/GPT Notice.md.meta b/Packages/com.merry-yellow.code-assist/GPT Notice.md.meta new file mode 100644 index 0000000..ca47924 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/GPT Notice.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 622345dc4e7719245818bc32d5dfa601 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Installers~/Extension Installation.md b/Packages/com.merry-yellow.code-assist/Installers~/Extension Installation.md new file mode 100644 index 0000000..82e81a7 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Installers~/Extension Installation.md @@ -0,0 +1,8 @@ +In Unity, from the menubar select "Tools"->"Code Assist"->"Setup"->"Upgrade to full version" . This will install the full version of Visual Studio or VS Code extension. + +If above setup fails for some reason, you can also install the extensions manually. Change the file extension from "zip" to "vsix", then install from the file. + +Note that extension installers in this folder are for full version only. +For lite version, please refer to Microsoft Marketplace +https://marketplace.visualstudio.com/items?itemName=MerryYellow.UCA-Lite +https://marketplace.visualstudio.com/items?itemName=MerryYellow.uca-lite-vscode \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/Installers~/Extension Installation.md.meta b/Packages/com.merry-yellow.code-assist/Installers~/Extension Installation.md.meta new file mode 100644 index 0000000..bd826ab --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Installers~/Extension Installation.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4061fdac4a8c7c44da5ea8538583ea9a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/README.md b/Packages/com.merry-yellow.code-assist/README.md new file mode 100644 index 0000000..61d60af --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/README.md @@ -0,0 +1,128 @@ +Code Assist improves your coding experience with Visual Studio and VS Code. Coding for Unity projects becomes easier and more efficient with fewer bugs. +Connect your game editor and IDE, let Unity and Visual Studio/VS Code share data between each other. Enrich your coding experience with the new data available. + + + +Contact: +merryyellow@outlook.com + +Website: +https://unitycodeassist.netlify.app/ + +Discord: +https://discord.gg/2CgKHDq + +Forum: +https://forum.unity.com/threads/code-assist-empower-your-ide.1384731/ + +GitHub: +https://github.com/merryyellow/Unity-Code-Assist + +Asset Store: +http://u3d.as/2N2H + +itch.io: +https://meryel.itch.io/unity-code-assist + +Visual Studio Marketplace: +https://marketplace.visualstudio.com/items?itemName=MerryYellow.UCA-Lite + +VS Code Marketplace: +https://marketplace.visualstudio.com/items?itemName=MerryYellow.uca-lite-vscode + + + +Restrictions: +* Unity 2021.2 and newer. +* Visual Studio 2022 or VS Code (1.75+). Does not work with Visual Studio for Mac, Rider or any other IDE or text editor. + + + +How to Setup: +* Import the Unity asset with the package manager into your Unity project +* In Unity, from top menu bar, select "Tools"->"Code Assist"->"Setup"->"Upgrade to full version" (You can skip this step if you have installed it before for another project). This will uninstall the lite version of extension from Visual Studio/VS Code, and then install full version of extension to Visual Studio/VS Code. To install the extension manually, see "YOUR_PROJECT_PATH/Packages/com.merry-yellow.code-assist/Installers~/Extension Installation.md" +* Open your Unity project with Visual Studio/VS Code. Code Assist loads in background with low priority, so it will be ready in a minute when Visual Studio/VS Code first starts up. +* To check if setup is successfull, in Unity, from top menu bar choose "Tools"->"Code Assist"->"Status". The windows should display "Code Assist is working!". + + + +How to Use: +Code Assist is always active while you are coding. The following samples will give you a glimpse of Code Assist. +* Code Completion: In a class which derives MonoBehaviour, type "CompareTag(". When you press double quotes("), code completion popup should appear with the available tags of the scene. +* Inline Visuals: In a class which derives MonoBehaviour, type "gameObject.layer = 0;" and save the document. "Default" text should appear on top or right of "0". +* Code Analyzers: Define a Vector3 (let's say vec3). When used like "if (vec3.magnitude < 10)", a warning will appear on that line. Press Alt+Enter to convert it to "if (vec3.sqrMagnitude < 10 * 10)", which has better performance. + + + +Generative AI: +Generative AI is working only in Visual Studio (for now). It does not work in VS Code. +Generative AI is one of the features of Code Assist. If you have any ethical or legal concerns, you can use Code Assist without this feature by disabling generative AI in the options. + +To use generative AI with your comments: +* Type "//gpt " +* Type your prompt +* Press Enter key + +To use generative AI with CodeLens: +* Click Gpt Codelens which is above class or method declaration + +Requirements (OpenAI ChatGPT): You need an OpenAI account and provide it's API key to this asset. +https://platform.openai.com/account/api-keys + +Provide key by one of the below +* Create an environment variable called OPENAI_API_KEY with the API key +* Create a file with name .openai under user profile directory with the API key +* Set API key in Visual Studio options, Tools->Options->Unity Code Assist->Generative AI->Authentication + +Requirements (Google Gemini): You need a Google account and provide it's API key to this asset. +https://ai.google.dev/gemini-api/docs/api-key + +Provide key by one of the below +* Create an environment variable called GOOGLE_API_KEY with the API key +* Create a file with name .gemini under user profile directory with the API key +* Set API key in options, Tools->Options->Unity Code Assist->Generative AI->Authentication + +Requirements (Anthropic Claude): You need an Anthropic account and provide it's API key to this asset. +https://console.anthropic.com/settings/keys + +Provide key by one of the below +* Create an environment variable called ANTHROPIC_API_KEY with the API key +* Create a file with name .anthropic under user profile directory with the API key +* Set API key in options, Tools->Options->Comment2GPT->Authentication + +Requirements (DeepSeek): You need a DeepSeek account and provide it's API key to this asset. +https://platform.deepseek.com/api_keys + +Provide key by one of the below +* Create an environment variable called DEEPSEEK_API_KEY with the API key +* Create a file with name .deepseek under user profile directory with the API key +* Set API key in options, Tools->Options->Comment2GPT->Authentication + +This asset has one-time purchase fee, but you may need to pay extra for OpenAI, Google AI, Anthropic or DeepSeek services to use Generative AI feature. +https://openai.com/pricing +https://ai.google.dev/pricing +https://www.anthropic.com/pricing#anthropic-api +https://api-docs.deepseek.com/quick_start/pricing + + + +Troubleshooting: +* Make sure in Unity, "Tools"->"Code Assist"->"Status" is available from the top menu bar. If not, reimport the asset. +* Make sure in Visual Studio, "Extensions"->"Unity Code Assist"->Status is available from the top menu bar. If not, install the extension manually, see "YOUR_PROJECT_PATH/Packages/com.merry-yellow.code-assist/Installers~/Extension Installation.md" +* Make sure in VS Code,"Unity Code Assist: Status" command is avaible in the commands palette (shortcut: Ctrl+Shift+P) . If not, install the extension manually, see "YOUR_PROJECT_PATH/Packages/com.merry-yellow.code-assist/Installers~/Extension Installation.md" +* If Visual Studio/VS Code has just been started, just wait; it usually takes around one minute to fully load Code Assist. +* If still not working, in Unity try "Tools"->"Code Assist"->"Synchronize" from the top menu bar. This will attempt a new connection with Visual Studio/VS Code. +* If none works above, try restarting both Unity and Visual Studio/VS Code; sometimes an unclosed background thread blocks communication channels (network ports). + + + +Error Reporting: +* In Unity, choose "Tools"->"Code Assist"->"Report error" from the menu bar, to open feedback window. +* Or in Visual Studio, choose "Extensions"->"Unity Code Assist"->"Report error" from the menu bar, to open feedback window. (There is no feedback window in VS Code, log files are under system temp folder) +* In the feedback window, you can view the most recent logs, or view full log of Unity or Visual Studio. +* You can report the error via email ( merryyellow@outlook.com ) or Discord ( https://discord.gg/2CgKHDq ) or GitHub ( https://github.com/merryyellow/Unity-Code-Assist/issues/new ) +* Attaching full logs is recommended when reporting an error. + + + +Thank you for using Code Assist. We hope this will help you in your crazy journey called game development :) \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/README.md.meta b/Packages/com.merry-yellow.code-assist/README.md.meta new file mode 100644 index 0000000..6c5fb03 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6e2203094ce734a4d89f7d4287db6b83 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/Third Party Notices.md b/Packages/com.merry-yellow.code-assist/Third Party Notices.md new file mode 100644 index 0000000..35102eb --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Third Party Notices.md @@ -0,0 +1,647 @@ +This asset is governed by the Asset Store EULA; however, the following components are governed by the licenses indicated below: + + + + +roslyn-linq-rewrite +MIT License +https://github.com/antiufo/roslyn-linq-rewrite/blob/master/LICENSE.txt +------------------------------- +MIT License + +Copyright (c) 2016 Andrea Martinelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +ConstVisualizer +MIT License +https://github.com/mrlacey/ConstVisualizer/blob/main/LICENSE +------------------------------- +MIT License + +Copyright (c) 2020 Matt Lacey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +InlineColorPicker +MIT License +https://github.com/nokola/InlineColorPicker/blob/main/LICENSE +------------------------------- +MIT License + +Copyright (c) 2021 Nokola + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +Roslyn +MIT License +https://github.com/dotnet/roslyn/blob/main/License.txt +------------------------------- +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +YamlDotNet +MIT License +https://github.com/aaubry/YamlDotNet/blob/master/LICENSE.txt +------------------------------- +Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Antoine Aubry and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +Command Line Parser +MIT License +https://github.com/commandlineparser/commandline/blob/master/License.md +------------------------------- +The MIT License (MIT) + +Copyright (c) 2005 - 2015 Giacomo Stelluti Scala & Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + + + + +UnityCommandLineTools +MIT License +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md +------------------------------- +MIT License + +Copyright (c) 2020 Katsumasa + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +microscope +MIT License +https://github.com/bert2/microscope/blob/main/README.md +------------------------------- +MIT License + +Copyright (c) 2020 Robert Hofmann + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +MQTTnet +MIT License +https://github.com/dotnet/MQTTnet/blob/master/LICENSE +------------------------------- +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors +All Rights Reserved + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +logging +MIT License +https://github.com/nreco/logging/blob/master/LICENSE +------------------------------- +MIT License + +Copyright (c) 2017 NReco + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +MQTT.js +MIT License +https://github.com/mqttjs/MQTT.js/blob/main/LICENSE.md +------------------------------- +The MIT License (MIT) +Copyright (c) 2015-2016 MQTT.js contributors +MQTT.js contributors listed at https://github.com/mqttjs/MQTT.js#contributors + +Copyright 2011-2014 by Adam Rudd + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + +winston +MIT License +https://github.com/winstonjs/winston/blob/master/LICENSE +------------------------------- +Copyright (c) 2010 Charlie Robbins + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + + + +winston-vscode +MIT License +https://github.com/pustovitDmytro/winston-vscode/blob/master/LICENSE.md +------------------------------- +MIT License + +Copyright (c) 2023 Dmytro Pustovit + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + +js-sha256 +MIT License +https://github.com/emn178/js-sha256/blob/master/LICENSE.txt +------------------------------- +Copyright (c) 2014-2024 Chen, Yi-Cyuan + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + +find-process +MIT License +https://github.com/yibn2008/find-process/blob/master/LICENSE +------------------------------- +The MIT License (MIT) + +Copyright (c) 2016 Zoujie + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +unitypackage +MIT License +https://github.com/natsuneko-laboratory/unitypackage/blob/main/LICENSE +------------------------------- +MIT License + +Copyright (c) 2022 Natsune Mochizuki + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +Newtonsoft.Json +MIT License +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md +------------------------------- +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + +Newtonsoft.Json-for-Unity +MIT License +https://github.com/applejag/Newtonsoft.Json-for-Unity/blob/master/LICENSE.md +------------------------------- +The MIT License (MIT) + +Copyright (c) 2019 Kalle Jillheden (jilleJr) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + +Caching +MIT License +https://github.com/jchristn/Caching/blob/master/LICENSE.md +------------------------------- +The MIT License (MIT) +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + +openai-dotnet +MIT License +https://github.com/openai/openai-dotnet/blob/main/LICENSE +------------------------------- +The MIT License (MIT) + +Copyright (c) 2024 OpenAI (https://openai.com) + + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + + + +azure-sdk-for-net +MIT License +https://github.com/Azure/azure-sdk-for-net/blob/main/LICENSE.txt +------------------------------- +The MIT License (MIT) + +Copyright (c) 2015 Microsoft + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +Anthropic.SDK +MIT License +https://github.com/tghamm/Anthropic.SDK/blob/main/LICENSE.md +------------------------------- +The MIT License (MIT) + +Copyright (c) 2023 Grant Hamm + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +DeepSeek-NET +MIT License +https://github.com/luisllamasbinaburo/DeepSeek-NET/blob/master/LICENSE.txt +------------------------------- +MIT License + +Copyright (c) [year] [fullname] + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +EditorCoroutines +Unity Companion License +https://unity.com/legal/licenses/unity-companion-license +------------------------------- +Unity Companion License ("License") +v1.3 + +Unity Technologies ApS (“Unityâ€) grants to you a worldwide, non-exclusive, no-charge, and royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute the work of authorship that accompanies this License (“Workâ€), subject to the following terms and conditions: + +1. Unity Companion Use. Exercise of the license granted herein is permitted as long as it is in connection with the authoring and/or distribution of applications, software, or other content under a valid Unity content authoring and rendering engine software license (“Engine Licenseâ€). That means, for example, as long as you authored content using the Work under an Engine License, you may distribute the Work in connection with that content as you see fit under this License. No other exercise of the license granted herein is permitted, and in no event may the Work be used for competitive analysis or to develop a competing product or service. + +2. No Modification of Engine License. Neither this License nor any exercise of the license granted herein modifies the Engine License in any way. + +3. Ownership; Derivative Works. + +3.1 You own your content. In this License, “derivative works†means derivatives of the Work itself--works derived only from the Work by you under this License (for example, modifying the code of the Work itself to improve its efficacy); “derivative works†of the Work do not include, for example, games, apps, or content that you create with the Work. You keep all right, title, and interest in your own content. + +3.2 Unity owns its content. While you keep all right, title, and interest to your own content per the above, as between Unity and you, Unity will own all right, title, and interest to all intellectual property rights (including patent, trademark, and copyright) in the Work and derivative works of the Work, and you hereby assign and agree to assign all such rights in those derivative works to Unity. Should assignment be invalid for any reason, you grant to Unity an irrevocable, perpetual, worldwide, non-exclusive, no-charge, and royalty-free license (with the right to grant sublicenses) under those intellectual property rights to those derivative works. You also agree to waive or refrain from asserting any author’s right, moral rights, or like rights to the extent necessary to permit exploitation as contemplated under this License. + +3.3 Your right to use derivative works. You will always have the right to use derivative works of the Work you create, consonant with this License. + +4. Trademarks. You are not granted any right or license under this License to use any trademarks, service marks, trade names, products names, or branding of Unity or its affiliates (“Trademarksâ€). Descriptive uses of Trademarks are permitted; see, for example, Unity’s Trademark Guidelines at https://unity.com/legal/branding_trademarks. + +5. Notices & Third-Party Rights. This License, including the copyright notice associated with the Work, must be provided in all substantial portions of the Work and derivative works thereof (or, if that is impracticable, in any other location where such notices are customarily placed). Further, if the Work is accompanied by a Unity “third-party notices†or similar file, you acknowledge and agree that software or content identified in that file is governed by those separate license terms. + +6. DISCLAIMER, LIMITATION OF LIABILITY. THE Work AND ANY DERIVATIVE WORKS THEREOF IS PROVIDED ON AN "AS IS" BASIS, AND IS PROVIDED WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND/OR NON-INFRINGEMENT. IN NO EVENT SHALL ANY COPYRIGHT HOLDER OR AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES (WHETHER DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL, INCLUDING PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF USE, DATA, OR PROFITS, AND BUSINESS INTERRUPTION), OR OTHER LIABILITY WHATSOEVER, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM OR OUT OF, OR IN CONNECTION WITH, THE Work OR ANY DERIVATIVE WORKS THEREOF OR THE USE OF OR OTHER DEALINGS IN SAME, EVEN WHERE ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +7. USE IS ACCEPTANCE and License Versions. Your access to and use of the Work constitutes your acceptance of this License and its terms and conditions. This License may be modified or updated; upon any such modification or update, you will comply with the terms of the updated License for any use of any of the Work under the updated License. + +8. Use in Compliance with Law and Termination. Your exercise of the license granted herein will at all times be in compliance with applicable law and will not infringe any proprietary rights (including intellectual property rights); this License will terminate immediately (i) on any breach by you of this License; and (ii) if you commence any form of patent litigation, including a cross-claim or counterclaim, against anyone wherein you allege that the Work constitutes direct or secondary/indirect patent infringement. + +9. Severability. If any provision of this License is held to be unenforceable or invalid, that provision will be enforced to the maximum extent possible and the other provisions will remain in full force and effect. + +10. Governing Law and Venue. This License is governed by and construed in accordance with the laws of Denmark, except for its conflict of laws rules; the United Nations Convention on Contracts for the International Sale of Goods will not apply. If you reside (or your principal place of business is) within the United States, you and Unity agree to submit to the personal and exclusive jurisdiction of and venue in the state and federal courts located in San Francisco County, California concerning any dispute arising out of this License (“Disputeâ€). If you reside (or your principal place of business is) outside the United States, you and Unity agree to submit to the personal and exclusive jurisdiction of and venue in the courts located in Copenhagen, Denmark concerning any Dispute. diff --git a/Packages/com.merry-yellow.code-assist/Third Party Notices.md.meta b/Packages/com.merry-yellow.code-assist/Third Party Notices.md.meta new file mode 100644 index 0000000..590ccae --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/Third Party Notices.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9881c9372a3cb5f41a3c73f821f29ce9 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.merry-yellow.code-assist/package.json b/Packages/com.merry-yellow.code-assist/package.json new file mode 100644 index 0000000..548309c --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/package.json @@ -0,0 +1,33 @@ +{ + "name" : "com.merry-yellow.code-assist", + "version" : "1.4.19", + "displayName" : "Code Assist", + "description" : "Code Assist improves your coding experience with Visual Studio and VS Code by adding more features for Unity projects. Coding Unity scripts becomes easier and more efficient and with fewer bugs.", + "unity" : "2021.2", + "type" : "tool", + "changelogUrl": "https://code-assist.netlify.app/changelog", + "dependencies" : { + }, + "keywords" : [ + "Productivity", + "Functionality", + "Script", + "CSharp", + "Scripting", + "Code Editor", + "IDE", + "Visual Studio", + "Tool", + "Code", + "Utility", + "Coding", + "C#", + "Workflow", + "Generative AI" + ], + "author" : { + "name" : "Merry Yellow", + "email" : "merryyellow@outlook.com", + "url" : "https://code-assist.netlify.app/" + } +} \ No newline at end of file diff --git a/Packages/com.merry-yellow.code-assist/package.json.meta b/Packages/com.merry-yellow.code-assist/package.json.meta new file mode 100644 index 0000000..b25ac62 --- /dev/null +++ b/Packages/com.merry-yellow.code-assist/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8f5685fdf5428934e944eb260848149c +PackageManifestImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/manifest.json b/Packages/manifest.json new file mode 100644 index 0000000..b9a8287 --- /dev/null +++ b/Packages/manifest.json @@ -0,0 +1,51 @@ +{ + "dependencies": { + "com.unity.ai.navigation": "2.0.9", + "com.unity.cinemachine": "3.1.5", + "com.unity.collab-proxy": "2.10.2", + "com.unity.ide.rider": "3.0.38", + "com.unity.ide.visualstudio": "2.0.25", + "com.unity.inputsystem": "1.16.0", + "com.unity.multiplayer.center": "1.0.1", + "com.unity.render-pipelines.universal": "17.3.0", + "com.unity.test-framework": "1.6.0", + "com.unity.timeline": "1.8.9", + "com.unity.ugui": "2.0.0", + "com.unity.visualscripting": "1.9.9", + "jp.hadashikick.vcontainer": "https://github.com/hadashiA/VContainer.git?path=VContainer/Assets/VContainer", + "com.unity.modules.accessibility": "1.0.0", + "com.unity.modules.adaptiveperformance": "1.0.0", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vectorgraphics": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } +} diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json new file mode 100644 index 0000000..3ee7933 --- /dev/null +++ b/Packages/packages-lock.json @@ -0,0 +1,513 @@ +{ + "dependencies": { + "com.merry-yellow.code-assist": { + "version": "file:com.merry-yellow.code-assist", + "depth": 0, + "source": "embedded", + "dependencies": {} + }, + "com.unity.ai.navigation": { + "version": "2.0.9", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.ai": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.burst": { + "version": "1.8.25", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.2.1", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.cinemachine": { + "version": "3.1.5", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.splines": "2.0.0", + "com.unity.modules.imgui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.collab-proxy": { + "version": "2.10.2", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.collections": { + "version": "2.6.2", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.8.23", + "com.unity.mathematics": "1.3.2", + "com.unity.test-framework": "1.4.6", + "com.unity.nuget.mono-cecil": "1.11.5", + "com.unity.test-framework.performance": "3.0.3" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "2.0.5", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.ide.rider": { + "version": "3.0.38", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.visualstudio": { + "version": "2.0.25", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.31" + }, + "url": "https://packages.unity.com" + }, + "com.unity.inputsystem": { + "version": "1.16.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.uielements": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.mathematics": { + "version": "1.3.3", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.multiplayer.center": { + "version": "1.0.1", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.uielements": "1.0.0" + } + }, + "com.unity.nuget.mono-cecil": { + "version": "1.11.6", + "depth": 3, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.render-pipelines.core": { + "version": "17.3.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.burst": "1.8.14", + "com.unity.mathematics": "1.3.2", + "com.unity.ugui": "2.0.0", + "com.unity.collections": "2.4.3", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.render-pipelines.universal": { + "version": "17.3.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.render-pipelines.core": "17.3.0", + "com.unity.shadergraph": "17.3.0", + "com.unity.render-pipelines.universal-config": "17.0.3" + } + }, + "com.unity.render-pipelines.universal-config": { + "version": "17.0.3", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.render-pipelines.core": "17.0.3" + } + }, + "com.unity.searcher": { + "version": "4.9.4", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.settings-manager": { + "version": "2.1.1", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.shadergraph": { + "version": "17.3.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.render-pipelines.core": "17.3.0", + "com.unity.searcher": "4.9.3" + } + }, + "com.unity.splines": { + "version": "2.8.2", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.2.1", + "com.unity.modules.imgui": "1.0.0", + "com.unity.settings-manager": "1.0.3" + }, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.6.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.ext.nunit": "2.0.3", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.test-framework.performance": { + "version": "3.2.0", + "depth": 3, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.33", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.timeline": { + "version": "1.8.9", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ugui": { + "version": "2.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.visualscripting": { + "version": "1.9.9", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "jp.hadashikick.vcontainer": { + "version": "https://github.com/hadashiA/VContainer.git?path=VContainer/Assets/VContainer", + "depth": 0, + "source": "git", + "dependencies": {}, + "hash": "0093a457d1abe17bbb97d9c0b7dea921c5e670e4" + }, + "com.unity.modules.accessibility": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.adaptiveperformance": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.subsystems": "1.0.0" + } + }, + "com.unity.modules.ai": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.androidjni": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.assetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.audio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.cloth": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.director": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + }, + "com.unity.modules.hierarchycore": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.subsystems": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrainphysics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.modules.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics2d": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.hierarchycore": "1.0.0", + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.umbra": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unityanalytics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.unitywebrequest": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unitywebrequestassetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestaudio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.audio": "1.0.0" + } + }, + "com.unity.modules.unitywebrequesttexture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestwww": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.vectorgraphics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.modules.vehicles": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.video": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.vr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } + }, + "com.unity.modules.wind": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.xr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.subsystems": "1.0.0" + } + } + } +} diff --git a/ProjectSettings/AudioManager.asset b/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..27287fe --- /dev/null +++ b/ProjectSettings/AudioManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 diff --git a/ProjectSettings/ClusterInputManager.asset b/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/ProjectSettings/DynamicsManager.asset b/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..fc90ab9 --- /dev/null +++ b/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_AutoSimulation: 1 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..d057ba3 --- /dev/null +++ b/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,13 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: + - enabled: 1 + path: Assets/Scenes/SampleScene.unity + guid: 99c9720ab356a0642a771bea13969a05 + m_configObjects: + com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3} + m_UseUCBPForAssetBundles: 0 diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..878c4cb --- /dev/null +++ b/ProjectSettings/EditorSettings.asset @@ -0,0 +1,50 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 15 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 0 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerCacheSize: 10 + m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_EnableEditorAsyncCPUTextureLoading: 0 + m_AsyncShaderCompilation: 1 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 1 + m_EnterPlayModeOptions: 0 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_InspectorUseIMGUIDefaultInspector: 0 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 1 + m_DisableCookiesInLightmapper: 0 + m_ShadowmaskStitching: 0 + m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableAuth: 0 + m_CacheServerEnableTls: 0 + m_CacheServerValidationMode: 2 + m_CacheServerDownloadBatchSize: 128 + m_EnableEnlightenBakedGI: 0 + m_ReferencedClipsExactNaming: 1 + m_ForceAssetUnloadAndGCOnSceneLoad: 1 diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..84b2182 --- /dev/null +++ b/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,69 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 16 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_PreloadShadersBatchTimeLimit: -1 + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_CustomRenderPipeline: {fileID: 11400000, guid: 4b83569d67af61e458304325a23e5dfd, type: 2} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_BrgStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_RenderPipelineGlobalSettingsMap: + UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa, type: 2} + m_ShaderBuildSettings: + keywordDeclarationOverrides: [] + m_LightsUseLinearIntensity: 1 + m_LightsUseColorTemperature: 1 + m_LogWhenShaderIsCompiled: 0 + m_LightProbeOutsideHullStrategy: 0 + m_CameraRelativeLightCulling: 0 + m_CameraRelativeShadowCulling: 0 diff --git a/ProjectSettings/InputManager.asset b/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..b16147e --- /dev/null +++ b/ProjectSettings/InputManager.asset @@ -0,0 +1,487 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: joystick button 8 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: backspace + altNegativeButton: + altPositiveButton: joystick button 9 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Reset + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Next + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page down + altNegativeButton: + altPositiveButton: joystick button 5 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Previous + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page up + altNegativeButton: + altPositiveButton: joystick button 4 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Validate + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Persistent + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: right shift + altNegativeButton: + altPositiveButton: joystick button 2 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Multiplier + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: joystick button 3 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 6 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 5 + joyNum: 0 diff --git a/ProjectSettings/MemorySettings.asset b/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/ProjectSettings/MultiplayerManager.asset b/ProjectSettings/MultiplayerManager.asset new file mode 100644 index 0000000..2a93664 --- /dev/null +++ b/ProjectSettings/MultiplayerManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!655991488 &1 +MultiplayerManager: + m_ObjectHideFlags: 0 + m_EnableMultiplayerRoles: 0 + m_StrippingTypes: {} diff --git a/ProjectSettings/NavMeshAreas.asset b/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..3b0b7c3 --- /dev/null +++ b/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..be4a797 --- /dev/null +++ b/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreviewPackages: 0 + m_EnablePackageDependencies: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_ErrorMessage: + m_Original: + m_Id: + m_Name: + m_Url: + m_Scopes: [] + m_IsDefault: 0 + m_Capabilities: 0 + m_Modified: 0 + m_Name: + m_Url: + m_Scopes: + - + m_SelectedScopeIndex: 0 diff --git a/ProjectSettings/Packages/com.unity.dedicated-server/MultiplayerRolesSettings.asset b/ProjectSettings/Packages/com.unity.dedicated-server/MultiplayerRolesSettings.asset new file mode 100644 index 0000000..d72800d --- /dev/null +++ b/ProjectSettings/Packages/com.unity.dedicated-server/MultiplayerRolesSettings.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 53 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 15023, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: UnityEditor.MultiplayerModule.dll::UnityEditor.Multiplayer.Internal.MultiplayerRolesSettings + m_MultiplayerRoleForClassicProfile: + m_Keys: [] + m_Values: diff --git a/ProjectSettings/Physics2DSettings.asset b/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..6c5cf8a --- /dev/null +++ b/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_AutoSimulation: 1 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 0 + m_AutoSyncTransforms: 0 + m_AlwaysShowColliders: 0 + m_ShowColliderSleep: 1 + m_ShowColliderContacts: 0 + m_ShowColliderAABB: 0 + m_ContactArrowScale: 0.2 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/ProjectSettings/PresetManager.asset b/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..1c62123 --- /dev/null +++ b/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,942 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 28 + productGUID: 30e8e9f5b1567a24482f09e141d1bad3 + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: HelixJump + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1024 + defaultScreenHeight: 768 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 1 + unsupportedMSAAFallback: 0 + m_SpriteBatchMaxVertexCount: 65535 + m_SpriteBatchVertexThreshold: 300 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 0 + androidDisplayOptions: 1 + androidBlitType: 0 + androidResizeableActivity: 1 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + androidAutoRotationBehavior: 1 + androidPredictiveBackSupport: 1 + androidApplicationEntry: 2 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + audioSpatialExperience: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + dedicatedServerOptimizations: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 1 + meshDeformation: 2 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + switchMaxWorkerMultiple: 8 + switchNVNGraphicsFirmwareMemory: 32 + switchGraphicsJobsSyncAfterKick: 1 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 1 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + loadStoreDebugModeEnabled: 0 + visionOSBundleVersion: 1.0 + tvOSBundleVersion: 1.0 + bundleVersion: 0.1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + allowHDRDisplaySupport: 0 + useHDRDisplay: 0 + hdrBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.4 + androidMinAspectRatio: 1 + applicationIdentifier: + Android: com.UnityTechnologies.com.unity.template.urpblank + Standalone: com.Unity-Technologies.com.unity.template.urp-blank + iPhone: com.Unity-Technologies.com.unity.template.urp-blank + buildNumber: + Standalone: 0 + VisionOS: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 1 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 25 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + AndroidPreferredDataLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + androidSplitApplicationBinary: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + strictShaderVariantMatching: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSSimulatorArchitecture: 0 + iOSTargetOSVersionString: 15.0 + tvOSSdkVersion: 0 + tvOSSimulatorArchitecture: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 15.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + metalCompileShaderBinary: 0 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: 3c72c65a16f0acb438eed22b8b16c24a + templatePackageId: com.unity.template.urp-blank@17.0.14 + templateDefaultScene: Assets/Scenes/SampleScene.unity + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 2 + AndroidAllowedArchitectures: -13 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 + AndroidEnableArm64MTE: 0 + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + androidAppCategory: 3 + useAndroidAppCategory: 1 + androidAppCategoryOther: + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 150 + AndroidReportGooglePlayAppDependencies: 1 + androidSymbolsSizeThreshold: 800 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: + - m_BuildTarget: iPhone + m_Icons: + - m_Textures: [] + m_Width: 180 + m_Height: 180 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 167 + m_Height: 167 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 152 + m_Height: 152 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 76 + m_Height: 76 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 87 + m_Height: 87 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 60 + m_Height: 60 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 20 + m_Height: 20 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 1024 + m_Height: 1024 + m_Kind: 4 + m_SubKind: App Store + - m_BuildTarget: Android + m_Icons: + - m_Textures: [] + m_Width: 432 + m_Height: 432 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 324 + m_Height: 324 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 216 + m_Height: 216 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 162 + m_Height: 162 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 108 + m_Height: 108 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 81 + m_Height: 81 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 0 + m_SubKind: + - m_BuildTarget: tvOS + m_Icons: + - m_Textures: [] + m_Width: 1280 + m_Height: 768 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 800 + m_Height: 480 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 400 + m_Height: 240 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 4640 + m_Height: 1440 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 2320 + m_Height: 720 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 3840 + m_Height: 1440 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 1920 + m_Height: 720 + m_Kind: 1 + m_SubKind: + m_BuildTargetBatching: [] + m_BuildTargetShaderSettings: [] + m_BuildTargetGraphicsJobs: [] + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: + - m_BuildTarget: iOSSupport + m_APIs: 10000000 + m_Automatic: 1 + - m_BuildTarget: AndroidPlayer + m_APIs: 150000000b000000 + m_Automatic: 0 + m_BuildTargetVRSettings: [] + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: + - serializedVersion: 2 + m_BuildTarget: Android + m_EncodingQuality: 1 + m_BuildTargetGroupHDRCubemapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] + m_BuildTargetNormalMapEncoding: + - m_BuildTarget: Android + m_Encoding: 1 + m_BuildTargetDefaultTextureCompressionFormat: + - serializedVersion: 3 + m_BuildTarget: Android + m_Formats: 03000000 + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + editorGfxJobOverride: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 12.0 + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchEnableFileSystemTrace: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchCompilerFlags: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchDisableHTCSPlayerConnection: 0 + switchUseNewStyleFilepaths: 0 + switchUseLegacyFmodPriorities: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + switchUpgradedPlayerSettingsToNMETA: 0 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 0 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLPowerPreference: 2 + webGLWebAssemblyTable: 0 + webGLWebAssemblyBigInt: 0 + webGLCloseOnQuit: 0 + webWasm2023: 0 + webEnableSubmoduleStrippingCompatibility: 0 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: + Android: 1 + il2cppCompilerConfiguration: {} + il2cppCodeGeneration: {} + il2cppStacktraceInformation: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 1 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + editorAssembliesCompatibilityLevel: 1 + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: HelixJump + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: HelixJump + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} + metroSplashScreenUseBackgroundColor: 0 + syncCapabilities: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 1 + embeddedLinuxEnableGamepadInput: 0 + hmiCpuConfiguration: + hmiLogStartupTiming: 0 + qnxGraphicConfPath: + apiCompatibilityLevel: 6 + captureStartupLogs: {} + activeInputHandler: 2 + windowsGamepadBackendHint: 0 + cloudProjectId: 54d670be-638d-4e43-b78b-9ddf7653f362 + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: HelixJump 2025-12-10_10-35-55 + organizationId: darkmatterintern + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 + virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 + androidVulkanDenyFilterList: [] + androidVulkanAllowFilterList: [] + androidVulkanDeviceFilterListAsset: {fileID: 0} + d3d12DeviceFilterListAsset: {fileID: 0} + allowedHttpConnections: 3 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..78f7137 --- /dev/null +++ b/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 6000.3.0f1 +m_EditorVersionWithRevision: 6000.3.0f1 (d1870ce95baf) diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..fb7fc10 --- /dev/null +++ b/ProjectSettings/QualitySettings.asset @@ -0,0 +1,135 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 1 + m_QualitySettings: + - serializedVersion: 5 + name: Mobile + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 100 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 1 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: 5e6cbd92db86f4b18aec3ed561671858, type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: + - Standalone + - serializedVersion: 5 + name: PC + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 100 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: 4b83569d67af61e458304325a23e5dfd, type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: + - Android + - iPhone + m_TextureMipmapLimitGroupNames: [] + m_PerPlatformDefaultQuality: + Android: 0 + GameCoreScarlett: 1 + GameCoreXboxOne: 1 + Lumin: 0 + Nintendo Switch: 1 + Nintendo Switch 2: 1 + PS4: 1 + PS5: 1 + Server: 0 + Stadia: 0 + Standalone: 1 + WebGL: 0 + Windows Store Apps: 0 + XboxOne: 0 + iPhone: 0 + tvOS: 0 diff --git a/ProjectSettings/SceneTemplateSettings.json b/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..ede5887 --- /dev/null +++ b/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,121 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/ProjectSettings/ShaderGraphSettings.asset b/ProjectSettings/ShaderGraphSettings.asset new file mode 100644 index 0000000..ce8c243 --- /dev/null +++ b/ProjectSettings/ShaderGraphSettings.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3} + m_Name: + m_EditorClassIdentifier: + shaderVariantLimit: 128 + overrideShaderVariantLimit: 0 + customInterpolatorErrorThreshold: 32 + customInterpolatorWarningThreshold: 16 + customHeatmapValues: {fileID: 0} diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..a1643de --- /dev/null +++ b/ProjectSettings/TagManager.asset @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 3 + tags: + - Platform + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 + m_RenderingLayers: + - Default + - Light Layer 1 + - Light Layer 2 + - Light Layer 3 + - Light Layer 4 + - Light Layer 5 + - Light Layer 6 + - Light Layer 7 diff --git a/ProjectSettings/TimeManager.asset b/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..558a017 --- /dev/null +++ b/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/ProjectSettings/URPProjectSettings.asset b/ProjectSettings/URPProjectSettings.asset new file mode 100644 index 0000000..6ad5631 --- /dev/null +++ b/ProjectSettings/URPProjectSettings.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LastMaterialVersion: 10 + m_ProjectSettingFolderPath: URPDefaultResources diff --git a/ProjectSettings/UnityConnectSettings.asset b/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..029ad8b --- /dev/null +++ b/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + InsightsSettings: + m_EngineDiagnosticsEnabled: 1 + m_Enabled: 0 + CrashReportingSettings: + serializedVersion: 2 + m_EventUrl: https://perf-events.cloud.unity3d.com + m_EnableCloudDiagnosticsReporting: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + m_PackageRequiringCoreStatsPresent: 0 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/ProjectSettings/VFXManager.asset b/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..3a95c98 --- /dev/null +++ b/ProjectSettings/VFXManager.asset @@ -0,0 +1,12 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 diff --git a/ProjectSettings/VersionControlSettings.asset b/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/ProjectSettings/XRSettings.asset b/ProjectSettings/XRSettings.asset new file mode 100644 index 0000000..482590c --- /dev/null +++ b/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file diff --git a/RasterCommandBuffer.cs b/RasterCommandBuffer.cs new file mode 100644 index 0000000..3a02868 --- /dev/null +++ b/RasterCommandBuffer.cs @@ -0,0 +1,795 @@ + +using System; +using System.Collections.Generic; +using Unity.Collections; +using UnityEngine.Profiling; +using Unity.Profiling; +using UnityEngine.Rendering.RenderGraphModule; +using UnityEngine.Experimental.Rendering; + +// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +// +// This file is automatically generated by reflection on the UnityEngine.Rendering.CommandBuffer type. +// If you changed the command buffer and want to expose the changes here please open and SRP project +// "Edit/Rendering/Generate Core CommandBuffers" menu option. +// This will generate the new command buffer C# files in the project root. +// +// Note that while automated,this doesn't mean you won't have to think. Please consider any new methods on the command +// buffer if they are safe to be executed on the async compute queue or not, if they can be executed inside a +// native render pass or not,... and add the function to the appropriate lists in CommandBufferGenerator.cs in the +// com.unity.render-pipelines.core\Editor\CommandBuffers\CommandBufferGenerator\CommandBufferGenerator.cs. +// If you are unsure please ask the RenderGraph package owners for advise. +// +// Once generated, review the generated file and move the approved files into: +// \Packages\com.unity.render-pipelines.core\Runtime\CommandBuffers\ +// +// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +namespace UnityEngine.Rendering +{ + + /// + /// A command buffer that is used with a rasterization render graph pass. + /// + public class RasterCommandBuffer : BaseCommandBuffer, IRasterCommandBuffer + { + // RasterCommandBuffer is not created by users. The render graph creates them and passes them to the execute callback of the graph pass. + internal RasterCommandBuffer(CommandBuffer wrapped, RenderGraphPass executingPass, bool isAsync) : base(wrapped, executingPass, isAsync) { } + + /// Wraps [SetInvertCulling](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInvertCulling.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInvertCulling.html) + public void SetInvertCulling(bool invertCulling) { m_WrappedCommandBuffer.SetInvertCulling(invertCulling); } + + /// Wraps [SetViewport](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewport.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewport.html) + public void SetViewport(Rect pixelRect) { m_WrappedCommandBuffer.SetViewport(pixelRect); } + + /// Wraps [EnableScissorRect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableScissorRect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableScissorRect.html) + public void EnableScissorRect(Rect scissor) { m_WrappedCommandBuffer.EnableScissorRect(scissor); } + + /// Wraps [DisableScissorRect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableScissorRect.html) on a CommandBuffer. + + public void DisableScissorRect() { m_WrappedCommandBuffer.DisableScissorRect(); } + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(bool clearDepth, bool clearColor, Color backgroundColor) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.ClearRenderTarget(clearDepth, clearColor, backgroundColor); } + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(bool clearDepth, bool clearColor, Color backgroundColor, float depth) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.ClearRenderTarget(clearDepth, clearColor, backgroundColor, depth); } + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(bool clearDepth, bool clearColor, Color backgroundColor, float depth, uint stencil) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.ClearRenderTarget(clearDepth, clearColor, backgroundColor, depth, stencil); } + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(RTClearFlags clearFlags, Color backgroundColor, float depth, uint stencil) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.ClearRenderTarget(clearFlags, backgroundColor, depth, stencil); } + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(RTClearFlags clearFlags, Color[] backgroundColors, float depth, uint stencil) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.ClearRenderTarget(clearFlags, backgroundColors, depth, stencil); } + + /// Wraps [SetGlobalFloat](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + public void SetGlobalFloat(int nameID, float value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloat(nameID, value); } + + /// Wraps [SetGlobalInt](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + public void SetGlobalInt(int nameID, int value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalInt(nameID, value); } + + /// Wraps [SetGlobalInteger](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + public void SetGlobalInteger(int nameID, int value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalInteger(nameID, value); } + + /// Wraps [SetGlobalVector](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + public void SetGlobalVector(int nameID, Vector4 value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVector(nameID, value); } + + /// Wraps [SetGlobalColor](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + public void SetGlobalColor(int nameID, Color value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalColor(nameID, value); } + + /// Wraps [SetGlobalMatrix](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + public void SetGlobalMatrix(int nameID, Matrix4x4 value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrix(nameID, value); } + + /// Wraps [EnableShaderKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableShaderKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableShaderKeyword.html) + public void EnableShaderKeyword(string keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableShaderKeyword(keyword); } + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(in GlobalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableKeyword(keyword); } + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(Material material, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableKeyword(material, keyword); } + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(ComputeShader computeShader, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableKeyword(computeShader, keyword); } + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(RayTracingShader rayTracingShader, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableKeyword(rayTracingShader, keyword); } + + /// Wraps [DisableShaderKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableShaderKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableShaderKeyword.html) + public void DisableShaderKeyword(string keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableShaderKeyword(keyword); } + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(in GlobalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableKeyword(keyword); } + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(Material material, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableKeyword(material, keyword); } + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(ComputeShader computeShader, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableKeyword(computeShader, keyword); } + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(RayTracingShader rayTracingShader, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableKeyword(rayTracingShader, keyword); } + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(in GlobalKeyword keyword, bool value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetKeyword(keyword, value); } + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(Material material, in LocalKeyword keyword, bool value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetKeyword(material, keyword, value); } + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(ComputeShader computeShader, in LocalKeyword keyword, bool value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetKeyword(computeShader, keyword, value); } + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(RayTracingShader rayTracingShader, in LocalKeyword keyword, bool value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetKeyword(rayTracingShader, keyword, value); } + + /// Wraps [SetViewProjectionMatrices](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewProjectionMatrices.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewProjectionMatrices.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewProjectionMatrices.html) + public void SetViewProjectionMatrices(Matrix4x4 view, Matrix4x4 proj) { m_WrappedCommandBuffer.SetViewProjectionMatrices(view, proj); } + + /// Wraps [SetGlobalDepthBias](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalDepthBias.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalDepthBias.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalDepthBias.html) + public void SetGlobalDepthBias(float bias, float slopeBias) { m_WrappedCommandBuffer.SetGlobalDepthBias(bias, slopeBias); } + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(int nameID, float[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloatArray(nameID, values); } + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(int nameID, Vector4[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVectorArray(nameID, values); } + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(int nameID, Matrix4x4[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrixArray(nameID, values); } + + /// Wraps [SetLateLatchProjectionMatrices](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetLateLatchProjectionMatrices.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetLateLatchProjectionMatrices.html) + public void SetLateLatchProjectionMatrices(Matrix4x4[] projectionMat) { m_WrappedCommandBuffer.SetLateLatchProjectionMatrices(projectionMat); } + + /// Wraps [MarkLateLatchMatrixShaderPropertyID](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.MarkLateLatchMatrixShaderPropertyID.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.MarkLateLatchMatrixShaderPropertyID.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.MarkLateLatchMatrixShaderPropertyID.html) + public void MarkLateLatchMatrixShaderPropertyID(CameraLateLatchMatrixType matrixPropertyType, int shaderPropertyID) { m_WrappedCommandBuffer.MarkLateLatchMatrixShaderPropertyID(matrixPropertyType, shaderPropertyID); } + + /// Wraps [UnmarkLateLatchMatrix](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.UnmarkLateLatchMatrix.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.UnmarkLateLatchMatrix.html) + public void UnmarkLateLatchMatrix(CameraLateLatchMatrixType matrixPropertyType) { m_WrappedCommandBuffer.UnmarkLateLatchMatrix(matrixPropertyType); } + + /// Wraps [BeginSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) + public void BeginSample(string name) { m_WrappedCommandBuffer.BeginSample(name); } + + /// Wraps [EndSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) + public void EndSample(string name) { m_WrappedCommandBuffer.EndSample(name); } + + /// Wraps [BeginSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) + public void BeginSample(CustomSampler sampler) { m_WrappedCommandBuffer.BeginSample(sampler); } + + /// Wraps [EndSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) + public void EndSample(CustomSampler sampler) { m_WrappedCommandBuffer.EndSample(sampler); } + + /// Wraps [BeginSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) + public void BeginSample(ProfilerMarker marker) { m_WrappedCommandBuffer.BeginSample(marker); } + + /// Wraps [EndSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) + public void EndSample(ProfilerMarker marker) { m_WrappedCommandBuffer.EndSample(marker); } + + /// Wraps [IncrementUpdateCount](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IncrementUpdateCount.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IncrementUpdateCount.html) + public void IncrementUpdateCount(RenderTargetIdentifier dest) { m_WrappedCommandBuffer.IncrementUpdateCount(dest); } + + /// Wraps [SetInstanceMultiplier](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInstanceMultiplier.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInstanceMultiplier.html) + public void SetInstanceMultiplier(uint multiplier) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetInstanceMultiplier(multiplier); } + + /// Wraps [SetFoveatedRenderingMode](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetFoveatedRenderingMode.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetFoveatedRenderingMode.html) + public void SetFoveatedRenderingMode(FoveatedRenderingMode foveatedRenderingMode) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetFoveatedRenderingMode(foveatedRenderingMode); } + + /// Wraps [SetWireframe](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetWireframe.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetWireframe.html) + public void SetWireframe(bool enable) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetWireframe(enable); } + + /// Wraps [ConfigureFoveatedRendering](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ConfigureFoveatedRendering.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ConfigureFoveatedRendering.html) + public void ConfigureFoveatedRendering(IntPtr platformData) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.ConfigureFoveatedRendering(platformData); } + + /// Wraps [SetupCameraProperties](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetupCameraProperties.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetupCameraProperties.html) + public void SetupCameraProperties(Camera camera) { m_WrappedCommandBuffer.SetupCameraProperties(camera); } + + /// Wraps [InvokeOnRenderObjectCallbacks](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.InvokeOnRenderObjectCallbacks.html) on a CommandBuffer. + + public void InvokeOnRenderObjectCallbacks() { m_WrappedCommandBuffer.InvokeOnRenderObjectCallbacks(); } + + /// Wraps [SetShadingRateFragmentSize](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateFragmentSize.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateFragmentSize.html) + public void SetShadingRateFragmentSize(ShadingRateFragmentSize shadingRateFragmentSize) { m_WrappedCommandBuffer.SetShadingRateFragmentSize(shadingRateFragmentSize); } + + /// Wraps [SetShadingRateCombiner](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateCombiner.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateCombiner.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateCombiner.html) + public void SetShadingRateCombiner(ShadingRateCombinerStage stage, ShadingRateCombiner combiner) { m_WrappedCommandBuffer.SetShadingRateCombiner(stage, combiner); } + + /// Wraps [DrawMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + public void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, int submeshIndex, int shaderPass, MaterialPropertyBlock properties) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMesh(mesh, matrix, material, submeshIndex, shaderPass, properties); } + + /// Wraps [DrawMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + public void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, int submeshIndex, int shaderPass) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMesh(mesh, matrix, material, submeshIndex, shaderPass); } + + /// Wraps [DrawMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + public void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, int submeshIndex) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMesh(mesh, matrix, material, submeshIndex); } + + /// Wraps [DrawMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + public void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMesh(mesh, matrix, material); } + + /// Wraps [DrawMultipleMeshes](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + public void DrawMultipleMeshes(Matrix4x4[] matrices, Mesh[] meshes, int[] subsetIndices, int count, Material material, int shaderPass, MaterialPropertyBlock properties) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMultipleMeshes(matrices, meshes, subsetIndices, count, material, shaderPass, properties); } + + /// Wraps [DrawRenderer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + public void DrawRenderer(Renderer renderer, Material material, int submeshIndex, int shaderPass) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawRenderer(renderer, material, submeshIndex, shaderPass); } + + /// Wraps [DrawRenderer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + public void DrawRenderer(Renderer renderer, Material material, int submeshIndex) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawRenderer(renderer, material, submeshIndex); } + + /// Wraps [DrawRenderer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + public void DrawRenderer(Renderer renderer, Material material) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawRenderer(renderer, material); } + + /// Wraps [DrawRendererList](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRendererList.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRendererList.html) + public void DrawRendererList(RendererList rendererList) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawRendererList(rendererList); } + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int vertexCount, int instanceCount, MaterialPropertyBlock properties) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProcedural(matrix, material, shaderPass, topology, vertexCount, instanceCount, properties); } + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int vertexCount, int instanceCount) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProcedural(matrix, material, shaderPass, topology, vertexCount, instanceCount); } + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int vertexCount) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProcedural(matrix, material, shaderPass, topology, vertexCount); } + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount, int instanceCount, MaterialPropertyBlock properties) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProcedural(indexBuffer, matrix, material, shaderPass, topology, indexCount, instanceCount, properties); } + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount, int instanceCount) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProcedural(indexBuffer, matrix, material, shaderPass, topology, indexCount, instanceCount); } + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProcedural(indexBuffer, matrix, material, shaderPass, topology, indexCount); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProceduralIndirect(matrix, material, shaderPass, topology, bufferWithArgs, argsOffset, properties); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProceduralIndirect(matrix, material, shaderPass, topology, bufferWithArgs, argsOffset); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProceduralIndirect(matrix, material, shaderPass, topology, bufferWithArgs); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProceduralIndirect(indexBuffer, matrix, material, shaderPass, topology, bufferWithArgs, argsOffset, properties); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProceduralIndirect(indexBuffer, matrix, material, shaderPass, topology, bufferWithArgs, argsOffset); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProceduralIndirect(indexBuffer, matrix, material, shaderPass, topology, bufferWithArgs); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProceduralIndirect(matrix, material, shaderPass, topology, bufferWithArgs, argsOffset, properties); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProceduralIndirect(matrix, material, shaderPass, topology, bufferWithArgs, argsOffset); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProceduralIndirect(matrix, material, shaderPass, topology, bufferWithArgs); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProceduralIndirect(indexBuffer, matrix, material, shaderPass, topology, bufferWithArgs, argsOffset, properties); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProceduralIndirect(indexBuffer, matrix, material, shaderPass, topology, bufferWithArgs, argsOffset); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawProceduralIndirect(indexBuffer, matrix, material, shaderPass, topology, bufferWithArgs); } + + /// Wraps [DrawMeshInstanced](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + public void DrawMeshInstanced(Mesh mesh, int submeshIndex, Material material, int shaderPass, Matrix4x4[] matrices, int count, MaterialPropertyBlock properties) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMeshInstanced(mesh, submeshIndex, material, shaderPass, matrices, count, properties); } + + /// Wraps [DrawMeshInstanced](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + public void DrawMeshInstanced(Mesh mesh, int submeshIndex, Material material, int shaderPass, Matrix4x4[] matrices, int count) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMeshInstanced(mesh, submeshIndex, material, shaderPass, matrices, count); } + + /// Wraps [DrawMeshInstanced](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + public void DrawMeshInstanced(Mesh mesh, int submeshIndex, Material material, int shaderPass, Matrix4x4[] matrices) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMeshInstanced(mesh, submeshIndex, material, shaderPass, matrices); } + + /// Wraps [DrawMeshInstancedProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + public void DrawMeshInstancedProcedural(Mesh mesh, int submeshIndex, Material material, int shaderPass, int count, MaterialPropertyBlock properties) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMeshInstancedProcedural(mesh, submeshIndex, material, shaderPass, count, properties); } + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, ComputeBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMeshInstancedIndirect(mesh, submeshIndex, material, shaderPass, bufferWithArgs, argsOffset, properties); } + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, ComputeBuffer bufferWithArgs, int argsOffset) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMeshInstancedIndirect(mesh, submeshIndex, material, shaderPass, bufferWithArgs, argsOffset); } + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, ComputeBuffer bufferWithArgs) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMeshInstancedIndirect(mesh, submeshIndex, material, shaderPass, bufferWithArgs); } + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, GraphicsBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMeshInstancedIndirect(mesh, submeshIndex, material, shaderPass, bufferWithArgs, argsOffset, properties); } + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, GraphicsBuffer bufferWithArgs, int argsOffset) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMeshInstancedIndirect(mesh, submeshIndex, material, shaderPass, bufferWithArgs, argsOffset); } + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, GraphicsBuffer bufferWithArgs) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawMeshInstancedIndirect(mesh, submeshIndex, material, shaderPass, bufferWithArgs); } + + /// Wraps [DrawOcclusionMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawOcclusionMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawOcclusionMesh.html) + public void DrawOcclusionMesh(RectInt normalizedCamViewport) { ThrowIfRasterNotAllowed(); m_WrappedCommandBuffer.DrawOcclusionMesh(normalizedCamViewport); } + + /// Wraps [SetGlobalFloat](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + public void SetGlobalFloat(string name, float value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloat(name, value); } + + /// Wraps [SetGlobalInt](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + public void SetGlobalInt(string name, int value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalInt(name, value); } + + /// Wraps [SetGlobalInteger](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + public void SetGlobalInteger(string name, int value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalInteger(name, value); } + + /// Wraps [SetGlobalVector](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + public void SetGlobalVector(string name, Vector4 value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVector(name, value); } + + /// Wraps [SetGlobalColor](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + public void SetGlobalColor(string name, Color value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalColor(name, value); } + + /// Wraps [SetGlobalMatrix](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + public void SetGlobalMatrix(string name, Matrix4x4 value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrix(name, value); } + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(string propertyName, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloatArray(propertyName, values); } + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(int nameID, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloatArray(nameID, values); } + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(string propertyName, float[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloatArray(propertyName, values); } + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(string propertyName, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVectorArray(propertyName, values); } + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(int nameID, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVectorArray(nameID, values); } + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(string propertyName, Vector4[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVectorArray(propertyName, values); } + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(string propertyName, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrixArray(propertyName, values); } + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(int nameID, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrixArray(nameID, values); } + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(string propertyName, Matrix4x4[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrixArray(propertyName, values); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(string name, TextureHandle value) { ThrowIfGlobalStateNotAllowed(); ValidateTextureHandle(value); m_WrappedCommandBuffer.SetGlobalTexture(name, value); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(int nameID, TextureHandle value) { ThrowIfGlobalStateNotAllowed(); ValidateTextureHandle(value); m_WrappedCommandBuffer.SetGlobalTexture(nameID, value); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(string name, TextureHandle value, RenderTextureSubElement element) { ThrowIfGlobalStateNotAllowed(); ValidateTextureHandle(value); m_WrappedCommandBuffer.SetGlobalTexture(name, value, element); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(int nameID, TextureHandle value, RenderTextureSubElement element) { ThrowIfGlobalStateNotAllowed(); ValidateTextureHandle(value); m_WrappedCommandBuffer.SetGlobalTexture(nameID, value, element); } + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(string name, ComputeBuffer value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalBuffer(name, value); } + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(int nameID, ComputeBuffer value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalBuffer(nameID, value); } + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(string name, GraphicsBuffer value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalBuffer(name, value); } + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(int nameID, GraphicsBuffer value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalBuffer(nameID, value); } + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(ComputeBuffer buffer, int nameID, int offset, int size) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalConstantBuffer(buffer, nameID, offset, size); } + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(ComputeBuffer buffer, string name, int offset, int size) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalConstantBuffer(buffer, name, offset, size); } + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(GraphicsBuffer buffer, int nameID, int offset, int size) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalConstantBuffer(buffer, nameID, offset, size); } + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(GraphicsBuffer buffer, string name, int offset, int size) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalConstantBuffer(buffer, name, offset, size); } + + /// Wraps [SetShadowSamplingMode](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadowSamplingMode.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadowSamplingMode.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadowSamplingMode.html) + public void SetShadowSamplingMode(RenderTargetIdentifier shadowmap, ShadowSamplingMode mode) { m_WrappedCommandBuffer.SetShadowSamplingMode(shadowmap, mode); } + + /// Wraps [SetSinglePassStereo](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetSinglePassStereo.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetSinglePassStereo.html) + public void SetSinglePassStereo(SinglePassStereoMode mode) { m_WrappedCommandBuffer.SetSinglePassStereo(mode); } + + /// Wraps [IssuePluginEvent](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEvent.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEvent.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEvent.html) + public void IssuePluginEvent(IntPtr callback, int eventID) { m_WrappedCommandBuffer.IssuePluginEvent(callback, eventID); } + + /// Wraps [IssuePluginEventAndData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) + public void IssuePluginEventAndData(IntPtr callback, int eventID, IntPtr data) { m_WrappedCommandBuffer.IssuePluginEventAndData(callback, eventID, data); } + + /// Wraps [IssuePluginCustomBlit](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + public void IssuePluginCustomBlit(IntPtr callback, uint command, RenderTargetIdentifier source, RenderTargetIdentifier dest, uint commandParam, uint commandFlags) { m_WrappedCommandBuffer.IssuePluginCustomBlit(callback, command, source, dest, commandParam, commandFlags); } + + /// Wraps [IssuePluginCustomTextureUpdateV2](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) + public void IssuePluginCustomTextureUpdateV2(IntPtr callback, Texture targetTexture, uint userData) { m_WrappedCommandBuffer.IssuePluginCustomTextureUpdateV2(callback, targetTexture, userData); } + + } +} diff --git a/UnsafeCommandBuffer.cs b/UnsafeCommandBuffer.cs new file mode 100644 index 0000000..042e538 --- /dev/null +++ b/UnsafeCommandBuffer.cs @@ -0,0 +1,1851 @@ + +using System; +using System.Collections.Generic; +using Unity.Collections; +using UnityEngine.Profiling; +using Unity.Profiling; +using UnityEngine.Rendering.RenderGraphModule; +using UnityEngine.Experimental.Rendering; + +// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +// +// This file is automatically generated by reflection on the UnityEngine.Rendering.CommandBuffer type. +// If you changed the command buffer and want to expose the changes here please open and SRP project +// "Edit/Rendering/Generate Core CommandBuffers" menu option. +// This will generate the new command buffer C# files in the project root. +// +// Note that while automated,this doesn't mean you won't have to think. Please consider any new methods on the command +// buffer if they are safe to be executed on the async compute queue or not, if they can be executed inside a +// native render pass or not,... and add the function to the appropriate lists in CommandBufferGenerator.cs in the +// com.unity.render-pipelines.core\Editor\CommandBuffers\CommandBufferGenerator\CommandBufferGenerator.cs. +// If you are unsure please ask the RenderGraph package owners for advise. +// +// Once generated, review the generated file and move the approved files into: +// \Packages\com.unity.render-pipelines.core\Runtime\CommandBuffers\ +// +// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE +namespace UnityEngine.Rendering +{ + + /// + /// A command buffer that is used with an unsafe render graph pass. + /// + public class UnsafeCommandBuffer : BaseCommandBuffer, IUnsafeCommandBuffer + { + // UnsafeCommandBuffer is not created by users. The render graph creates them and passes them to the execute callback of the graph pass. + internal UnsafeCommandBuffer(CommandBuffer wrapped, RenderGraphPass executingPass, bool isAsync) : base(wrapped, executingPass, isAsync) { } + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(ComputeBuffer src, Action callback) { m_WrappedCommandBuffer.RequestAsyncReadback(src, callback); } + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(GraphicsBuffer src, Action callback) { m_WrappedCommandBuffer.RequestAsyncReadback(src, callback); } + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(ComputeBuffer src, int size, int offset, Action callback) { m_WrappedCommandBuffer.RequestAsyncReadback(src, size, offset, callback); } + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(GraphicsBuffer src, int size, int offset, Action callback) { m_WrappedCommandBuffer.RequestAsyncReadback(src, size, offset, callback); } + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, Action callback) { m_WrappedCommandBuffer.RequestAsyncReadback(src, callback); } + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, int mipIndex, Action callback) { m_WrappedCommandBuffer.RequestAsyncReadback(src, mipIndex, callback); } + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, int mipIndex, TextureFormat dstFormat, Action callback) { m_WrappedCommandBuffer.RequestAsyncReadback(src, mipIndex, dstFormat, callback); } + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, int mipIndex, GraphicsFormat dstFormat, Action callback) { m_WrappedCommandBuffer.RequestAsyncReadback(src, mipIndex, dstFormat, callback); } + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, Action callback) { m_WrappedCommandBuffer.RequestAsyncReadback(src, mipIndex, x, width, y, height, z, depth, callback); } + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, TextureFormat dstFormat, Action callback) { m_WrappedCommandBuffer.RequestAsyncReadback(src, mipIndex, x, width, y, height, z, depth, dstFormat, callback); } + + /// Wraps [RequestAsyncReadback](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadback.html) + public void RequestAsyncReadback(Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, GraphicsFormat dstFormat, Action callback) { m_WrappedCommandBuffer.RequestAsyncReadback(src, mipIndex, x, width, y, height, z, depth, dstFormat, callback); } + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, ComputeBuffer src, Action callback) where T : struct { m_WrappedCommandBuffer.RequestAsyncReadbackIntoNativeArray(output, src, callback); } + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, ComputeBuffer src, int size, int offset, Action callback) where T : struct { m_WrappedCommandBuffer.RequestAsyncReadbackIntoNativeArray(output, src, size, offset, callback); } + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, GraphicsBuffer src, Action callback) where T : struct { m_WrappedCommandBuffer.RequestAsyncReadbackIntoNativeArray(output, src, callback); } + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, GraphicsBuffer src, int size, int offset, Action callback) where T : struct { m_WrappedCommandBuffer.RequestAsyncReadbackIntoNativeArray(output, src, size, offset, callback); } + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, Action callback) where T : struct { m_WrappedCommandBuffer.RequestAsyncReadbackIntoNativeArray(output, src, callback); } + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, int mipIndex, Action callback) where T : struct { m_WrappedCommandBuffer.RequestAsyncReadbackIntoNativeArray(output, src, mipIndex, callback); } + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, int mipIndex, TextureFormat dstFormat, Action callback) where T : struct { m_WrappedCommandBuffer.RequestAsyncReadbackIntoNativeArray(output, src, mipIndex, dstFormat, callback); } + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, int mipIndex, GraphicsFormat dstFormat, Action callback) where T : struct { m_WrappedCommandBuffer.RequestAsyncReadbackIntoNativeArray(output, src, mipIndex, dstFormat, callback); } + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, Action callback) where T : struct { m_WrappedCommandBuffer.RequestAsyncReadbackIntoNativeArray(output, src, mipIndex, x, width, y, height, z, depth, callback); } + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, TextureFormat dstFormat, Action callback) where T : struct { m_WrappedCommandBuffer.RequestAsyncReadbackIntoNativeArray(output, src, mipIndex, x, width, y, height, z, depth, dstFormat, callback); } + + /// Wraps [RequestAsyncReadbackIntoNativeArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.RequestAsyncReadbackIntoNativeArray.html) + public void RequestAsyncReadbackIntoNativeArray(ref NativeArray`1 output, Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, GraphicsFormat dstFormat, Action callback) where T : struct { m_WrappedCommandBuffer.RequestAsyncReadbackIntoNativeArray(output, src, mipIndex, x, width, y, height, z, depth, dstFormat, callback); } + + /// Wraps [SetInvertCulling](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInvertCulling.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInvertCulling.html) + public void SetInvertCulling(bool invertCulling) { m_WrappedCommandBuffer.SetInvertCulling(invertCulling); } + + /// Wraps [SetComputeFloatParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + public void SetComputeFloatParam(ComputeShader computeShader, int nameID, float val) { m_WrappedCommandBuffer.SetComputeFloatParam(computeShader, nameID, val); } + + /// Wraps [SetComputeIntParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + public void SetComputeIntParam(ComputeShader computeShader, int nameID, int val) { m_WrappedCommandBuffer.SetComputeIntParam(computeShader, nameID, val); } + + /// Wraps [SetComputeVectorParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + public void SetComputeVectorParam(ComputeShader computeShader, int nameID, Vector4 val) { m_WrappedCommandBuffer.SetComputeVectorParam(computeShader, nameID, val); } + + /// Wraps [SetComputeVectorArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + public void SetComputeVectorArrayParam(ComputeShader computeShader, int nameID, Vector4[] values) { m_WrappedCommandBuffer.SetComputeVectorArrayParam(computeShader, nameID, values); } + + /// Wraps [SetComputeMatrixParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + public void SetComputeMatrixParam(ComputeShader computeShader, int nameID, Matrix4x4 val) { m_WrappedCommandBuffer.SetComputeMatrixParam(computeShader, nameID, val); } + + /// Wraps [SetComputeMatrixArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + public void SetComputeMatrixArrayParam(ComputeShader computeShader, int nameID, Matrix4x4[] values) { m_WrappedCommandBuffer.SetComputeMatrixArrayParam(computeShader, nameID, values); } + + /// Wraps [SetRayTracingShaderPass](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingShaderPass.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingShaderPass.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingShaderPass.html) + public void SetRayTracingShaderPass(RayTracingShader rayTracingShader, string passName) { m_WrappedCommandBuffer.SetRayTracingShaderPass(rayTracingShader, passName); } + + /// Wraps [Clear](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.Clear.html) on a CommandBuffer. + + public void Clear() { m_WrappedCommandBuffer.Clear(); } + + /// Wraps [ClearRandomWriteTargets](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRandomWriteTargets.html) on a CommandBuffer. + + public void ClearRandomWriteTargets() { m_WrappedCommandBuffer.ClearRandomWriteTargets(); } + + /// Wraps [SetViewport](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewport.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewport.html) + public void SetViewport(Rect pixelRect) { m_WrappedCommandBuffer.SetViewport(pixelRect); } + + /// Wraps [EnableScissorRect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableScissorRect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableScissorRect.html) + public void EnableScissorRect(Rect scissor) { m_WrappedCommandBuffer.EnableScissorRect(scissor); } + + /// Wraps [DisableScissorRect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableScissorRect.html) on a CommandBuffer. + + public void DisableScissorRect() { m_WrappedCommandBuffer.DisableScissorRect(); } + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(bool clearDepth, bool clearColor, Color backgroundColor) { m_WrappedCommandBuffer.ClearRenderTarget(clearDepth, clearColor, backgroundColor); } + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(bool clearDepth, bool clearColor, Color backgroundColor, float depth) { m_WrappedCommandBuffer.ClearRenderTarget(clearDepth, clearColor, backgroundColor, depth); } + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(bool clearDepth, bool clearColor, Color backgroundColor, float depth, uint stencil) { m_WrappedCommandBuffer.ClearRenderTarget(clearDepth, clearColor, backgroundColor, depth, stencil); } + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(RTClearFlags clearFlags, Color backgroundColor, float depth, uint stencil) { m_WrappedCommandBuffer.ClearRenderTarget(clearFlags, backgroundColor, depth, stencil); } + + /// Wraps [ClearRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ClearRenderTarget.html) + public void ClearRenderTarget(RTClearFlags clearFlags, Color[] backgroundColors, float depth, uint stencil) { m_WrappedCommandBuffer.ClearRenderTarget(clearFlags, backgroundColors, depth, stencil); } + + /// Wraps [SetGlobalFloat](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + public void SetGlobalFloat(int nameID, float value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloat(nameID, value); } + + /// Wraps [SetGlobalInt](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + public void SetGlobalInt(int nameID, int value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalInt(nameID, value); } + + /// Wraps [SetGlobalInteger](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + public void SetGlobalInteger(int nameID, int value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalInteger(nameID, value); } + + /// Wraps [SetGlobalVector](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + public void SetGlobalVector(int nameID, Vector4 value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVector(nameID, value); } + + /// Wraps [SetGlobalColor](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + public void SetGlobalColor(int nameID, Color value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalColor(nameID, value); } + + /// Wraps [SetGlobalMatrix](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + public void SetGlobalMatrix(int nameID, Matrix4x4 value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrix(nameID, value); } + + /// Wraps [EnableShaderKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableShaderKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableShaderKeyword.html) + public void EnableShaderKeyword(string keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableShaderKeyword(keyword); } + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(in GlobalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableKeyword(keyword); } + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(Material material, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableKeyword(material, keyword); } + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(ComputeShader computeShader, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableKeyword(computeShader, keyword); } + + /// Wraps [EnableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EnableKeyword.html) + public void EnableKeyword(RayTracingShader rayTracingShader, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.EnableKeyword(rayTracingShader, keyword); } + + /// Wraps [DisableShaderKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableShaderKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableShaderKeyword.html) + public void DisableShaderKeyword(string keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableShaderKeyword(keyword); } + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(in GlobalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableKeyword(keyword); } + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(Material material, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableKeyword(material, keyword); } + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(ComputeShader computeShader, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableKeyword(computeShader, keyword); } + + /// Wraps [DisableKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DisableKeyword.html) + public void DisableKeyword(RayTracingShader rayTracingShader, in LocalKeyword keyword) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.DisableKeyword(rayTracingShader, keyword); } + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(in GlobalKeyword keyword, bool value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetKeyword(keyword, value); } + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(Material material, in LocalKeyword keyword, bool value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetKeyword(material, keyword, value); } + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(ComputeShader computeShader, in LocalKeyword keyword, bool value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetKeyword(computeShader, keyword, value); } + + /// Wraps [SetKeyword](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetKeyword.html) + public void SetKeyword(RayTracingShader rayTracingShader, in LocalKeyword keyword, bool value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetKeyword(rayTracingShader, keyword, value); } + + /// Wraps [SetViewProjectionMatrices](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewProjectionMatrices.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewProjectionMatrices.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetViewProjectionMatrices.html) + public void SetViewProjectionMatrices(Matrix4x4 view, Matrix4x4 proj) { m_WrappedCommandBuffer.SetViewProjectionMatrices(view, proj); } + + /// Wraps [SetGlobalDepthBias](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalDepthBias.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalDepthBias.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalDepthBias.html) + public void SetGlobalDepthBias(float bias, float slopeBias) { m_WrappedCommandBuffer.SetGlobalDepthBias(bias, slopeBias); } + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(int nameID, float[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloatArray(nameID, values); } + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(int nameID, Vector4[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVectorArray(nameID, values); } + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(int nameID, Matrix4x4[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrixArray(nameID, values); } + + /// Wraps [SetLateLatchProjectionMatrices](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetLateLatchProjectionMatrices.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetLateLatchProjectionMatrices.html) + public void SetLateLatchProjectionMatrices(Matrix4x4[] projectionMat) { m_WrappedCommandBuffer.SetLateLatchProjectionMatrices(projectionMat); } + + /// Wraps [MarkLateLatchMatrixShaderPropertyID](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.MarkLateLatchMatrixShaderPropertyID.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.MarkLateLatchMatrixShaderPropertyID.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.MarkLateLatchMatrixShaderPropertyID.html) + public void MarkLateLatchMatrixShaderPropertyID(CameraLateLatchMatrixType matrixPropertyType, int shaderPropertyID) { m_WrappedCommandBuffer.MarkLateLatchMatrixShaderPropertyID(matrixPropertyType, shaderPropertyID); } + + /// Wraps [UnmarkLateLatchMatrix](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.UnmarkLateLatchMatrix.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.UnmarkLateLatchMatrix.html) + public void UnmarkLateLatchMatrix(CameraLateLatchMatrixType matrixPropertyType) { m_WrappedCommandBuffer.UnmarkLateLatchMatrix(matrixPropertyType); } + + /// Wraps [BeginSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) + public void BeginSample(string name) { m_WrappedCommandBuffer.BeginSample(name); } + + /// Wraps [EndSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) + public void EndSample(string name) { m_WrappedCommandBuffer.EndSample(name); } + + /// Wraps [BeginSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) + public void BeginSample(CustomSampler sampler) { m_WrappedCommandBuffer.BeginSample(sampler); } + + /// Wraps [EndSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) + public void EndSample(CustomSampler sampler) { m_WrappedCommandBuffer.EndSample(sampler); } + + /// Wraps [BeginSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BeginSample.html) + public void BeginSample(ProfilerMarker marker) { m_WrappedCommandBuffer.BeginSample(marker); } + + /// Wraps [EndSample](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.EndSample.html) + public void EndSample(ProfilerMarker marker) { m_WrappedCommandBuffer.EndSample(marker); } + + /// Wraps [IncrementUpdateCount](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IncrementUpdateCount.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IncrementUpdateCount.html) + public void IncrementUpdateCount(RenderTargetIdentifier dest) { m_WrappedCommandBuffer.IncrementUpdateCount(dest); } + + /// Wraps [SetInstanceMultiplier](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInstanceMultiplier.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetInstanceMultiplier.html) + public void SetInstanceMultiplier(uint multiplier) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetInstanceMultiplier(multiplier); } + + /// Wraps [SetFoveatedRenderingMode](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetFoveatedRenderingMode.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetFoveatedRenderingMode.html) + public void SetFoveatedRenderingMode(FoveatedRenderingMode foveatedRenderingMode) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetFoveatedRenderingMode(foveatedRenderingMode); } + + /// Wraps [SetWireframe](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetWireframe.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetWireframe.html) + public void SetWireframe(bool enable) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetWireframe(enable); } + + /// Wraps [ConfigureFoveatedRendering](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ConfigureFoveatedRendering.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.ConfigureFoveatedRendering.html) + public void ConfigureFoveatedRendering(IntPtr platformData) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.ConfigureFoveatedRendering(platformData); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier rt) { m_WrappedCommandBuffer.SetRenderTarget(rt); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier rt, RenderBufferLoadAction loadAction, RenderBufferStoreAction storeAction) { m_WrappedCommandBuffer.SetRenderTarget(rt, loadAction, storeAction); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier rt, RenderBufferLoadAction colorLoadAction, RenderBufferStoreAction colorStoreAction, RenderBufferLoadAction depthLoadAction, RenderBufferStoreAction depthStoreAction) { m_WrappedCommandBuffer.SetRenderTarget(rt, colorLoadAction, colorStoreAction, depthLoadAction, depthStoreAction); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier rt, int mipLevel) { m_WrappedCommandBuffer.SetRenderTarget(rt, mipLevel); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier rt, int mipLevel, CubemapFace cubemapFace) { m_WrappedCommandBuffer.SetRenderTarget(rt, mipLevel, cubemapFace); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier rt, int mipLevel, CubemapFace cubemapFace, int depthSlice) { m_WrappedCommandBuffer.SetRenderTarget(rt, mipLevel, cubemapFace, depthSlice); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier color, RenderTargetIdentifier depth) { m_WrappedCommandBuffer.SetRenderTarget(color, depth); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier color, RenderTargetIdentifier depth, int mipLevel) { m_WrappedCommandBuffer.SetRenderTarget(color, depth, mipLevel); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier color, RenderTargetIdentifier depth, int mipLevel, CubemapFace cubemapFace) { m_WrappedCommandBuffer.SetRenderTarget(color, depth, mipLevel, cubemapFace); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier color, RenderTargetIdentifier depth, int mipLevel, CubemapFace cubemapFace, int depthSlice) { m_WrappedCommandBuffer.SetRenderTarget(color, depth, mipLevel, cubemapFace, depthSlice); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier color, RenderBufferLoadAction colorLoadAction, RenderBufferStoreAction colorStoreAction, RenderTargetIdentifier depth, RenderBufferLoadAction depthLoadAction, RenderBufferStoreAction depthStoreAction) { m_WrappedCommandBuffer.SetRenderTarget(color, colorLoadAction, colorStoreAction, depth, depthLoadAction, depthStoreAction); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier[] colors, RenderTargetIdentifier depth) { m_WrappedCommandBuffer.SetRenderTarget(colors, depth); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetIdentifier[] colors, RenderTargetIdentifier depth, int mipLevel, CubemapFace cubemapFace, int depthSlice) { m_WrappedCommandBuffer.SetRenderTarget(colors, depth, mipLevel, cubemapFace, depthSlice); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetBinding binding, int mipLevel, CubemapFace cubemapFace, int depthSlice) { m_WrappedCommandBuffer.SetRenderTarget(binding, mipLevel, cubemapFace, depthSlice); } + + /// Wraps [SetRenderTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRenderTarget.html) + public void SetRenderTarget(RenderTargetBinding binding) { m_WrappedCommandBuffer.SetRenderTarget(binding); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, Array data) { m_WrappedCommandBuffer.SetBufferData(buffer, data); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, List data) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, NativeArray data) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, Array data, int managedBufferStartIndex, int graphicsBufferStartIndex, int count) { m_WrappedCommandBuffer.SetBufferData(buffer, data, managedBufferStartIndex, graphicsBufferStartIndex, count); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, List data, int managedBufferStartIndex, int graphicsBufferStartIndex, int count) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data, managedBufferStartIndex, graphicsBufferStartIndex, count); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(ComputeBuffer buffer, NativeArray data, int nativeBufferStartIndex, int graphicsBufferStartIndex, int count) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data, nativeBufferStartIndex, graphicsBufferStartIndex, count); } + + /// Wraps [SetBufferCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) + public void SetBufferCounterValue(ComputeBuffer buffer, uint counterValue) { m_WrappedCommandBuffer.SetBufferCounterValue(buffer, counterValue); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, Array data) { m_WrappedCommandBuffer.SetBufferData(buffer, data); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, List data) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, NativeArray data) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, Array data, int managedBufferStartIndex, int graphicsBufferStartIndex, int count) { m_WrappedCommandBuffer.SetBufferData(buffer, data, managedBufferStartIndex, graphicsBufferStartIndex, count); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, List data, int managedBufferStartIndex, int graphicsBufferStartIndex, int count) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data, managedBufferStartIndex, graphicsBufferStartIndex, count); } + + /// Wraps [SetBufferData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferData.html) + public void SetBufferData(GraphicsBuffer buffer, NativeArray data, int nativeBufferStartIndex, int graphicsBufferStartIndex, int count) where T : struct { m_WrappedCommandBuffer.SetBufferData(buffer, data, nativeBufferStartIndex, graphicsBufferStartIndex, count); } + + /// Wraps [SetBufferCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetBufferCounterValue.html) + public void SetBufferCounterValue(GraphicsBuffer buffer, uint counterValue) { m_WrappedCommandBuffer.SetBufferCounterValue(buffer, counterValue); } + + /// Wraps [SetupCameraProperties](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetupCameraProperties.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetupCameraProperties.html) + public void SetupCameraProperties(Camera camera) { m_WrappedCommandBuffer.SetupCameraProperties(camera); } + + /// Wraps [InvokeOnRenderObjectCallbacks](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.InvokeOnRenderObjectCallbacks.html) on a CommandBuffer. + + public void InvokeOnRenderObjectCallbacks() { m_WrappedCommandBuffer.InvokeOnRenderObjectCallbacks(); } + + /// Wraps [SetShadingRateFragmentSize](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateFragmentSize.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateFragmentSize.html) + public void SetShadingRateFragmentSize(ShadingRateFragmentSize shadingRateFragmentSize) { m_WrappedCommandBuffer.SetShadingRateFragmentSize(shadingRateFragmentSize); } + + /// Wraps [SetShadingRateCombiner](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateCombiner.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateCombiner.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadingRateCombiner.html) + public void SetShadingRateCombiner(ShadingRateCombinerStage stage, ShadingRateCombiner combiner) { m_WrappedCommandBuffer.SetShadingRateCombiner(stage, combiner); } + + /// Wraps [SetComputeFloatParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParam.html) + public void SetComputeFloatParam(ComputeShader computeShader, string name, float val) { m_WrappedCommandBuffer.SetComputeFloatParam(computeShader, name, val); } + + /// Wraps [SetComputeIntParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParam.html) + public void SetComputeIntParam(ComputeShader computeShader, string name, int val) { m_WrappedCommandBuffer.SetComputeIntParam(computeShader, name, val); } + + /// Wraps [SetComputeVectorParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorParam.html) + public void SetComputeVectorParam(ComputeShader computeShader, string name, Vector4 val) { m_WrappedCommandBuffer.SetComputeVectorParam(computeShader, name, val); } + + /// Wraps [SetComputeVectorArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeVectorArrayParam.html) + public void SetComputeVectorArrayParam(ComputeShader computeShader, string name, Vector4[] values) { m_WrappedCommandBuffer.SetComputeVectorArrayParam(computeShader, name, values); } + + /// Wraps [SetComputeMatrixParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixParam.html) + public void SetComputeMatrixParam(ComputeShader computeShader, string name, Matrix4x4 val) { m_WrappedCommandBuffer.SetComputeMatrixParam(computeShader, name, val); } + + /// Wraps [SetComputeMatrixArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeMatrixArrayParam.html) + public void SetComputeMatrixArrayParam(ComputeShader computeShader, string name, Matrix4x4[] values) { m_WrappedCommandBuffer.SetComputeMatrixArrayParam(computeShader, name, values); } + + /// Wraps [SetComputeFloatParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + public void SetComputeFloatParams(ComputeShader computeShader, string name, params float[] values) { m_WrappedCommandBuffer.SetComputeFloatParams(computeShader, name, values); } + + /// Wraps [SetComputeFloatParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeFloatParams.html) + public void SetComputeFloatParams(ComputeShader computeShader, int nameID, params float[] values) { m_WrappedCommandBuffer.SetComputeFloatParams(computeShader, nameID, values); } + + /// Wraps [SetComputeIntParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + public void SetComputeIntParams(ComputeShader computeShader, string name, params int[] values) { m_WrappedCommandBuffer.SetComputeIntParams(computeShader, name, values); } + + /// Wraps [SetComputeIntParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeIntParams.html) + public void SetComputeIntParams(ComputeShader computeShader, int nameID, params int[] values) { m_WrappedCommandBuffer.SetComputeIntParams(computeShader, nameID, values); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, RenderTargetIdentifier rt) { m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, name, rt); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, TextureHandle rt) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, name, rt); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, RenderTargetIdentifier rt) { m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, nameID, rt); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, TextureHandle rt) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, nameID, rt); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, RenderTargetIdentifier rt, int mipLevel) { m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, name, rt, mipLevel); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, TextureHandle rt, int mipLevel) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, name, rt, mipLevel); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, RenderTargetIdentifier rt, int mipLevel) { m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, nameID, rt, mipLevel); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, TextureHandle rt, int mipLevel) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, nameID, rt, mipLevel); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, RenderTargetIdentifier rt, int mipLevel, RenderTextureSubElement element) { m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, name, rt, mipLevel, element); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, string name, TextureHandle rt, int mipLevel, RenderTextureSubElement element) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, name, rt, mipLevel, element); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, RenderTargetIdentifier rt, int mipLevel, RenderTextureSubElement element) { m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, nameID, rt, mipLevel, element); } + + /// Wraps [SetComputeTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeTextureParam.html) + public void SetComputeTextureParam(ComputeShader computeShader, int kernelIndex, int nameID, TextureHandle rt, int mipLevel, RenderTextureSubElement element) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetComputeTextureParam(computeShader, kernelIndex, nameID, rt, mipLevel, element); } + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, int nameID, ComputeBuffer buffer) { m_WrappedCommandBuffer.SetComputeBufferParam(computeShader, kernelIndex, nameID, buffer); } + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, string name, ComputeBuffer buffer) { m_WrappedCommandBuffer.SetComputeBufferParam(computeShader, kernelIndex, name, buffer); } + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, int nameID, GraphicsBufferHandle bufferHandle) { m_WrappedCommandBuffer.SetComputeBufferParam(computeShader, kernelIndex, nameID, bufferHandle); } + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, string name, GraphicsBufferHandle bufferHandle) { m_WrappedCommandBuffer.SetComputeBufferParam(computeShader, kernelIndex, name, bufferHandle); } + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, int nameID, GraphicsBuffer buffer) { m_WrappedCommandBuffer.SetComputeBufferParam(computeShader, kernelIndex, nameID, buffer); } + + /// Wraps [SetComputeBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeBufferParam.html) + public void SetComputeBufferParam(ComputeShader computeShader, int kernelIndex, string name, GraphicsBuffer buffer) { m_WrappedCommandBuffer.SetComputeBufferParam(computeShader, kernelIndex, name, buffer); } + + /// Wraps [SetComputeConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + public void SetComputeConstantBufferParam(ComputeShader computeShader, int nameID, ComputeBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetComputeConstantBufferParam(computeShader, nameID, buffer, offset, size); } + + /// Wraps [SetComputeConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + public void SetComputeConstantBufferParam(ComputeShader computeShader, string name, ComputeBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetComputeConstantBufferParam(computeShader, name, buffer, offset, size); } + + /// Wraps [SetComputeConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + public void SetComputeConstantBufferParam(ComputeShader computeShader, int nameID, GraphicsBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetComputeConstantBufferParam(computeShader, nameID, buffer, offset, size); } + + /// Wraps [SetComputeConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeConstantBufferParam.html) + public void SetComputeConstantBufferParam(ComputeShader computeShader, string name, GraphicsBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetComputeConstantBufferParam(computeShader, name, buffer, offset, size); } + + /// Wraps [SetComputeParamsFromMaterial](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeParamsFromMaterial.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeParamsFromMaterial.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeParamsFromMaterial.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetComputeParamsFromMaterial.html) + public void SetComputeParamsFromMaterial(ComputeShader computeShader, int kernelIndex, Material material) { m_WrappedCommandBuffer.SetComputeParamsFromMaterial(computeShader, kernelIndex, material); } + + /// Wraps [DispatchCompute](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + public void DispatchCompute(ComputeShader computeShader, int kernelIndex, int threadGroupsX, int threadGroupsY, int threadGroupsZ) { m_WrappedCommandBuffer.DispatchCompute(computeShader, kernelIndex, threadGroupsX, threadGroupsY, threadGroupsZ); } + + /// Wraps [DispatchCompute](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + public void DispatchCompute(ComputeShader computeShader, int kernelIndex, ComputeBuffer indirectBuffer, uint argsOffset) { m_WrappedCommandBuffer.DispatchCompute(computeShader, kernelIndex, indirectBuffer, argsOffset); } + + /// Wraps [DispatchCompute](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchCompute.html) + public void DispatchCompute(ComputeShader computeShader, int kernelIndex, GraphicsBuffer indirectBuffer, uint argsOffset) { m_WrappedCommandBuffer.DispatchCompute(computeShader, kernelIndex, indirectBuffer, argsOffset); } + + /// Wraps [BuildRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + public void BuildRayTracingAccelerationStructure(RayTracingAccelerationStructure accelerationStructure) { m_WrappedCommandBuffer.BuildRayTracingAccelerationStructure(accelerationStructure); } + + /// Wraps [BuildRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + public void BuildRayTracingAccelerationStructure(RayTracingAccelerationStructure accelerationStructure, Vector3 relativeOrigin) { m_WrappedCommandBuffer.BuildRayTracingAccelerationStructure(accelerationStructure, relativeOrigin); } + + /// Wraps [BuildRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.BuildRayTracingAccelerationStructure.html) + public void BuildRayTracingAccelerationStructure(RayTracingAccelerationStructure accelerationStructure, BuildSettings buildSettings) { m_WrappedCommandBuffer.BuildRayTracingAccelerationStructure(accelerationStructure, buildSettings); } + + /// Wraps [SetRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + public void SetRayTracingAccelerationStructure(RayTracingShader rayTracingShader, string name, RayTracingAccelerationStructure rayTracingAccelerationStructure) { m_WrappedCommandBuffer.SetRayTracingAccelerationStructure(rayTracingShader, name, rayTracingAccelerationStructure); } + + /// Wraps [SetRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + public void SetRayTracingAccelerationStructure(RayTracingShader rayTracingShader, int nameID, RayTracingAccelerationStructure rayTracingAccelerationStructure) { m_WrappedCommandBuffer.SetRayTracingAccelerationStructure(rayTracingShader, nameID, rayTracingAccelerationStructure); } + + /// Wraps [SetRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + public void SetRayTracingAccelerationStructure(ComputeShader computeShader, int kernelIndex, string name, RayTracingAccelerationStructure rayTracingAccelerationStructure) { m_WrappedCommandBuffer.SetRayTracingAccelerationStructure(computeShader, kernelIndex, name, rayTracingAccelerationStructure); } + + /// Wraps [SetRayTracingAccelerationStructure](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingAccelerationStructure.html) + public void SetRayTracingAccelerationStructure(ComputeShader computeShader, int kernelIndex, int nameID, RayTracingAccelerationStructure rayTracingAccelerationStructure) { m_WrappedCommandBuffer.SetRayTracingAccelerationStructure(computeShader, kernelIndex, nameID, rayTracingAccelerationStructure); } + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, string name, ComputeBuffer buffer) { m_WrappedCommandBuffer.SetRayTracingBufferParam(rayTracingShader, name, buffer); } + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, int nameID, ComputeBuffer buffer) { m_WrappedCommandBuffer.SetRayTracingBufferParam(rayTracingShader, nameID, buffer); } + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, string name, GraphicsBuffer buffer) { m_WrappedCommandBuffer.SetRayTracingBufferParam(rayTracingShader, name, buffer); } + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, int nameID, GraphicsBuffer buffer) { m_WrappedCommandBuffer.SetRayTracingBufferParam(rayTracingShader, nameID, buffer); } + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, string name, GraphicsBufferHandle bufferHandle) { m_WrappedCommandBuffer.SetRayTracingBufferParam(rayTracingShader, name, bufferHandle); } + + /// Wraps [SetRayTracingBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingBufferParam.html) + public void SetRayTracingBufferParam(RayTracingShader rayTracingShader, int nameID, GraphicsBufferHandle bufferHandle) { m_WrappedCommandBuffer.SetRayTracingBufferParam(rayTracingShader, nameID, bufferHandle); } + + /// Wraps [SetRayTracingConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + public void SetRayTracingConstantBufferParam(RayTracingShader rayTracingShader, int nameID, ComputeBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetRayTracingConstantBufferParam(rayTracingShader, nameID, buffer, offset, size); } + + /// Wraps [SetRayTracingConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + public void SetRayTracingConstantBufferParam(RayTracingShader rayTracingShader, string name, ComputeBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetRayTracingConstantBufferParam(rayTracingShader, name, buffer, offset, size); } + + /// Wraps [SetRayTracingConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + public void SetRayTracingConstantBufferParam(RayTracingShader rayTracingShader, int nameID, GraphicsBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetRayTracingConstantBufferParam(rayTracingShader, nameID, buffer, offset, size); } + + /// Wraps [SetRayTracingConstantBufferParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingConstantBufferParam.html) + public void SetRayTracingConstantBufferParam(RayTracingShader rayTracingShader, string name, GraphicsBuffer buffer, int offset, int size) { m_WrappedCommandBuffer.SetRayTracingConstantBufferParam(rayTracingShader, name, buffer, offset, size); } + + /// Wraps [SetRayTracingTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + public void SetRayTracingTextureParam(RayTracingShader rayTracingShader, string name, RenderTargetIdentifier rt) { m_WrappedCommandBuffer.SetRayTracingTextureParam(rayTracingShader, name, rt); } + + /// Wraps [SetRayTracingTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + public void SetRayTracingTextureParam(RayTracingShader rayTracingShader, string name, TextureHandle rt) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetRayTracingTextureParam(rayTracingShader, name, rt); } + + /// Wraps [SetRayTracingTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + public void SetRayTracingTextureParam(RayTracingShader rayTracingShader, int nameID, RenderTargetIdentifier rt) { m_WrappedCommandBuffer.SetRayTracingTextureParam(rayTracingShader, nameID, rt); } + + /// Wraps [SetRayTracingTextureParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingTextureParam.html) + public void SetRayTracingTextureParam(RayTracingShader rayTracingShader, int nameID, TextureHandle rt) { ValidateTextureHandle(rt); m_WrappedCommandBuffer.SetRayTracingTextureParam(rayTracingShader, nameID, rt); } + + /// Wraps [SetRayTracingFloatParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + public void SetRayTracingFloatParam(RayTracingShader rayTracingShader, string name, float val) { m_WrappedCommandBuffer.SetRayTracingFloatParam(rayTracingShader, name, val); } + + /// Wraps [SetRayTracingFloatParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParam.html) + public void SetRayTracingFloatParam(RayTracingShader rayTracingShader, int nameID, float val) { m_WrappedCommandBuffer.SetRayTracingFloatParam(rayTracingShader, nameID, val); } + + /// Wraps [SetRayTracingFloatParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + public void SetRayTracingFloatParams(RayTracingShader rayTracingShader, string name, params float[] values) { m_WrappedCommandBuffer.SetRayTracingFloatParams(rayTracingShader, name, values); } + + /// Wraps [SetRayTracingFloatParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingFloatParams.html) + public void SetRayTracingFloatParams(RayTracingShader rayTracingShader, int nameID, params float[] values) { m_WrappedCommandBuffer.SetRayTracingFloatParams(rayTracingShader, nameID, values); } + + /// Wraps [SetRayTracingIntParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + public void SetRayTracingIntParam(RayTracingShader rayTracingShader, string name, int val) { m_WrappedCommandBuffer.SetRayTracingIntParam(rayTracingShader, name, val); } + + /// Wraps [SetRayTracingIntParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParam.html) + public void SetRayTracingIntParam(RayTracingShader rayTracingShader, int nameID, int val) { m_WrappedCommandBuffer.SetRayTracingIntParam(rayTracingShader, nameID, val); } + + /// Wraps [SetRayTracingIntParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + public void SetRayTracingIntParams(RayTracingShader rayTracingShader, string name, params int[] values) { m_WrappedCommandBuffer.SetRayTracingIntParams(rayTracingShader, name, values); } + + /// Wraps [SetRayTracingIntParams](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingIntParams.html) + public void SetRayTracingIntParams(RayTracingShader rayTracingShader, int nameID, params int[] values) { m_WrappedCommandBuffer.SetRayTracingIntParams(rayTracingShader, nameID, values); } + + /// Wraps [SetRayTracingVectorParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + public void SetRayTracingVectorParam(RayTracingShader rayTracingShader, string name, Vector4 val) { m_WrappedCommandBuffer.SetRayTracingVectorParam(rayTracingShader, name, val); } + + /// Wraps [SetRayTracingVectorParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorParam.html) + public void SetRayTracingVectorParam(RayTracingShader rayTracingShader, int nameID, Vector4 val) { m_WrappedCommandBuffer.SetRayTracingVectorParam(rayTracingShader, nameID, val); } + + /// Wraps [SetRayTracingVectorArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + public void SetRayTracingVectorArrayParam(RayTracingShader rayTracingShader, string name, params Vector4[] values) { m_WrappedCommandBuffer.SetRayTracingVectorArrayParam(rayTracingShader, name, values); } + + /// Wraps [SetRayTracingVectorArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingVectorArrayParam.html) + public void SetRayTracingVectorArrayParam(RayTracingShader rayTracingShader, int nameID, params Vector4[] values) { m_WrappedCommandBuffer.SetRayTracingVectorArrayParam(rayTracingShader, nameID, values); } + + /// Wraps [SetRayTracingMatrixParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + public void SetRayTracingMatrixParam(RayTracingShader rayTracingShader, string name, Matrix4x4 val) { m_WrappedCommandBuffer.SetRayTracingMatrixParam(rayTracingShader, name, val); } + + /// Wraps [SetRayTracingMatrixParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixParam.html) + public void SetRayTracingMatrixParam(RayTracingShader rayTracingShader, int nameID, Matrix4x4 val) { m_WrappedCommandBuffer.SetRayTracingMatrixParam(rayTracingShader, nameID, val); } + + /// Wraps [SetRayTracingMatrixArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + public void SetRayTracingMatrixArrayParam(RayTracingShader rayTracingShader, string name, params Matrix4x4[] values) { m_WrappedCommandBuffer.SetRayTracingMatrixArrayParam(rayTracingShader, name, values); } + + /// Wraps [SetRayTracingMatrixArrayParam](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRayTracingMatrixArrayParam.html) + public void SetRayTracingMatrixArrayParam(RayTracingShader rayTracingShader, int nameID, params Matrix4x4[] values) { m_WrappedCommandBuffer.SetRayTracingMatrixArrayParam(rayTracingShader, nameID, values); } + + /// Wraps [DispatchRays](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + public void DispatchRays(RayTracingShader rayTracingShader, string rayGenName, uint width, uint height, uint depth, Camera camera) { m_WrappedCommandBuffer.DispatchRays(rayTracingShader, rayGenName, width, height, depth, camera); } + + /// Wraps [DispatchRays](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DispatchRays.html) + public void DispatchRays(RayTracingShader rayTracingShader, string rayGenName, GraphicsBuffer argsBuffer, uint argsOffset, Camera camera) { m_WrappedCommandBuffer.DispatchRays(rayTracingShader, rayGenName, argsBuffer, argsOffset, camera); } + + /// Wraps [GenerateMips](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.GenerateMips.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.GenerateMips.html) + public void GenerateMips(RenderTargetIdentifier rt) { m_WrappedCommandBuffer.GenerateMips(rt); } + + /// Wraps [GenerateMips](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.GenerateMips.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.GenerateMips.html) + public void GenerateMips(RenderTexture rt) { m_WrappedCommandBuffer.GenerateMips(rt); } + + /// Wraps [DrawMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + public void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, int submeshIndex, int shaderPass, MaterialPropertyBlock properties) { m_WrappedCommandBuffer.DrawMesh(mesh, matrix, material, submeshIndex, shaderPass, properties); } + + /// Wraps [DrawMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + public void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, int submeshIndex, int shaderPass) { m_WrappedCommandBuffer.DrawMesh(mesh, matrix, material, submeshIndex, shaderPass); } + + /// Wraps [DrawMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + public void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, int submeshIndex) { m_WrappedCommandBuffer.DrawMesh(mesh, matrix, material, submeshIndex); } + + /// Wraps [DrawMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMesh.html) + public void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material) { m_WrappedCommandBuffer.DrawMesh(mesh, matrix, material); } + + /// Wraps [DrawMultipleMeshes](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMultipleMeshes.html) + public void DrawMultipleMeshes(Matrix4x4[] matrices, Mesh[] meshes, int[] subsetIndices, int count, Material material, int shaderPass, MaterialPropertyBlock properties) { m_WrappedCommandBuffer.DrawMultipleMeshes(matrices, meshes, subsetIndices, count, material, shaderPass, properties); } + + /// Wraps [DrawRenderer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + public void DrawRenderer(Renderer renderer, Material material, int submeshIndex, int shaderPass) { m_WrappedCommandBuffer.DrawRenderer(renderer, material, submeshIndex, shaderPass); } + + /// Wraps [DrawRenderer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + public void DrawRenderer(Renderer renderer, Material material, int submeshIndex) { m_WrappedCommandBuffer.DrawRenderer(renderer, material, submeshIndex); } + + /// Wraps [DrawRenderer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRenderer.html) + public void DrawRenderer(Renderer renderer, Material material) { m_WrappedCommandBuffer.DrawRenderer(renderer, material); } + + /// Wraps [DrawRendererList](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRendererList.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawRendererList.html) + public void DrawRendererList(RendererList rendererList) { m_WrappedCommandBuffer.DrawRendererList(rendererList); } + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int vertexCount, int instanceCount, MaterialPropertyBlock properties) { m_WrappedCommandBuffer.DrawProcedural(matrix, material, shaderPass, topology, vertexCount, instanceCount, properties); } + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int vertexCount, int instanceCount) { m_WrappedCommandBuffer.DrawProcedural(matrix, material, shaderPass, topology, vertexCount, instanceCount); } + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int vertexCount) { m_WrappedCommandBuffer.DrawProcedural(matrix, material, shaderPass, topology, vertexCount); } + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount, int instanceCount, MaterialPropertyBlock properties) { m_WrappedCommandBuffer.DrawProcedural(indexBuffer, matrix, material, shaderPass, topology, indexCount, instanceCount, properties); } + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount, int instanceCount) { m_WrappedCommandBuffer.DrawProcedural(indexBuffer, matrix, material, shaderPass, topology, indexCount, instanceCount); } + + /// Wraps [DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html) + public void DrawProcedural(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount) { m_WrappedCommandBuffer.DrawProcedural(indexBuffer, matrix, material, shaderPass, topology, indexCount); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) { m_WrappedCommandBuffer.DrawProceduralIndirect(matrix, material, shaderPass, topology, bufferWithArgs, argsOffset, properties); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset) { m_WrappedCommandBuffer.DrawProceduralIndirect(matrix, material, shaderPass, topology, bufferWithArgs, argsOffset); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs) { m_WrappedCommandBuffer.DrawProceduralIndirect(matrix, material, shaderPass, topology, bufferWithArgs); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) { m_WrappedCommandBuffer.DrawProceduralIndirect(indexBuffer, matrix, material, shaderPass, topology, bufferWithArgs, argsOffset, properties); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset) { m_WrappedCommandBuffer.DrawProceduralIndirect(indexBuffer, matrix, material, shaderPass, topology, bufferWithArgs, argsOffset); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs) { m_WrappedCommandBuffer.DrawProceduralIndirect(indexBuffer, matrix, material, shaderPass, topology, bufferWithArgs); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) { m_WrappedCommandBuffer.DrawProceduralIndirect(matrix, material, shaderPass, topology, bufferWithArgs, argsOffset, properties); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset) { m_WrappedCommandBuffer.DrawProceduralIndirect(matrix, material, shaderPass, topology, bufferWithArgs, argsOffset); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs) { m_WrappedCommandBuffer.DrawProceduralIndirect(matrix, material, shaderPass, topology, bufferWithArgs); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) { m_WrappedCommandBuffer.DrawProceduralIndirect(indexBuffer, matrix, material, shaderPass, topology, bufferWithArgs, argsOffset, properties); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset) { m_WrappedCommandBuffer.DrawProceduralIndirect(indexBuffer, matrix, material, shaderPass, topology, bufferWithArgs, argsOffset); } + + /// Wraps [DrawProceduralIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProceduralIndirect.html) + public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs) { m_WrappedCommandBuffer.DrawProceduralIndirect(indexBuffer, matrix, material, shaderPass, topology, bufferWithArgs); } + + /// Wraps [DrawMeshInstanced](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + public void DrawMeshInstanced(Mesh mesh, int submeshIndex, Material material, int shaderPass, Matrix4x4[] matrices, int count, MaterialPropertyBlock properties) { m_WrappedCommandBuffer.DrawMeshInstanced(mesh, submeshIndex, material, shaderPass, matrices, count, properties); } + + /// Wraps [DrawMeshInstanced](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + public void DrawMeshInstanced(Mesh mesh, int submeshIndex, Material material, int shaderPass, Matrix4x4[] matrices, int count) { m_WrappedCommandBuffer.DrawMeshInstanced(mesh, submeshIndex, material, shaderPass, matrices, count); } + + /// Wraps [DrawMeshInstanced](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstanced.html) + public void DrawMeshInstanced(Mesh mesh, int submeshIndex, Material material, int shaderPass, Matrix4x4[] matrices) { m_WrappedCommandBuffer.DrawMeshInstanced(mesh, submeshIndex, material, shaderPass, matrices); } + + /// Wraps [DrawMeshInstancedProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedProcedural.html) + public void DrawMeshInstancedProcedural(Mesh mesh, int submeshIndex, Material material, int shaderPass, int count, MaterialPropertyBlock properties) { m_WrappedCommandBuffer.DrawMeshInstancedProcedural(mesh, submeshIndex, material, shaderPass, count, properties); } + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, ComputeBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) { m_WrappedCommandBuffer.DrawMeshInstancedIndirect(mesh, submeshIndex, material, shaderPass, bufferWithArgs, argsOffset, properties); } + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, ComputeBuffer bufferWithArgs, int argsOffset) { m_WrappedCommandBuffer.DrawMeshInstancedIndirect(mesh, submeshIndex, material, shaderPass, bufferWithArgs, argsOffset); } + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, ComputeBuffer bufferWithArgs) { m_WrappedCommandBuffer.DrawMeshInstancedIndirect(mesh, submeshIndex, material, shaderPass, bufferWithArgs); } + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, GraphicsBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties) { m_WrappedCommandBuffer.DrawMeshInstancedIndirect(mesh, submeshIndex, material, shaderPass, bufferWithArgs, argsOffset, properties); } + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, GraphicsBuffer bufferWithArgs, int argsOffset) { m_WrappedCommandBuffer.DrawMeshInstancedIndirect(mesh, submeshIndex, material, shaderPass, bufferWithArgs, argsOffset); } + + /// Wraps [DrawMeshInstancedIndirect](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawMeshInstancedIndirect.html) + public void DrawMeshInstancedIndirect(Mesh mesh, int submeshIndex, Material material, int shaderPass, GraphicsBuffer bufferWithArgs) { m_WrappedCommandBuffer.DrawMeshInstancedIndirect(mesh, submeshIndex, material, shaderPass, bufferWithArgs); } + + /// Wraps [DrawOcclusionMesh](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawOcclusionMesh.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawOcclusionMesh.html) + public void DrawOcclusionMesh(RectInt normalizedCamViewport) { m_WrappedCommandBuffer.DrawOcclusionMesh(normalizedCamViewport); } + + /// Wraps [SetRandomWriteTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + public void SetRandomWriteTarget(int index, RenderTargetIdentifier rt) { m_WrappedCommandBuffer.SetRandomWriteTarget(index, rt); } + + /// Wraps [SetRandomWriteTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + public void SetRandomWriteTarget(int index, ComputeBuffer buffer, bool preserveCounterValue) { m_WrappedCommandBuffer.SetRandomWriteTarget(index, buffer, preserveCounterValue); } + + /// Wraps [SetRandomWriteTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + public void SetRandomWriteTarget(int index, ComputeBuffer buffer) { m_WrappedCommandBuffer.SetRandomWriteTarget(index, buffer); } + + /// Wraps [SetRandomWriteTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + public void SetRandomWriteTarget(int index, GraphicsBuffer buffer, bool preserveCounterValue) { m_WrappedCommandBuffer.SetRandomWriteTarget(index, buffer, preserveCounterValue); } + + /// Wraps [SetRandomWriteTarget](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetRandomWriteTarget.html) + public void SetRandomWriteTarget(int index, GraphicsBuffer buffer) { m_WrappedCommandBuffer.SetRandomWriteTarget(index, buffer); } + + /// Wraps [CopyCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + public void CopyCounterValue(ComputeBuffer src, ComputeBuffer dst, uint dstOffsetBytes) { m_WrappedCommandBuffer.CopyCounterValue(src, dst, dstOffsetBytes); } + + /// Wraps [CopyCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + public void CopyCounterValue(GraphicsBuffer src, ComputeBuffer dst, uint dstOffsetBytes) { m_WrappedCommandBuffer.CopyCounterValue(src, dst, dstOffsetBytes); } + + /// Wraps [CopyCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + public void CopyCounterValue(ComputeBuffer src, GraphicsBuffer dst, uint dstOffsetBytes) { m_WrappedCommandBuffer.CopyCounterValue(src, dst, dstOffsetBytes); } + + /// Wraps [CopyCounterValue](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyCounterValue.html) + public void CopyCounterValue(GraphicsBuffer src, GraphicsBuffer dst, uint dstOffsetBytes) { m_WrappedCommandBuffer.CopyCounterValue(src, dst, dstOffsetBytes); } + + /// Wraps [CopyTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + public void CopyTexture(RenderTargetIdentifier src, RenderTargetIdentifier dst) { m_WrappedCommandBuffer.CopyTexture(src, dst); } + + /// Wraps [CopyTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + public void CopyTexture(RenderTargetIdentifier src, int srcElement, RenderTargetIdentifier dst, int dstElement) { m_WrappedCommandBuffer.CopyTexture(src, srcElement, dst, dstElement); } + + /// Wraps [CopyTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + public void CopyTexture(RenderTargetIdentifier src, int srcElement, int srcMip, RenderTargetIdentifier dst, int dstElement, int dstMip) { m_WrappedCommandBuffer.CopyTexture(src, srcElement, srcMip, dst, dstElement, dstMip); } + + /// Wraps [CopyTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.CopyTexture.html) + public void CopyTexture(RenderTargetIdentifier src, int srcElement, int srcMip, int srcX, int srcY, int srcWidth, int srcHeight, RenderTargetIdentifier dst, int dstElement, int dstMip, int dstX, int dstY) { m_WrappedCommandBuffer.CopyTexture(src, srcElement, srcMip, srcX, srcY, srcWidth, srcHeight, dst, dstElement, dstMip, dstX, dstY); } + + /// Wraps [SetGlobalFloat](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloat.html) + public void SetGlobalFloat(string name, float value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloat(name, value); } + + /// Wraps [SetGlobalInt](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInt.html) + public void SetGlobalInt(string name, int value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalInt(name, value); } + + /// Wraps [SetGlobalInteger](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalInteger.html) + public void SetGlobalInteger(string name, int value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalInteger(name, value); } + + /// Wraps [SetGlobalVector](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVector.html) + public void SetGlobalVector(string name, Vector4 value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVector(name, value); } + + /// Wraps [SetGlobalColor](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalColor.html) + public void SetGlobalColor(string name, Color value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalColor(name, value); } + + /// Wraps [SetGlobalMatrix](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrix.html) + public void SetGlobalMatrix(string name, Matrix4x4 value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrix(name, value); } + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(string propertyName, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloatArray(propertyName, values); } + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(int nameID, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloatArray(nameID, values); } + + /// Wraps [SetGlobalFloatArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalFloatArray.html) + public void SetGlobalFloatArray(string propertyName, float[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalFloatArray(propertyName, values); } + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(string propertyName, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVectorArray(propertyName, values); } + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(int nameID, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVectorArray(nameID, values); } + + /// Wraps [SetGlobalVectorArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalVectorArray.html) + public void SetGlobalVectorArray(string propertyName, Vector4[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalVectorArray(propertyName, values); } + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(string propertyName, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrixArray(propertyName, values); } + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(int nameID, List values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrixArray(nameID, values); } + + /// Wraps [SetGlobalMatrixArray](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalMatrixArray.html) + public void SetGlobalMatrixArray(string propertyName, Matrix4x4[] values) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalMatrixArray(propertyName, values); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(string name, TextureHandle value) { ThrowIfGlobalStateNotAllowed(); ValidateTextureHandle(value); m_WrappedCommandBuffer.SetGlobalTexture(name, value); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(string name, RenderTargetIdentifier value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalTexture(name, value); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(int nameID, TextureHandle value) { ThrowIfGlobalStateNotAllowed(); ValidateTextureHandle(value); m_WrappedCommandBuffer.SetGlobalTexture(nameID, value); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(int nameID, RenderTargetIdentifier value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalTexture(nameID, value); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(string name, TextureHandle value, RenderTextureSubElement element) { ThrowIfGlobalStateNotAllowed(); ValidateTextureHandle(value); m_WrappedCommandBuffer.SetGlobalTexture(name, value, element); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(string name, RenderTargetIdentifier value, RenderTextureSubElement element) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalTexture(name, value, element); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(int nameID, TextureHandle value, RenderTextureSubElement element) { ThrowIfGlobalStateNotAllowed(); ValidateTextureHandle(value); m_WrappedCommandBuffer.SetGlobalTexture(nameID, value, element); } + + /// Wraps [SetGlobalTexture](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalTexture.html) + public void SetGlobalTexture(int nameID, RenderTargetIdentifier value, RenderTextureSubElement element) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalTexture(nameID, value, element); } + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(string name, ComputeBuffer value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalBuffer(name, value); } + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(int nameID, ComputeBuffer value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalBuffer(nameID, value); } + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(string name, GraphicsBuffer value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalBuffer(name, value); } + + /// Wraps [SetGlobalBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalBuffer.html) + public void SetGlobalBuffer(int nameID, GraphicsBuffer value) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalBuffer(nameID, value); } + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(ComputeBuffer buffer, int nameID, int offset, int size) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalConstantBuffer(buffer, nameID, offset, size); } + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(ComputeBuffer buffer, string name, int offset, int size) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalConstantBuffer(buffer, name, offset, size); } + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(GraphicsBuffer buffer, int nameID, int offset, int size) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalConstantBuffer(buffer, nameID, offset, size); } + + /// Wraps [SetGlobalConstantBuffer](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetGlobalConstantBuffer.html) + public void SetGlobalConstantBuffer(GraphicsBuffer buffer, string name, int offset, int size) { ThrowIfGlobalStateNotAllowed(); m_WrappedCommandBuffer.SetGlobalConstantBuffer(buffer, name, offset, size); } + + /// Wraps [SetShadowSamplingMode](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadowSamplingMode.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadowSamplingMode.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetShadowSamplingMode.html) + public void SetShadowSamplingMode(RenderTargetIdentifier shadowmap, ShadowSamplingMode mode) { m_WrappedCommandBuffer.SetShadowSamplingMode(shadowmap, mode); } + + /// Wraps [SetSinglePassStereo](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetSinglePassStereo.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.SetSinglePassStereo.html) + public void SetSinglePassStereo(SinglePassStereoMode mode) { m_WrappedCommandBuffer.SetSinglePassStereo(mode); } + + /// Wraps [IssuePluginEvent](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEvent.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEvent.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEvent.html) + public void IssuePluginEvent(IntPtr callback, int eventID) { m_WrappedCommandBuffer.IssuePluginEvent(callback, eventID); } + + /// Wraps [IssuePluginEventAndData](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginEventAndData.html) + public void IssuePluginEventAndData(IntPtr callback, int eventID, IntPtr data) { m_WrappedCommandBuffer.IssuePluginEventAndData(callback, eventID, data); } + + /// Wraps [IssuePluginCustomBlit](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomBlit.html) + public void IssuePluginCustomBlit(IntPtr callback, uint command, RenderTargetIdentifier source, RenderTargetIdentifier dest, uint commandParam, uint commandFlags) { m_WrappedCommandBuffer.IssuePluginCustomBlit(callback, command, source, dest, commandParam, commandFlags); } + + /// Wraps [IssuePluginCustomTextureUpdateV2](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) on a CommandBuffer. + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) + /// [See CommandBuffer documentation](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.IssuePluginCustomTextureUpdateV2.html) + public void IssuePluginCustomTextureUpdateV2(IntPtr callback, Texture targetTexture, uint userData) { m_WrappedCommandBuffer.IssuePluginCustomTextureUpdateV2(callback, targetTexture, userData); } + + } +}