├── .gitignore ├── Assets ├── DebugOverlay.meta ├── DebugOverlay │ ├── Console.cs │ ├── Console.cs.meta │ ├── DebugOverlay.cs │ ├── DebugOverlay.cs.meta │ ├── DebugOverlayResources.cs │ ├── DebugOverlayResources.cs.meta │ ├── GlyphMaterial.mat │ ├── GlyphMaterial.mat.meta │ ├── GlyphShaderProc.shader │ ├── GlyphShaderProc.shader.meta │ ├── LineMaterial.mat │ ├── LineMaterial.mat.meta │ ├── LineShaderProc.shader │ ├── LineShaderProc.shader.meta │ ├── Resources.meta │ ├── Resources │ │ ├── DebugOverlayResources.asset │ │ └── DebugOverlayResources.asset.meta │ ├── RobotoMonoFontSheet.tga │ ├── RobotoMonoFontSheet.tga.meta │ ├── TextFormatter.cs │ └── TextFormatter.cs.meta ├── DefaultVolumeProfile.asset ├── DefaultVolumeProfile.asset.meta ├── Demo.meta ├── Demo │ ├── CharacterMat.mat │ ├── CharacterMat.mat.meta │ ├── DebugOverlayTest.meta │ ├── DebugOverlayTest.unity │ ├── DebugOverlayTest.unity.meta │ ├── DebugOverlayTest │ │ ├── LightingData.asset │ │ ├── LightingData.asset.meta │ │ ├── ReflectionProbe-0.exr │ │ └── ReflectionProbe-0.exr.meta │ ├── FloorMat.mat │ ├── FloorMat.mat.meta │ ├── LevelMat.mat │ ├── LevelMat.mat.meta │ ├── fpscontroller.cs │ └── fpscontroller.cs.meta ├── Game.meta ├── Game │ ├── BootSequence.cs │ ├── BootSequence.cs.meta │ ├── Game.cs │ ├── Game.cs.meta │ ├── Stats.cs │ └── Stats.cs.meta ├── UniversalRenderPipelineAsset.asset ├── UniversalRenderPipelineAsset.asset.meta ├── UniversalRenderPipelineAsset_Renderer.asset ├── UniversalRenderPipelineAsset_Renderer.asset.meta ├── UniversalRenderPipelineGlobalSettings.asset └── UniversalRenderPipelineGlobalSettings.asset.meta ├── LICENSE ├── Packages ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── MemorySettings.asset ├── MultiplayerManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── PackageManagerSettings.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── SceneTemplateSettings.json ├── ShaderGraphSettings.asset ├── TagManager.asset ├── TimeManager.asset ├── URPProjectSettings.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset └── XRSettings.asset └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /[Ll]ibrary/ 2 | /[Tt]emp/ 3 | /[Oo]bj/ 4 | /[Bb]uild/ 5 | /[Bb]uilds/ 6 | /[Aa]uto[Bb]uild/ 7 | /[Ll]ogs/ 8 | /UserSettings/ 9 | 10 | /Assets/AssetStoreTools* 11 | /Assets/Editor/GitHub.meta 12 | /Assets/Editor/GitHub/ 13 | 14 | # Visual Studio 2015 cache directory 15 | /.vs/ 16 | .vsconfig 17 | 18 | # Autogenerated VS/MD/Consulo solution and project files 19 | ExportedObj/ 20 | .consulo/ 21 | *.csproj 22 | *.unityproj 23 | *.sln 24 | *.suo 25 | *.tmp 26 | *.user 27 | *.userprefs 28 | *.pidb 29 | *.booproj 30 | *.svd 31 | *.pdb 32 | 33 | 34 | # Unity3D generated meta files 35 | *.pidb.meta 36 | 37 | # Unity3D Generated File On Crash Reports 38 | sysinfo.txt 39 | 40 | # Builds 41 | *.apk 42 | *.unitypackage 43 | -------------------------------------------------------------------------------- /Assets/DebugOverlay.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 419fec942e82de6409bf603ebc275119 3 | folderAsset: yes 4 | timeCreated: 1498896746 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/Console.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using Unity.Collections; 5 | using UnityEngine; 6 | using UnityEngine.InputSystem; 7 | 8 | public class Console : IGameSystem 9 | { 10 | const int k_BufferSize = 80 * 25 * 1000; // arbitrarily set to 1000 scroll back lines at 80x25 11 | const int k_InputBufferSize = 512; 12 | const int k_HistorySize = 1000; // lines of history 13 | 14 | int m_Width; 15 | int m_Height; 16 | int m_NumLines; 17 | int m_LastLine; 18 | int m_LastColumn; 19 | int m_LastVisibleLine; 20 | float m_ConsoleFoldout; 21 | float m_ConsoleFoldoutDest; 22 | 23 | bool m_ConsoleOpen; 24 | 25 | char[] m_InputFieldBuffer; 26 | int m_CursorPos = 0; 27 | int m_InputFieldLength = 0; 28 | 29 | string[] m_History = new string[k_HistorySize]; 30 | int m_HistoryDisplayIndex = 0; 31 | int m_HistoryNextIndex = 0; 32 | List m_InputChars = new List(); 33 | 34 | Color m_BackgroundColor = new Color(0, 0, 0, 0.9f); 35 | Vector4 m_TextColor = new Vector4(0.7f, 1.0f, 0.7f, 1.0f); 36 | Color m_CursorCol = new Color(0, 0.8f, 0.2f, 0.5f); 37 | 38 | System.UInt32[] m_ConsoleBuffer; 39 | 40 | public Console() 41 | { 42 | m_ConsoleBuffer = new System.UInt32[k_BufferSize]; 43 | m_InputFieldBuffer = new char[k_InputBufferSize]; 44 | AddCommand("help", CmdHelp, "Show available commands"); 45 | AddCommand("dump", CmdDumpScene, "Dump scene hierarchy in active scene"); 46 | Keyboard.current.onTextInput += OnTextInput; 47 | } 48 | 49 | public bool IsOpen() 50 | { 51 | return m_ConsoleOpen; 52 | } 53 | 54 | private void CmdDumpScene(string[] args) 55 | { 56 | var go = new List(); 57 | UnityEngine.SceneManagement.SceneManager.GetActiveScene().GetRootGameObjects(go); 58 | foreach(var g in go) 59 | { 60 | RecurDump(g, 0); 61 | } 62 | } 63 | 64 | private void RecurDump(GameObject go, int depth) 65 | { 66 | Write("{0}{1}\n", new string(' ', depth), go.name); 67 | for (var i = 0; i < go.transform.childCount; i++) 68 | { 69 | RecurDump(go.transform.GetChild(i).gameObject, depth + 1); 70 | } 71 | } 72 | 73 | private void OnTextInput(char c) 74 | { 75 | if (!m_ConsoleOpen) 76 | return; 77 | 78 | if(Char.IsControl(c) && c != '\n' && c != '\r' && c != '\b') 79 | { 80 | return; 81 | } 82 | 83 | m_InputChars.Add(c); 84 | } 85 | 86 | void CmdHelp(string[] args) 87 | { 88 | foreach (var c in m_Commands) 89 | { 90 | Write(" {0,-15} {1}\n", c.Key, m_CommandDescriptions[c.Key]); 91 | } 92 | } 93 | 94 | public void Init() 95 | { 96 | Init(null); 97 | } 98 | 99 | public void Init(DebugOverlay debugOverlay) 100 | { 101 | m_DebugOverlay = debugOverlay != null ? debugOverlay : DebugOverlay.instance; 102 | Resize(m_DebugOverlay.width, m_DebugOverlay.height); 103 | Clear(); 104 | } 105 | 106 | public void Shutdown() 107 | { 108 | } 109 | 110 | public delegate void CommandDelegate(string[] args); 111 | Dictionary m_Commands = new Dictionary(); 112 | Dictionary m_CommandDescriptions = new Dictionary(); 113 | 114 | public void AddCommand(string name, CommandDelegate callback, string description) 115 | { 116 | if (m_Commands.ContainsKey(name)) 117 | { 118 | Write("Cannot add command {0} twice", name); 119 | return; 120 | } 121 | m_Commands.Add(name, callback); 122 | m_CommandDescriptions.Add(name, description); 123 | } 124 | 125 | public void Resize(int width, int height) 126 | { 127 | m_Width = width; 128 | m_Height = height; 129 | m_NumLines = m_ConsoleBuffer.Length / m_Width; 130 | 131 | m_LastLine = m_Height - 1; 132 | m_LastVisibleLine = m_Height - 1; 133 | m_LastColumn = 0; 134 | 135 | // TODO: copy old text to resized console 136 | } 137 | 138 | public void Clear() 139 | { 140 | for (int i = 0, c = m_ConsoleBuffer.Length; i < c; i++) 141 | m_ConsoleBuffer[i] = 0; 142 | m_LastColumn = 0; 143 | } 144 | 145 | public void Show(float shown) 146 | { 147 | m_ConsoleFoldoutDest = shown; 148 | } 149 | 150 | public void TickUpdate() 151 | { 152 | if(Keyboard.current.f12Key.wasPressedThisFrame) 153 | { 154 | m_ConsoleOpen = !m_ConsoleOpen; 155 | m_ConsoleFoldoutDest = m_ConsoleOpen ? 1.0f : 0.0f; 156 | Show(m_ConsoleFoldoutDest); 157 | } 158 | 159 | if (!m_ConsoleOpen) 160 | return; 161 | 162 | Scroll((int)Mouse.current.scroll.ReadValue().y); 163 | 164 | if (Keyboard.current.leftArrowKey.wasPressedThisFrame && m_CursorPos > 0) 165 | m_CursorPos--; 166 | else if (Keyboard.current.rightArrowKey.wasPressedThisFrame && m_CursorPos < m_InputFieldLength) 167 | m_CursorPos++; 168 | else if (Keyboard.current.homeKey.wasPressedThisFrame || (Keyboard.current.aKey.wasPressedThisFrame && (Keyboard.current.leftCtrlKey.isPressed || Keyboard.current.rightCtrlKey.isPressed))) 169 | m_CursorPos = 0; 170 | else if (Keyboard.current.endKey.wasPressedThisFrame || (Keyboard.current.eKey.wasPressedThisFrame && (Keyboard.current.leftCtrlKey.isPressed || Keyboard.current.rightCtrlKey.isPressed))) 171 | m_CursorPos = m_InputFieldLength; 172 | else if (Keyboard.current.tabKey.wasPressedThisFrame) 173 | TabComplete(); 174 | else if (Keyboard.current.upArrowKey.wasPressedThisFrame) 175 | HistoryPrev(); 176 | else if (Keyboard.current.downArrowKey.wasPressedThisFrame) 177 | HistoryNext(); 178 | else 179 | { 180 | for (var i = 0; i < m_InputChars.Count; i++) 181 | { 182 | var ch = m_InputChars[i]; 183 | if (ch == '\b') 184 | Backspace(); 185 | else if (ch == '\n' || ch == '\r') 186 | { 187 | var s = new string(m_InputFieldBuffer, 0, m_InputFieldLength); 188 | HistoryStore(s); 189 | ExecuteCommand(s); 190 | m_InputFieldLength = 0; 191 | m_CursorPos = 0; 192 | } 193 | else 194 | Type(ch); 195 | } 196 | m_InputChars.Clear(); 197 | } 198 | } 199 | 200 | void HistoryPrev() 201 | { 202 | if (m_HistoryDisplayIndex == 0 || m_HistoryNextIndex - m_HistoryDisplayIndex >= m_History.Length - 1) 203 | return; 204 | 205 | if (m_HistoryDisplayIndex == m_HistoryNextIndex) 206 | m_History[m_HistoryNextIndex % m_History.Length] = new string(m_InputFieldBuffer, 0, m_InputFieldLength); 207 | 208 | m_HistoryDisplayIndex--; 209 | 210 | var s = m_History[m_HistoryDisplayIndex % m_History.Length]; 211 | 212 | s.CopyTo(0, m_InputFieldBuffer, 0, s.Length); 213 | m_InputFieldLength = s.Length; 214 | m_CursorPos = s.Length; 215 | } 216 | 217 | void HistoryNext() 218 | { 219 | if (m_HistoryDisplayIndex == m_HistoryNextIndex) 220 | return; 221 | 222 | 223 | m_HistoryDisplayIndex++; 224 | 225 | var s = m_History[m_HistoryDisplayIndex % m_History.Length]; 226 | 227 | s.CopyTo(0, m_InputFieldBuffer, 0, s.Length); 228 | m_InputFieldLength = s.Length; 229 | m_CursorPos = s.Length; 230 | } 231 | 232 | void HistoryStore(string cmd) 233 | { 234 | m_History[m_HistoryNextIndex % m_History.Length] = cmd; 235 | m_HistoryNextIndex++; 236 | m_HistoryDisplayIndex = m_HistoryNextIndex; 237 | } 238 | 239 | void ExecuteCommand(string command) 240 | { 241 | var splitCommand = command.Split(null as char[], System.StringSplitOptions.RemoveEmptyEntries); 242 | if (splitCommand.Length < 1) 243 | return; 244 | 245 | Write('>' + string.Join(" ", splitCommand) + '\n'); 246 | var commandName = splitCommand[0].ToLower(); 247 | 248 | CommandDelegate commandDelegate; 249 | 250 | if (m_Commands.TryGetValue(commandName, out commandDelegate)) 251 | { 252 | var arguments = new string[splitCommand.Length - 1]; 253 | System.Array.Copy(splitCommand, 1, arguments, 0, splitCommand.Length - 1); 254 | commandDelegate(arguments); 255 | } 256 | else 257 | { 258 | Write("Unknown command: {0}\n", splitCommand[0]); 259 | } 260 | } 261 | 262 | public void TickLateUpdate() 263 | { 264 | if (m_ConsoleFoldout < m_ConsoleFoldoutDest) 265 | { 266 | m_ConsoleFoldout = Mathf.Min(m_ConsoleFoldoutDest, m_ConsoleFoldout + Time.deltaTime * 5.0f); 267 | } 268 | else if (m_ConsoleFoldout > m_ConsoleFoldoutDest) 269 | { 270 | m_ConsoleFoldout = Mathf.Max(m_ConsoleFoldoutDest, m_ConsoleFoldout - Time.deltaTime * 5.0f); 271 | } 272 | 273 | if (m_ConsoleFoldout <= 0.0f) 274 | return; 275 | 276 | var yoffset = -(float)m_Height * (1.0f - m_ConsoleFoldout); 277 | m_DebugOverlay._DrawRect(0, 0 + yoffset, m_Width, m_Height, m_BackgroundColor); 278 | 279 | var line = m_LastVisibleLine; 280 | if ((m_LastVisibleLine == m_LastLine) && (m_LastColumn == 0)) 281 | { 282 | line -= 1; 283 | } 284 | 285 | Vector4 col = m_TextColor; 286 | UInt32 icol = 0; 287 | for (var i = 0; i < m_Height - 1; i++, line--) 288 | { 289 | var idx = (line % m_NumLines) * m_Width; 290 | for (var j = 0; j < m_Width; j++) 291 | { 292 | UInt32 c = m_ConsoleBuffer[idx + j]; 293 | char ch = (char)(c & 0xff); 294 | if (icol != (c & 0xffffff00)) 295 | { 296 | icol = c & 0xffffff00; 297 | col.x = (float)((icol >> 24) & 0xff) / 255.0f; 298 | col.y = (float)((icol >> 16) & 0xff) / 255.0f; 299 | col.z = (float)((icol >> 8) & 0xff) / 255.0f; 300 | } 301 | if (c != '\0') 302 | m_DebugOverlay.AddQuad(j, m_Height - 2 - i + yoffset, 1, 1, ch, col); 303 | } 304 | } 305 | 306 | // Draw input line 307 | var horizontalScroll = m_CursorPos - m_Width + 1; 308 | horizontalScroll = Mathf.Max(0, horizontalScroll); 309 | for (var i = horizontalScroll; i < m_InputFieldLength; i++) 310 | { 311 | char c = m_InputFieldBuffer[i]; 312 | if (c != '\0') 313 | m_DebugOverlay.AddQuad(i - horizontalScroll, m_Height - 1 + yoffset, 1, 1, c, m_TextColor); 314 | } 315 | m_DebugOverlay.AddQuad(m_CursorPos - horizontalScroll, m_Height - 1 + yoffset, 1, 1, '\0', m_CursorCol); 316 | } 317 | 318 | void NewLine() 319 | { 320 | // Only scroll view if at bottom 321 | if (m_LastVisibleLine == m_LastLine) 322 | m_LastVisibleLine++; 323 | 324 | m_LastLine++; 325 | m_LastColumn = 0; 326 | } 327 | 328 | void Scroll(int amount) 329 | { 330 | m_LastVisibleLine += amount; 331 | 332 | // Prevent going past last line 333 | if (m_LastVisibleLine > m_LastLine) 334 | m_LastVisibleLine = m_LastLine; 335 | 336 | if (m_LastVisibleLine < m_Height - 1) 337 | m_LastVisibleLine = m_Height - 1; 338 | 339 | // Prevent wrapping around 340 | if (m_LastVisibleLine < m_LastLine - m_NumLines + m_Height) 341 | m_LastVisibleLine = m_LastLine - m_NumLines + m_Height; 342 | } 343 | 344 | public void _Write(char[] buf, int length) 345 | { 346 | const string hexes = "0123456789ABCDEF"; 347 | UInt32 col = 0xBBBBBB00; 348 | for (int i = 0; i < length; i++) 349 | { 350 | if (buf[i] == '\n') 351 | { 352 | NewLine(); 353 | continue; 354 | } 355 | // Parse color markup of the form ^AF7 -> color(0xAA, 0xFF, 0x77) 356 | if (buf[i] == '^' && i < length - 3) 357 | { 358 | UInt32 res = 0; 359 | for (var j = i + 1; j < i + 4; j++) 360 | { 361 | var v = (uint)hexes.IndexOf(buf[j]); 362 | res = res * 256 + v * 16 + v; 363 | } 364 | col = res << 8; 365 | i += 3; 366 | continue; 367 | } 368 | var idx = (m_LastLine % m_NumLines) * m_Width + m_LastColumn; 369 | m_ConsoleBuffer[idx] = col | (byte)buf[i]; 370 | m_LastColumn++; 371 | if (m_LastColumn >= m_Width) 372 | { 373 | NewLine(); 374 | } 375 | } 376 | } 377 | 378 | static char[] _buf = new char[1024]; 379 | 380 | public void Write(string format) 381 | { 382 | var l = StringFormatter.Write(ref _buf, 0, format); 383 | _Write(_buf, l); 384 | } 385 | 386 | public void Write(string format, T arg) 387 | { 388 | var l = StringFormatter.Write(ref _buf, 0, format, arg); 389 | _Write(_buf, l); 390 | } 391 | public void Write(string format, T0 arg0, T1 arg1) 392 | { 393 | var l = StringFormatter.Write(ref _buf, 0, format, arg0, arg1); 394 | _Write(_buf, l); 395 | } 396 | public void Write(string format, T0 arg0, T1 arg1, T2 arg2) 397 | { 398 | var l = StringFormatter.Write(ref _buf, 0, format, arg0, arg1, arg2); 399 | _Write(_buf, l); 400 | } 401 | 402 | void Type(char c) 403 | { 404 | if (m_InputFieldLength >= m_InputFieldBuffer.Length) 405 | return; 406 | 407 | System.Array.Copy(m_InputFieldBuffer, m_CursorPos, m_InputFieldBuffer, m_CursorPos + 1, m_InputFieldLength - m_CursorPos); 408 | m_InputFieldBuffer[m_CursorPos] = c; 409 | m_CursorPos++; 410 | m_InputFieldLength++; 411 | } 412 | 413 | void Backspace() 414 | { 415 | if (m_CursorPos == 0) 416 | return; 417 | System.Array.Copy(m_InputFieldBuffer, m_CursorPos, m_InputFieldBuffer, m_CursorPos - 1, m_InputFieldLength - m_CursorPos); 418 | m_CursorPos--; 419 | m_InputFieldLength--; 420 | } 421 | 422 | void TabComplete() 423 | { 424 | string prefix = new string(m_InputFieldBuffer, 0, m_CursorPos); 425 | 426 | // Look for possible tab completions 427 | List matches = new List(); 428 | 429 | foreach (var c in m_Commands) 430 | { 431 | var name = c.Key; 432 | if (!name.StartsWith(prefix, true, null)) 433 | continue; 434 | matches.Add(name); 435 | } 436 | 437 | if (matches.Count == 0) 438 | return; 439 | 440 | // Look for longest common prefix 441 | int lcp = matches[0].Length; 442 | for (var i = 0; i < matches.Count - 1; i++) 443 | { 444 | lcp = Mathf.Min(lcp, CommonPrefix(matches[i], matches[i + 1])); 445 | } 446 | var bestMatch = matches[0].Substring(prefix.Length, lcp - prefix.Length); 447 | foreach (var c in bestMatch) 448 | Type(c); 449 | if (matches.Count > 1) 450 | { 451 | // write list of possible completions 452 | for (var i = 0; i < matches.Count; i++) 453 | Write(" {0}\n", matches[i]); 454 | } 455 | 456 | if (matches.Count == 1) 457 | Type(' '); 458 | } 459 | 460 | // Returns length of largest common prefix of two strings 461 | static int CommonPrefix(string a, string b) 462 | { 463 | int minl = Mathf.Min(a.Length, b.Length); 464 | for (int i = 1; i <= minl; i++) 465 | { 466 | if (!a.StartsWith(b.Substring(0, i), true, null)) 467 | return i - 1; 468 | } 469 | return minl; 470 | } 471 | 472 | DebugOverlay m_DebugOverlay; 473 | } 474 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/Console.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f0308910e859624fa37facc565133c9 3 | timeCreated: 1500496553 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/DebugOverlay.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | public class DebugOverlay 5 | { 6 | public int width = 80; 7 | public int height = 25; 8 | 9 | public static DebugOverlay instance; 10 | static DebugOverlayResources resources; 11 | 12 | public static int Width { get { return instance.width; } } 13 | public static int Height { get { return instance.height; } } 14 | 15 | public void Init(int w, int h) 16 | { 17 | if(resources == null) 18 | { 19 | resources = Resources.Load("DebugOverlayResources"); 20 | Debug.Assert(resources != null, "Unable to load DebugOverlayResources"); 21 | } 22 | if (instance == null) 23 | instance = this; 24 | 25 | width = w; 26 | height = h; 27 | } 28 | 29 | public void Shutdown() 30 | { 31 | if (m_QuadInstanceBuffer != null) 32 | m_QuadInstanceBuffer.Release(); 33 | m_QuadInstanceBuffer = null; 34 | m_QuadInstanceData = null; 35 | 36 | if (m_LineInstanceBuffer != null) 37 | m_LineInstanceBuffer.Release(); 38 | m_LineInstanceBuffer = null; 39 | m_LineInstanceData = null; 40 | 41 | if (instance == this) 42 | instance = null; 43 | } 44 | 45 | public void TickLateUpdate() 46 | { 47 | // Recreate compute buffer if needed. 48 | if (m_QuadInstanceBuffer == null || m_QuadInstanceBuffer.count != m_QuadInstanceData.Length) 49 | { 50 | if (m_QuadInstanceBuffer != null) 51 | { 52 | m_QuadInstanceBuffer.Release(); 53 | m_QuadInstanceBuffer = null; 54 | } 55 | 56 | m_QuadInstanceBuffer = new ComputeBuffer(m_QuadInstanceData.Length, 16 + 16 + 16); 57 | resources.glyphMaterial.SetBuffer("positionBuffer", m_QuadInstanceBuffer); 58 | } 59 | 60 | if (m_LineInstanceBuffer == null || m_LineInstanceBuffer.count != m_LineInstanceData.Length) 61 | { 62 | if (m_LineInstanceBuffer != null) 63 | { 64 | m_LineInstanceBuffer.Release(); 65 | m_LineInstanceBuffer = null; 66 | } 67 | 68 | m_LineInstanceBuffer = new ComputeBuffer(m_LineInstanceData.Length, 16 + 16); 69 | resources.lineMaterial.SetBuffer("positionBuffer", m_LineInstanceBuffer); 70 | } 71 | 72 | m_QuadInstanceBuffer.SetData(m_QuadInstanceData, 0, 0, m_NumQuadsUsed); 73 | m_NumQuadsToDraw = m_NumQuadsUsed; 74 | 75 | m_LineInstanceBuffer.SetData(m_LineInstanceData, 0, 0, m_NumLinesUsed); 76 | m_NumLinesToDraw = m_NumLinesUsed; 77 | 78 | resources.glyphMaterial.SetVector("scales", new Vector4( 79 | 1.0f / width, 80 | 1.0f / height, 81 | (float)resources.cellWidth / resources.glyphMaterial.mainTexture.width, 82 | (float)resources.cellHeight / resources.glyphMaterial.mainTexture.height)); 83 | 84 | resources.lineMaterial.SetVector("scales", new Vector4(1.0f / width, 1.0f / height, 1.0f / 1280.0f, 1.0f / 720.0f)); 85 | 86 | _Clear(); 87 | } 88 | 89 | public static void SetColor(Color col) 90 | { 91 | if (instance == null) 92 | return; 93 | instance.m_CurrentColor = col; 94 | } 95 | 96 | public static void SetOrigin(float x, float y) 97 | { 98 | if (instance == null) 99 | return; 100 | instance.m_OriginX = x; 101 | instance.m_OriginY = y; 102 | } 103 | 104 | public static void Write(float x, float y, char[] buf, int count) 105 | { 106 | if (instance == null) 107 | return; 108 | for (var i = 0; i < count; i++) 109 | instance.AddQuad(x + i, y, 1, 1, buf[i], instance.m_CurrentColor); 110 | } 111 | 112 | public static void Write(float x, float y, string format) 113 | { 114 | if (instance == null) 115 | return; 116 | var l = StringFormatter.Write(ref _buf, 0, format); 117 | instance._DrawText(x, y, ref _buf, l); 118 | } 119 | public static void Write(float x, float y, string format, T arg) 120 | { 121 | if (instance == null) 122 | return; 123 | var l = StringFormatter.Write(ref _buf, 0, format, arg); 124 | instance._DrawText(x, y, ref _buf, l); 125 | } 126 | public static void Write(Color col, float x, float y, string format, T arg) 127 | { 128 | if (instance == null) 129 | return; 130 | Color c = instance.m_CurrentColor; 131 | instance.m_CurrentColor = col; 132 | var l = StringFormatter.Write(ref _buf, 0, format, arg); 133 | instance._DrawText(x, y, ref _buf, l); 134 | instance.m_CurrentColor = c; 135 | } 136 | public static void Write(float x, float y, string format, T0 arg0, T1 arg1) 137 | { 138 | if (instance == null) 139 | return; 140 | var l = StringFormatter.Write(ref _buf, 0, format, arg0, arg1); 141 | instance._DrawText(x, y, ref _buf, l); 142 | } 143 | public static void Write(float x, float y, string format, T0 arg0, T1 arg1, T2 arg2) 144 | { 145 | if (instance == null) 146 | return; 147 | var l = StringFormatter.Write(ref _buf, 0, format, arg0, arg1, arg2); 148 | instance._DrawText(x, y, ref _buf, l); 149 | } 150 | 151 | public static void Write(float x, float y, string format, T0 arg0, T1 arg1, T2 arg2, T3 arg3) 152 | { 153 | if (instance == null) 154 | return; 155 | var l = StringFormatter.Write(ref _buf, 0, format, arg0, arg1, arg2, arg3); 156 | instance._DrawText(x, y, ref _buf, l); 157 | } 158 | 159 | // Draw a histogram of one set of data. Data must contain non-negative datapoints. 160 | public static void DrawHist(float x, float y, float w, float h, float[] data, int startSample, Color color, float maxRange = -1.0f) 161 | { 162 | if (instance == null) 163 | return; 164 | s_TempData[0] = data; 165 | s_TempColors[0] = color; 166 | instance._DrawHist(x, y, w, h, s_TempData, startSample, s_TempColors, maxRange); 167 | s_TempData[0] = null; 168 | } 169 | static float[][] s_TempData = new float[1][]; 170 | static Color[] s_TempColors = new Color[1]; 171 | 172 | // Draw a stacked histogram multiple sets of data. Data must contain non-negative datapoints. 173 | public static void DrawHist(float x, float y, float w, float h, float[][] data, int startSample, Color[] color, float maxRange = -1.0f) 174 | { 175 | if (instance == null) 176 | return; 177 | instance._DrawHist(x, y, w, h, data, startSample, color, maxRange); 178 | } 179 | 180 | public static void DrawGraph(float x, float y, float w, float h, float[] data, int startSample, Color color, float maxRange = -1.0f) 181 | { 182 | if (instance == null) 183 | return; 184 | s_TempData[0] = data; 185 | s_TempColors[0] = color; 186 | instance._DrawGraph(x, y, w, h, s_TempData, startSample, s_TempColors, maxRange); 187 | } 188 | 189 | public static void DrawGraph(float x, float y, float w, float h, float[][] data, int startSample, Color[] color, float maxRange = -1.0f) 190 | { 191 | if (instance == null) 192 | return; 193 | instance._DrawGraph(x, y, w, h, data, startSample, color, maxRange); 194 | } 195 | 196 | public static void DrawRect(float x, float y, float w, float h, Color col) 197 | { 198 | if (instance == null) 199 | return; 200 | instance._DrawRect(x, y, w, h, col); 201 | } 202 | 203 | public static void DrawLine(float x1, float y1, float x2, float y2, Color col) 204 | { 205 | if (instance == null) 206 | return; 207 | instance.AddLine(x1, y1, x2, y2, col); 208 | } 209 | 210 | void _DrawText(float x, float y, ref char[] text, int length) 211 | { 212 | const string hexes = "0123456789ABCDEF"; 213 | Vector4 col = m_CurrentColor; 214 | int xpos = 0; 215 | for (var i = 0; i < length; i++) 216 | { 217 | if (text[i] == '^' && i < length - 3) 218 | { 219 | var r = hexes.IndexOf(text[i + 1]); 220 | var g = hexes.IndexOf(text[i + 2]); 221 | var b = hexes.IndexOf(text[i + 3]); 222 | col.x = (float)(r * 16 + r) / 255.0f; 223 | col.y = (float)(g * 16 + g) / 255.0f; 224 | col.z = (float)(b * 16 + b) / 255.0f; 225 | i += 3; 226 | continue; 227 | } 228 | AddQuad(m_OriginX + x + xpos, m_OriginY + y, 1, 1, text[i], col); 229 | xpos++; 230 | } 231 | } 232 | 233 | void _DrawGraph(float x, float y, float w, float h, float[][] data, int startSample, Color[] color, float maxRange = -1.0f) 234 | { 235 | if(data == null || data.Length == 0 || data[0] == null) 236 | throw new System.ArgumentException("Invalid data argument (data must contain at least one non null array"); 237 | 238 | var numSamples = data[0].Length; 239 | /* 240 | for(int i = 1; i < data.Length; ++i) 241 | { 242 | if(data[i] == null || data[i].Length != numSamples) 243 | throw new System.ArgumentException("Length of data of all arrays must be the same"); 244 | } 245 | */ 246 | 247 | if (color.Length != data.Length) 248 | throw new System.ArgumentException("Length of colors must match number of datasets"); 249 | 250 | float maxData = float.MinValue; 251 | 252 | foreach (var dataset in data) 253 | { 254 | for (var i = 0; i < numSamples; i++) 255 | { 256 | if (dataset[i] > maxData) 257 | maxData = dataset[i]; 258 | } 259 | } 260 | 261 | if (maxData > maxRange) 262 | maxRange = maxData; 263 | 264 | float dx = w / numSamples; 265 | float scale = maxRange > 0 ? h / maxRange : 1.0f; 266 | 267 | for (var j = 0; j < data.Length; j++) 268 | { 269 | float old_pos_x = 0; 270 | float old_pos_y = 0; 271 | Vector4 col = color[j]; 272 | for (var i = 0; i < numSamples; i++) 273 | { 274 | float d = data[j][(i + startSample) % numSamples]; 275 | var pos_x = m_OriginX + x + dx * i; 276 | var pos_y = m_OriginY + y + h - d * scale; 277 | if (i > 0) 278 | AddLine(old_pos_x, old_pos_y, pos_x, pos_y, col); 279 | old_pos_x = pos_x; 280 | old_pos_y = pos_y; 281 | } 282 | } 283 | 284 | AddLine(x, y + h, x + w, y + h, color[0]); 285 | AddLine(x, y, x, y + h, color[0]); 286 | } 287 | 288 | void _DrawHist(float x, float y, float w, float h, float[][] data, int startSample, Color[] color, float maxRange = -1.0f) 289 | { 290 | if (data == null || data.Length == 0 || data[0] == null) 291 | throw new System.ArgumentException("Invalid data argument (data must contain at least one non null array"); 292 | 293 | var numSamples = data[0].Length; 294 | /* 295 | for (int i = 1; i < data.Length; ++i) 296 | { 297 | if (data[i] == null || data[i].Length != numSamples) 298 | throw new System.ArgumentException("Length of data of all arrays must be the same"); 299 | } 300 | */ 301 | 302 | if (color.Length != data.Length) 303 | throw new System.ArgumentException("Length of colors must match number of datasets"); 304 | 305 | var dataLength = data.Length; 306 | 307 | float maxData = float.MinValue; 308 | 309 | // Find tallest stack of values 310 | for (var i = 0; i < numSamples; i++) 311 | { 312 | float sum = 0; 313 | 314 | foreach(var dataset in data) 315 | sum += dataset[i]; 316 | 317 | if (sum > maxData) 318 | maxData = sum; 319 | } 320 | 321 | if (maxData > maxRange) 322 | maxRange = maxData; 323 | 324 | float dx = w / numSamples; 325 | float scale = maxRange > 0 ? h / maxRange : 1.0f; 326 | 327 | float stackOffset = 0; 328 | for (var i = 0; i < numSamples; i++) 329 | { 330 | stackOffset = 0; 331 | for (var j = 0; j < data.Length; j++) 332 | { 333 | var c = color[j]; 334 | float d = data[j][(i + startSample) % numSamples]; 335 | float barHeight = d * scale; // now in [0, h] 336 | var pos_x = m_OriginX + x + dx * i; 337 | var pos_y = m_OriginY + y + h - barHeight - stackOffset; 338 | var width = dx; 339 | var height = barHeight; 340 | stackOffset += barHeight; 341 | AddQuad(pos_x, pos_y, width, height, '\0', new Vector4(c.r, c.g, c.b, c.a)); 342 | } 343 | } 344 | } 345 | 346 | public void _DrawRect(float x, float y, float w, float h, Color col) 347 | { 348 | AddQuad(m_OriginX + x, m_OriginY + y, w, h, '\0', col); 349 | } 350 | 351 | void _Clear() 352 | { 353 | m_NumQuadsUsed = 0; 354 | m_NumLinesUsed = 0; 355 | SetOrigin(0, 0); 356 | } 357 | 358 | static char[] _buf = new char[1024]; 359 | 360 | public void Render() 361 | { 362 | resources.lineMaterial.SetPass(0); 363 | Graphics.DrawProceduralNow(MeshTopology.Triangles, m_NumLinesToDraw * 6, 1); 364 | resources.glyphMaterial.SetPass(0); 365 | Graphics.DrawProceduralNow(MeshTopology.Triangles, m_NumQuadsToDraw * 6, 1); 366 | } 367 | 368 | unsafe void AddLine(float x1, float y1, float x2, float y2, Vector4 col) 369 | { 370 | if (m_NumLinesUsed >= m_LineInstanceData.Length) 371 | { 372 | // Resize 373 | var newBuf = new LineInstanceData[m_LineInstanceData.Length + 128]; 374 | System.Array.Copy(m_LineInstanceData, newBuf, m_LineInstanceData.Length); 375 | m_LineInstanceData = newBuf; 376 | } 377 | fixed (LineInstanceData* d = &m_LineInstanceData[m_NumLinesUsed]) 378 | { 379 | d->color = col; 380 | d->position.x = x1; 381 | d->position.y = y1; 382 | d->position.z = x2; 383 | d->position.w = y2; 384 | } 385 | m_NumLinesUsed++; 386 | } 387 | 388 | public unsafe void AddQuad(float x, float y, float w, float h, char c, Vector4 col) 389 | { 390 | if (m_NumQuadsUsed >= m_QuadInstanceData.Length) 391 | { 392 | // Resize 393 | var newBuf = new QuadInstanceData[m_QuadInstanceData.Length + 128]; 394 | System.Array.Copy(m_QuadInstanceData, newBuf, m_QuadInstanceData.Length); 395 | m_QuadInstanceData = newBuf; 396 | } 397 | 398 | fixed (QuadInstanceData* d = &m_QuadInstanceData[m_NumQuadsUsed]) 399 | { 400 | if (c != '\0') 401 | { 402 | d->positionAndUV.z = (c - 32) % resources.charCols; 403 | d->positionAndUV.w = (c - 32) / resources.charCols; 404 | col.w = 0.0f; 405 | } 406 | else 407 | { 408 | d->positionAndUV.z = 0; 409 | d->positionAndUV.w = 0; 410 | } 411 | 412 | d->color = col; 413 | d->positionAndUV.x = x; 414 | d->positionAndUV.y = y; 415 | d->size.x = w; 416 | d->size.y = h; 417 | d->size.z = 0; 418 | d->size.w = 0; 419 | } 420 | 421 | m_NumQuadsUsed++; 422 | } 423 | 424 | 425 | float m_OriginX; 426 | float m_OriginY; 427 | Color m_CurrentColor = Color.white; 428 | 429 | struct QuadInstanceData 430 | { 431 | public Vector4 positionAndUV; // if UV are zero, dont sample 432 | public Vector4 size; // zw unused 433 | public Vector4 color; 434 | } 435 | 436 | struct LineInstanceData 437 | { 438 | public Vector4 position; // segment from (x,y) to (z,w) 439 | public Vector4 color; 440 | } 441 | 442 | int m_NumQuadsUsed = 0; 443 | int m_NumLinesUsed = 0; 444 | 445 | ComputeBuffer m_QuadInstanceBuffer; 446 | ComputeBuffer m_LineInstanceBuffer; 447 | int m_NumQuadsToDraw = 0; 448 | int m_NumLinesToDraw = 0; 449 | QuadInstanceData[] m_QuadInstanceData = new QuadInstanceData[128]; 450 | LineInstanceData[] m_LineInstanceData = new LineInstanceData[128]; 451 | } 452 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/DebugOverlay.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f22dbc0ede66c54f88a5e03a5c839be 3 | timeCreated: 1498422231 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/DebugOverlayResources.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | [CreateAssetMenu] 6 | public class DebugOverlayResources : ScriptableObject 7 | { 8 | [Tooltip("Number of columns of glyphs on texture")] 9 | public int charCols = 30; 10 | [Tooltip("Number of rows of glyphs on texture")] 11 | public int charRows = 16; 12 | [Tooltip("Width in pixels of each glyph")] 13 | public int cellWidth = 32; 14 | [Tooltip("Height in pixels of each glyph")] 15 | public int cellHeight = 32; 16 | 17 | public Material lineMaterial; 18 | public Material glyphMaterial; 19 | } 20 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/DebugOverlayResources.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ee760c28e7d93b3489f9d9db6875d1ba 3 | timeCreated: 1506370401 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/GlyphMaterial.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: GlyphMaterial 11 | m_Shader: {fileID: 4800000, guid: e77d75abe795e9040a2f1c7a49576231, type: 3} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: [] 15 | m_InvalidKeywords: [] 16 | m_LightmapFlags: 4 17 | m_EnableInstancingVariants: 0 18 | m_DoubleSidedGI: 0 19 | m_CustomRenderQueue: -1 20 | stringTagMap: {} 21 | disabledShaderPasses: [] 22 | m_LockedProperties: 23 | m_SavedProperties: 24 | serializedVersion: 3 25 | m_TexEnvs: 26 | - _BumpMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailAlbedoMap: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailMask: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _DetailNormalMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _EmissionMap: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MainTex: 47 | m_Texture: {fileID: 2800000, guid: dfd2b625635c1ee439ec40cb25a86661, type: 3} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _MetallicGlossMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _OcclusionMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _ParallaxMap: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | m_Ints: [] 63 | m_Floats: 64 | - _BumpScale: 1 65 | - _Cutoff: 0.5 66 | - _DetailNormalMapScale: 1 67 | - _DstBlend: 0 68 | - _GlossMapScale: 1 69 | - _Glossiness: 0.5 70 | - _GlossyReflections: 1 71 | - _Metallic: 0 72 | - _Mode: 0 73 | - _OcclusionStrength: 1 74 | - _Parallax: 0.02 75 | - _SmoothnessTextureChannel: 0 76 | - _SpecularHighlights: 1 77 | - _SrcBlend: 1 78 | - _UVSec: 0 79 | - _ZWrite: 1 80 | m_Colors: 81 | - _Color: {r: 1, g: 1, b: 1, a: 1} 82 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 83 | m_BuildTextureStacks: [] 84 | m_AllowLocking: 1 85 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/GlyphMaterial.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 477a9d34056b2754c88d334c3737699b 3 | timeCreated: 1506376325 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/GlyphShaderProc.shader: -------------------------------------------------------------------------------- 1 | Shader "Instanced/GlyphShaderProc" { 2 | Properties{ 3 | _MainTex("Albedo (RGB)", 2D) = "white" {} 4 | } 5 | SubShader{ 6 | 7 | Pass{ 8 | 9 | Tags{ "Queue" = "Transparent" "RenderType" = "Transparent" } 10 | 11 | ZWrite off 12 | ZTest Always 13 | Cull off 14 | //Blend One One 15 | Blend SrcAlpha OneMinusSrcAlpha 16 | 17 | CGPROGRAM 18 | 19 | #pragma vertex vert 20 | #pragma fragment frag 21 | #pragma multi_compile_fwdbase nolightmap nodirlightmap nodynlightmap novertexlight 22 | #pragma target 4.5 23 | 24 | #include "UnityCG.cginc" 25 | 26 | sampler2D _MainTex; 27 | float4 scales; // glyph scale in world (x,y) and on texture (z,w) 28 | 29 | struct instanceData 30 | { 31 | float4 position; 32 | float4 size; 33 | float4 color; 34 | }; 35 | 36 | StructuredBuffer positionBuffer; 37 | 38 | struct v2f 39 | { 40 | float4 pos : SV_POSITION; 41 | float2 uv_MainTex : TEXCOORD0; 42 | float4 color : TEXCOORD3; 43 | }; 44 | 45 | v2f vert(uint vid : SV_VertexID, uint instanceID : SV_InstanceID) 46 | { 47 | // We just draw a bunch of vertices but want to pretend to 48 | // be drawing two-triangle quads. Build inst/vert id for this: 49 | int instID = vid / 6.0; 50 | int vertID = vid - instID * 6; 51 | 52 | // Generates (0,0) (1,0) (1,1) (1,1) (1,0) (0,0) from vertID 53 | float4 v_pos = saturate(float4(2 - abs(vertID - 2), 2 - abs(vertID - 3), 0, 0)); 54 | 55 | // Read instance data 56 | float4 pos_uv = positionBuffer[instID].position; 57 | float2 scale = positionBuffer[instID].size.xy; 58 | float4 color = positionBuffer[instID].color; 59 | 60 | // Generate uv 61 | float2 uv = (pos_uv.zw + v_pos.xy) * scales.zw; 62 | uv.y = 1.0 - uv.y; 63 | 64 | // Generate position 65 | float2 p = (v_pos*scale + pos_uv.xy) * scales.xy; 66 | p.y = 1.0 - p.y; 67 | p = float2(-1, -1) + p * 2.0; 68 | 69 | v2f o; 70 | o.pos = float4(p.xy, 1, 1); 71 | o.uv_MainTex = uv; 72 | o.color = color; 73 | return o; 74 | } 75 | 76 | fixed4 frag(v2f i) : SV_Target 77 | { 78 | float4 albedo = float4(1,1,1,1); 79 | // TODO fix up this hack 80 | if (length(i.uv_MainTex) > 0) 81 | { 82 | albedo = tex2D(_MainTex, i.uv_MainTex); 83 | albedo = lerp(albedo, float4(1, 1, 1, 1), i.color.a); 84 | } 85 | fixed4 output = albedo * float4(i.color.rgb, 1); 86 | return output; 87 | } 88 | 89 | ENDCG 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/GlyphShaderProc.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e77d75abe795e9040a2f1c7a49576231 3 | timeCreated: 1498422447 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/LineMaterial.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: LineMaterial 11 | m_Shader: {fileID: 4800000, guid: b0127e7e38d54ef4394014ff4ccab268, type: 3} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: [] 15 | m_InvalidKeywords: [] 16 | m_LightmapFlags: 4 17 | m_EnableInstancingVariants: 0 18 | m_DoubleSidedGI: 0 19 | m_CustomRenderQueue: -1 20 | stringTagMap: {} 21 | disabledShaderPasses: [] 22 | m_LockedProperties: 23 | m_SavedProperties: 24 | serializedVersion: 3 25 | m_TexEnvs: 26 | - _BumpMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailAlbedoMap: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailMask: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _DetailNormalMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _EmissionMap: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MainTex: 47 | m_Texture: {fileID: 2800000, guid: dfd2b625635c1ee439ec40cb25a86661, type: 3} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _MetallicGlossMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _OcclusionMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _ParallaxMap: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | m_Ints: [] 63 | m_Floats: 64 | - _BumpScale: 1 65 | - _Cutoff: 0.5 66 | - _DetailNormalMapScale: 1 67 | - _DstBlend: 0 68 | - _GlossMapScale: 1 69 | - _Glossiness: 0.5 70 | - _GlossyReflections: 1 71 | - _Metallic: 0 72 | - _Mode: 0 73 | - _OcclusionStrength: 1 74 | - _Parallax: 0.02 75 | - _SmoothnessTextureChannel: 0 76 | - _SpecularHighlights: 1 77 | - _SrcBlend: 1 78 | - _UVSec: 0 79 | - _ZWrite: 1 80 | m_Colors: 81 | - _Color: {r: 1, g: 1, b: 1, a: 1} 82 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 83 | m_BuildTextureStacks: [] 84 | m_AllowLocking: 1 85 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/LineMaterial.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c0a581cec9f1b84ca44c736c4c4b15c 3 | timeCreated: 1506376325 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/LineShaderProc.shader: -------------------------------------------------------------------------------- 1 | Shader "Instanced/LineShaderProc" { 2 | Properties 3 | { 4 | } 5 | SubShader 6 | { 7 | Pass 8 | { 9 | Tags{ "Queue" = "Transparent" "RenderType" = "Transparent" } 10 | 11 | ZWrite off 12 | ZTest Always 13 | Cull off 14 | //Blend One One 15 | Blend SrcAlpha OneMinusSrcAlpha 16 | 17 | CGPROGRAM 18 | 19 | #pragma vertex vert 20 | #pragma fragment frag 21 | #pragma multi_compile_fwdbase nolightmap nodirlightmap nodynlightmap novertexlight 22 | #pragma target 4.5 23 | 24 | #include "UnityCG.cginc" 25 | 26 | float4 scales; // scale (x,y) 27 | 28 | struct instanceData 29 | { 30 | float4 position; 31 | float4 color; 32 | }; 33 | 34 | StructuredBuffer positionBuffer; 35 | 36 | struct v2f 37 | { 38 | float4 pos : SV_POSITION; 39 | float4 color : TEXCOORD3; 40 | }; 41 | 42 | v2f vert(uint vid : SV_VertexID, uint instanceID : SV_InstanceID) 43 | { 44 | // We just draw a bunch of vertices but want to pretend to 45 | // be drawing two-triangle quads. Build inst/vert id for this: 46 | int instID = vid / 6.0; 47 | int vertID = vid - instID * 6; 48 | 49 | // Generates (0,0) (1,0) (1,1) (1,1) (1,0) (0,0) from vertID 50 | float4 v_pos = saturate(float4(2 - abs(vertID - 2), 2 - abs(vertID - 3), 0, 0)); 51 | 52 | // Center around y 53 | v_pos.x -= 0.5; 54 | 55 | // Read instance data 56 | float4 pos = positionBuffer[instID].position; 57 | float4 color = positionBuffer[instID].color; 58 | 59 | // Generate position 60 | float2 dir = pos.zw - pos.xy; 61 | float2 pdir = normalize(float2(-dir.y, dir.x)); 62 | float2 p = (pos.xy + dir*v_pos.y)*scales.xy + pdir * 3.0 * v_pos.x * scales.zw; 63 | p.y = 1.0 - p.y; 64 | p = float2(-1, -1) + p * 2.0; 65 | 66 | v2f o; 67 | o.pos = float4(p.xy, 1, 1); 68 | o.color = color; 69 | return o; 70 | } 71 | 72 | fixed4 frag(v2f i) : SV_Target 73 | { 74 | float4 albedo = float4(1,1,1,1); 75 | fixed4 output = albedo * float4(i.color.rgb, 1); 76 | return output; 77 | } 78 | 79 | ENDCG 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/LineShaderProc.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b0127e7e38d54ef4394014ff4ccab268 3 | timeCreated: 1498422447 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4599d347837ae4847a044279a1021c31 3 | folderAsset: yes 4 | timeCreated: 1500897573 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/Resources/DebugOverlayResources.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: ee760c28e7d93b3489f9d9db6875d1ba, type: 3} 12 | m_Name: DebugOverlayResources 13 | m_EditorClassIdentifier: 14 | charCols: 26 15 | charRows: 16 16 | cellWidth: 19 17 | cellHeight: 32 18 | lineMaterial: {fileID: 2100000, guid: 8c0a581cec9f1b84ca44c736c4c4b15c, type: 2} 19 | glyphMaterial: {fileID: 2100000, guid: 477a9d34056b2754c88d334c3737699b, type: 2} 20 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/Resources/DebugOverlayResources.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab00413d60ef64c409011a43142bb2ee 3 | timeCreated: 1506370650 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 11400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/RobotoMonoFontSheet.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pandr/unity-debug-overlay/879ea4dc05ba6c2288413f5c1de0b88652b06482/Assets/DebugOverlay/RobotoMonoFontSheet.tga -------------------------------------------------------------------------------- /Assets/DebugOverlay/RobotoMonoFontSheet.tga.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dfd2b625635c1ee439ec40cb25a86661 3 | timeCreated: 1498485007 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | grayScaleToAlpha: 0 26 | generateCubemap: 6 27 | cubemapConvolution: 0 28 | seamlessCubemap: 0 29 | textureFormat: 1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | serializedVersion: 2 33 | filterMode: -1 34 | aniso: -1 35 | mipBias: -1 36 | wrapU: -1 37 | wrapV: -1 38 | wrapW: -1 39 | nPOTScale: 1 40 | lightmap: 0 41 | compressionQuality: 50 42 | spriteMode: 0 43 | spriteExtrude: 1 44 | spriteMeshType: 1 45 | alignment: 0 46 | spritePivot: {x: 0.5, y: 0.5} 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spritePixelsToUnits: 100 49 | alphaUsage: 1 50 | alphaIsTransparency: 0 51 | spriteTessellationDetail: -1 52 | textureType: 0 53 | textureShape: 1 54 | maxTextureSizeSet: 0 55 | compressionQualitySet: 0 56 | textureFormatSet: 0 57 | platformSettings: 58 | - buildTarget: DefaultTexturePlatform 59 | maxTextureSize: 2048 60 | textureFormat: -1 61 | textureCompression: 1 62 | compressionQuality: 50 63 | crunchedCompression: 0 64 | allowsAlphaSplitting: 0 65 | overridden: 0 66 | spriteSheet: 67 | serializedVersion: 2 68 | sprites: [] 69 | outline: [] 70 | physicsShape: [] 71 | spritePackingTag: 72 | userData: 73 | assetBundleName: 74 | assetBundleVariant: 75 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/TextFormatter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | public struct FormatSpec 5 | { 6 | public int argWidth; 7 | public bool leadingZero; 8 | public int integerWidth; 9 | public int fractWidth; 10 | } 11 | 12 | public unsafe interface IConverter 13 | { 14 | void Convert(ref char* dst, char* end, T value, FormatSpec formatSpec); 15 | } 16 | 17 | public unsafe class Converter : IConverter, IConverter, IConverter, IConverter 18 | { 19 | public static Converter instance = new Converter(); 20 | 21 | void IConverter.Convert(ref char* dst, char* end, int value, FormatSpec formatSpec) 22 | { 23 | ConvertInt(ref dst, end, value, formatSpec.argWidth, formatSpec.integerWidth, formatSpec.leadingZero); 24 | } 25 | 26 | void IConverter.Convert(ref char* dst, char* end, byte value, FormatSpec formatSpec) 27 | { 28 | ConvertInt(ref dst, end, value, formatSpec.argWidth, formatSpec.integerWidth, formatSpec.leadingZero); 29 | } 30 | 31 | void IConverter.Convert(ref char* dst, char* end, float value, FormatSpec formatSpec) 32 | { 33 | if (formatSpec.fractWidth == 0) 34 | formatSpec.fractWidth = 2; 35 | 36 | var intWidth = formatSpec.argWidth - formatSpec.fractWidth - 1; 37 | // Very crappy version for now 38 | bool neg = false; 39 | if (value < 0.0f) 40 | { 41 | neg = true; 42 | value = -value; 43 | } 44 | int v1 = Mathf.FloorToInt(value); 45 | float fractMult = (int)Mathf.Pow(10.0f, formatSpec.fractWidth); 46 | int v2 = Mathf.FloorToInt(value * fractMult) % (int)(fractMult); 47 | ConvertInt(ref dst, end, neg ? -v1 : v1, intWidth, formatSpec.integerWidth, formatSpec.leadingZero); 48 | if (dst < end) 49 | *dst++ = '.'; 50 | ConvertInt(ref dst, end, v2, formatSpec.fractWidth, formatSpec.fractWidth, true); 51 | } 52 | void IConverter.Convert(ref char* dst, char* end, string value, FormatSpec formatSpec) 53 | { 54 | int lpadding = 0, rpadding = 0; 55 | if (formatSpec.argWidth < 0) 56 | rpadding = -formatSpec.argWidth - value.Length; 57 | else 58 | lpadding = formatSpec.argWidth - value.Length; 59 | 60 | while (lpadding-- > 0 && dst < end) 61 | *dst++ = ' '; 62 | 63 | for (int i = 0, l = value.Length; i < l && dst < end; i++) 64 | *dst++ = value[i]; 65 | 66 | while (rpadding-- > 0 && dst < end) 67 | *dst++ = ' '; 68 | } 69 | 70 | void ConvertInt(ref char* dst, char* end, int value, int argWidth, int integerWidth, bool leadingZero) 71 | { 72 | // Dryrun to calculate size 73 | int numberWidth = 0; 74 | int signWidth = 0; 75 | int intpaddingWidth = 0; 76 | int argpaddingWidth = 0; 77 | 78 | bool neg = value < 0; 79 | if (neg) 80 | { 81 | value = -value; 82 | signWidth = 1; 83 | } 84 | 85 | int v = value; 86 | do 87 | { 88 | numberWidth++; 89 | v /= 10; 90 | } 91 | while (v != 0); 92 | 93 | if (numberWidth < integerWidth) 94 | intpaddingWidth = integerWidth - numberWidth; 95 | if (numberWidth + intpaddingWidth + signWidth < argWidth) 96 | argpaddingWidth = argWidth - numberWidth - intpaddingWidth - signWidth; 97 | 98 | dst += numberWidth + intpaddingWidth + signWidth + argpaddingWidth; 99 | 100 | if (dst > end) 101 | return; 102 | 103 | var d = dst; 104 | 105 | // Write out number 106 | do 107 | { 108 | *--d = (char)('0' + (value % 10)); 109 | value /= 10; 110 | } 111 | while (value != 0); 112 | 113 | // Format width padding 114 | while (intpaddingWidth-- > 0) 115 | *--d = leadingZero ? '0' : ' '; 116 | 117 | // Sign if needed 118 | if (neg) 119 | *--d = '-'; 120 | 121 | // Argument width padding 122 | while (argpaddingWidth-- > 0) 123 | *--d = ' '; 124 | } 125 | } 126 | 127 | /// 128 | /// Garbage free string formatter 129 | /// 130 | public static unsafe class StringFormatter 131 | { 132 | private class NoArg {} 133 | 134 | public static int Write(ref char[] dst, int destIdx, string format) 135 | { 136 | return Write(ref dst, destIdx, format, null, null, null, null, null, null); 137 | } 138 | public static int Write(ref char[] dst, int destIdx, string format, T0 arg0) 139 | { 140 | return Write(ref dst, destIdx, format, arg0, null, null, null, null, null); 141 | } 142 | public static int Write(ref char[] dst, int destIdx, string format, T0 arg0, T1 arg1) 143 | { 144 | return Write(ref dst, destIdx, format, arg0, arg1, null, null, null, null); 145 | } 146 | public static int Write(ref char[] dst, int destIdx, string format, T0 arg0, T1 arg1, T2 arg2) 147 | { 148 | return Write(ref dst, destIdx, format, arg0, arg1, arg2, null, null, null); 149 | } 150 | public static int Write(ref char[] dst, int destIdx, string format, T0 arg0, T1 arg1, T2 arg2, T3 arg3) 151 | { 152 | return Write(ref dst, destIdx, format, arg0, arg1, arg2, arg3, null, null); 153 | } 154 | public static int Write(ref char[] dst, int destIdx, string format, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) 155 | { 156 | return Write(ref dst, destIdx, format, arg0, arg1, arg2, arg3, arg4, null); 157 | } 158 | 159 | public static int Write(ref char[] dst, int destIdx, string format, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) 160 | { 161 | int written = 0; 162 | fixed (char* p = format, d = &dst[0]) 163 | { 164 | var dest = d + destIdx; 165 | var end = d + dst.Length; 166 | var l = format.Length; 167 | var src = p; 168 | while (*src > 0 && dest < end) 169 | { 170 | // Simplified parsing of {[,][:]} where is one of either 0000.00 or ####.## type formatters. 171 | if(*src == '{' && *(src+1) == '{') 172 | { 173 | *dest++ = *src++; 174 | src++; 175 | } 176 | else if (*src == '}') 177 | { 178 | if (*(src + 1) == '}') 179 | { 180 | *dest++ = *src++; 181 | src++; 182 | } 183 | else 184 | throw new FormatException("You must escape curly braces"); 185 | } 186 | else if (*src == '{') 187 | { 188 | src++; 189 | 190 | // Default values of FormatSpec in case none are given in format string 191 | FormatSpec s; 192 | s.argWidth = 0; 193 | s.integerWidth = 0; 194 | s.fractWidth = 0; 195 | s.leadingZero = false; 196 | 197 | // Parse argument number 198 | int argNum = 0; 199 | argNum = ReadNum(ref src); 200 | 201 | // Parse optional width 202 | if (*src == ',') 203 | { 204 | src++; 205 | s.argWidth = ReadNum(ref src); 206 | } 207 | 208 | // Parse optional format specifier 209 | if (*src == ':') 210 | { 211 | src++; 212 | var ch = *src; 213 | s.leadingZero = (ch == '0'); 214 | s.integerWidth = CountChar(ref src, ch); 215 | if (*src == '.') 216 | { 217 | src++; 218 | s.fractWidth = CountChar(ref src, ch); 219 | } 220 | } 221 | 222 | // Skip to } 223 | while (*src != '\0' && *src != '}') 224 | src++; 225 | 226 | if (*src == '\0') 227 | throw new FormatException("Invalid format. Missing '}'?"); 228 | else 229 | src++; 230 | 231 | switch(argNum) 232 | { 233 | case 0: ((IConverter)Converter.instance).Convert(ref dest, end, arg0, s); break; 234 | case 1: ((IConverter)Converter.instance).Convert(ref dest, end, arg1, s); break; 235 | case 2: ((IConverter)Converter.instance).Convert(ref dest, end, arg2, s); break; 236 | case 3: ((IConverter)Converter.instance).Convert(ref dest, end, arg3, s); break; 237 | case 4: ((IConverter)Converter.instance).Convert(ref dest, end, arg4, s); break; 238 | case 5: ((IConverter)Converter.instance).Convert(ref dest, end, arg5, s); break; 239 | default: 240 | throw new IndexOutOfRangeException(argNum.ToString()); 241 | } 242 | } 243 | else 244 | { 245 | *dest++ = *src++; 246 | } 247 | } 248 | written = (int)(dest - d + destIdx); 249 | } 250 | return written; 251 | } 252 | static int ReadNum(ref char* p) 253 | { 254 | int res = 0; 255 | bool neg = false; 256 | if (*p == '-') 257 | { 258 | neg = true; 259 | p++; 260 | } 261 | while (*p >= '0' && *p <= '9') 262 | { 263 | res *= 10; 264 | res += (*p - '0'); 265 | p++; 266 | } 267 | return neg ? -res : res; 268 | } 269 | 270 | static int CountChar(ref char* p, char ch) 271 | { 272 | int res = 0; 273 | while (*p == ch) 274 | { 275 | res++; 276 | p++; 277 | } 278 | return res; 279 | } 280 | } 281 | -------------------------------------------------------------------------------- /Assets/DebugOverlay/TextFormatter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fdee902a21ec2b942b1f9a57cc488edc 3 | timeCreated: 1498172706 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/DefaultVolumeProfile.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-7773711005470863511 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 3 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3} 13 | m_Name: DepthOfField 14 | m_EditorClassIdentifier: 15 | active: 1 16 | mode: 17 | m_OverrideState: 1 18 | m_Value: 0 19 | gaussianStart: 20 | m_OverrideState: 1 21 | m_Value: 10 22 | gaussianEnd: 23 | m_OverrideState: 1 24 | m_Value: 30 25 | gaussianMaxRadius: 26 | m_OverrideState: 1 27 | m_Value: 1 28 | highQualitySampling: 29 | m_OverrideState: 1 30 | m_Value: 0 31 | focusDistance: 32 | m_OverrideState: 1 33 | m_Value: 10 34 | aperture: 35 | m_OverrideState: 1 36 | m_Value: 5.6 37 | focalLength: 38 | m_OverrideState: 1 39 | m_Value: 50 40 | bladeCount: 41 | m_OverrideState: 1 42 | m_Value: 5 43 | bladeCurvature: 44 | m_OverrideState: 1 45 | m_Value: 1 46 | bladeRotation: 47 | m_OverrideState: 1 48 | m_Value: 0 49 | --- !u!114 &-5793254223672634107 50 | MonoBehaviour: 51 | m_ObjectHideFlags: 3 52 | m_CorrespondingSourceObject: {fileID: 0} 53 | m_PrefabInstance: {fileID: 0} 54 | m_PrefabAsset: {fileID: 0} 55 | m_GameObject: {fileID: 0} 56 | m_Enabled: 1 57 | m_EditorHideFlags: 0 58 | m_Script: {fileID: 11500000, guid: c5e1dc532bcb41949b58bc4f2abfbb7e, type: 3} 59 | m_Name: LensDistortion 60 | m_EditorClassIdentifier: 61 | active: 1 62 | intensity: 63 | m_OverrideState: 1 64 | m_Value: 0 65 | xMultiplier: 66 | m_OverrideState: 1 67 | m_Value: 1 68 | yMultiplier: 69 | m_OverrideState: 1 70 | m_Value: 1 71 | center: 72 | m_OverrideState: 1 73 | m_Value: {x: 0.5, y: 0.5} 74 | scale: 75 | m_OverrideState: 1 76 | m_Value: 1 77 | --- !u!114 &-4520864033451307232 78 | MonoBehaviour: 79 | m_ObjectHideFlags: 3 80 | m_CorrespondingSourceObject: {fileID: 0} 81 | m_PrefabInstance: {fileID: 0} 82 | m_PrefabAsset: {fileID: 0} 83 | m_GameObject: {fileID: 0} 84 | m_Enabled: 1 85 | m_EditorHideFlags: 0 86 | m_Script: {fileID: 11500000, guid: 66f335fb1ffd8684294ad653bf1c7564, type: 3} 87 | m_Name: ColorAdjustments 88 | m_EditorClassIdentifier: 89 | active: 1 90 | postExposure: 91 | m_OverrideState: 1 92 | m_Value: 0 93 | contrast: 94 | m_OverrideState: 1 95 | m_Value: 0 96 | colorFilter: 97 | m_OverrideState: 1 98 | m_Value: {r: 1, g: 1, b: 1, a: 1} 99 | hueShift: 100 | m_OverrideState: 1 101 | m_Value: 0 102 | saturation: 103 | m_OverrideState: 1 104 | m_Value: 0 105 | --- !u!114 &-3237601931473174594 106 | MonoBehaviour: 107 | m_ObjectHideFlags: 3 108 | m_CorrespondingSourceObject: {fileID: 0} 109 | m_PrefabInstance: {fileID: 0} 110 | m_PrefabAsset: {fileID: 0} 111 | m_GameObject: {fileID: 0} 112 | m_Enabled: 1 113 | m_EditorHideFlags: 0 114 | m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} 115 | m_Name: Bloom 116 | m_EditorClassIdentifier: 117 | active: 1 118 | skipIterations: 119 | m_OverrideState: 1 120 | m_Value: 1 121 | threshold: 122 | m_OverrideState: 1 123 | m_Value: 0.9 124 | intensity: 125 | m_OverrideState: 1 126 | m_Value: 0 127 | scatter: 128 | m_OverrideState: 1 129 | m_Value: 0.7 130 | clamp: 131 | m_OverrideState: 1 132 | m_Value: 65472 133 | tint: 134 | m_OverrideState: 1 135 | m_Value: {r: 1, g: 1, b: 1, a: 1} 136 | highQualityFiltering: 137 | m_OverrideState: 1 138 | m_Value: 0 139 | downscale: 140 | m_OverrideState: 1 141 | m_Value: 0 142 | maxIterations: 143 | m_OverrideState: 1 144 | m_Value: 6 145 | dirtTexture: 146 | m_OverrideState: 1 147 | m_Value: {fileID: 0} 148 | dimension: 1 149 | dirtIntensity: 150 | m_OverrideState: 1 151 | m_Value: 0 152 | --- !u!114 &-2253848660225795786 153 | MonoBehaviour: 154 | m_ObjectHideFlags: 3 155 | m_CorrespondingSourceObject: {fileID: 0} 156 | m_PrefabInstance: {fileID: 0} 157 | m_PrefabAsset: {fileID: 0} 158 | m_GameObject: {fileID: 0} 159 | m_Enabled: 1 160 | m_EditorHideFlags: 0 161 | m_Script: {fileID: 11500000, guid: 6bd486065ce11414fa40e631affc4900, type: 3} 162 | m_Name: ProbeVolumesOptions 163 | m_EditorClassIdentifier: 164 | active: 1 165 | normalBias: 166 | m_OverrideState: 1 167 | m_Value: 0.05 168 | viewBias: 169 | m_OverrideState: 1 170 | m_Value: 0.1 171 | scaleBiasWithMinProbeDistance: 172 | m_OverrideState: 1 173 | m_Value: 0 174 | samplingNoise: 175 | m_OverrideState: 1 176 | m_Value: 0.1 177 | animateSamplingNoise: 178 | m_OverrideState: 1 179 | m_Value: 1 180 | leakReductionMode: 181 | m_OverrideState: 1 182 | m_Value: 2 183 | minValidDotProductValue: 184 | m_OverrideState: 1 185 | m_Value: 0.1 186 | occlusionOnlyReflectionNormalization: 187 | m_OverrideState: 1 188 | m_Value: 1 189 | intensityMultiplier: 190 | m_OverrideState: 1 191 | m_Value: 1 192 | skyOcclusionIntensityMultiplier: 193 | m_OverrideState: 1 194 | m_Value: 1 195 | worldOffset: 196 | m_OverrideState: 1 197 | m_Value: {x: 0, y: 0, z: 0} 198 | --- !u!114 &-1700224020604422421 199 | MonoBehaviour: 200 | m_ObjectHideFlags: 3 201 | m_CorrespondingSourceObject: {fileID: 0} 202 | m_PrefabInstance: {fileID: 0} 203 | m_PrefabAsset: {fileID: 0} 204 | m_GameObject: {fileID: 0} 205 | m_Enabled: 1 206 | m_EditorHideFlags: 0 207 | m_Script: {fileID: 11500000, guid: 3eb4b772797da9440885e8bd939e9560, type: 3} 208 | m_Name: ColorCurves 209 | m_EditorClassIdentifier: 210 | active: 1 211 | master: 212 | m_OverrideState: 1 213 | m_Value: 214 | k__BackingField: 2 215 | m_Loop: 0 216 | m_ZeroValue: 0 217 | m_Range: 1 218 | m_Curve: 219 | serializedVersion: 2 220 | m_Curve: 221 | - serializedVersion: 3 222 | time: 0 223 | value: 0 224 | inSlope: 1 225 | outSlope: 1 226 | tangentMode: 0 227 | weightedMode: 0 228 | inWeight: 0 229 | outWeight: 0 230 | - serializedVersion: 3 231 | time: 1 232 | value: 1 233 | inSlope: 1 234 | outSlope: 1 235 | tangentMode: 0 236 | weightedMode: 0 237 | inWeight: 0 238 | outWeight: 0 239 | m_PreInfinity: 2 240 | m_PostInfinity: 2 241 | m_RotationOrder: 4 242 | red: 243 | m_OverrideState: 1 244 | m_Value: 245 | k__BackingField: 2 246 | m_Loop: 0 247 | m_ZeroValue: 0 248 | m_Range: 1 249 | m_Curve: 250 | serializedVersion: 2 251 | m_Curve: 252 | - serializedVersion: 3 253 | time: 0 254 | value: 0 255 | inSlope: 1 256 | outSlope: 1 257 | tangentMode: 0 258 | weightedMode: 0 259 | inWeight: 0 260 | outWeight: 0 261 | - serializedVersion: 3 262 | time: 1 263 | value: 1 264 | inSlope: 1 265 | outSlope: 1 266 | tangentMode: 0 267 | weightedMode: 0 268 | inWeight: 0 269 | outWeight: 0 270 | m_PreInfinity: 2 271 | m_PostInfinity: 2 272 | m_RotationOrder: 4 273 | green: 274 | m_OverrideState: 1 275 | m_Value: 276 | k__BackingField: 2 277 | m_Loop: 0 278 | m_ZeroValue: 0 279 | m_Range: 1 280 | m_Curve: 281 | serializedVersion: 2 282 | m_Curve: 283 | - serializedVersion: 3 284 | time: 0 285 | value: 0 286 | inSlope: 1 287 | outSlope: 1 288 | tangentMode: 0 289 | weightedMode: 0 290 | inWeight: 0 291 | outWeight: 0 292 | - serializedVersion: 3 293 | time: 1 294 | value: 1 295 | inSlope: 1 296 | outSlope: 1 297 | tangentMode: 0 298 | weightedMode: 0 299 | inWeight: 0 300 | outWeight: 0 301 | m_PreInfinity: 2 302 | m_PostInfinity: 2 303 | m_RotationOrder: 4 304 | blue: 305 | m_OverrideState: 1 306 | m_Value: 307 | k__BackingField: 2 308 | m_Loop: 0 309 | m_ZeroValue: 0 310 | m_Range: 1 311 | m_Curve: 312 | serializedVersion: 2 313 | m_Curve: 314 | - serializedVersion: 3 315 | time: 0 316 | value: 0 317 | inSlope: 1 318 | outSlope: 1 319 | tangentMode: 0 320 | weightedMode: 0 321 | inWeight: 0 322 | outWeight: 0 323 | - serializedVersion: 3 324 | time: 1 325 | value: 1 326 | inSlope: 1 327 | outSlope: 1 328 | tangentMode: 0 329 | weightedMode: 0 330 | inWeight: 0 331 | outWeight: 0 332 | m_PreInfinity: 2 333 | m_PostInfinity: 2 334 | m_RotationOrder: 4 335 | hueVsHue: 336 | m_OverrideState: 1 337 | m_Value: 338 | k__BackingField: 0 339 | m_Loop: 1 340 | m_ZeroValue: 0.5 341 | m_Range: 1 342 | m_Curve: 343 | serializedVersion: 2 344 | m_Curve: [] 345 | m_PreInfinity: 2 346 | m_PostInfinity: 2 347 | m_RotationOrder: 4 348 | hueVsSat: 349 | m_OverrideState: 1 350 | m_Value: 351 | k__BackingField: 0 352 | m_Loop: 1 353 | m_ZeroValue: 0.5 354 | m_Range: 1 355 | m_Curve: 356 | serializedVersion: 2 357 | m_Curve: [] 358 | m_PreInfinity: 2 359 | m_PostInfinity: 2 360 | m_RotationOrder: 4 361 | satVsSat: 362 | m_OverrideState: 1 363 | m_Value: 364 | k__BackingField: 0 365 | m_Loop: 0 366 | m_ZeroValue: 0.5 367 | m_Range: 1 368 | m_Curve: 369 | serializedVersion: 2 370 | m_Curve: [] 371 | m_PreInfinity: 2 372 | m_PostInfinity: 2 373 | m_RotationOrder: 4 374 | lumVsSat: 375 | m_OverrideState: 1 376 | m_Value: 377 | k__BackingField: 0 378 | m_Loop: 0 379 | m_ZeroValue: 0.5 380 | m_Range: 1 381 | m_Curve: 382 | serializedVersion: 2 383 | m_Curve: [] 384 | m_PreInfinity: 2 385 | m_PostInfinity: 2 386 | m_RotationOrder: 4 387 | --- !u!114 &-1688027389676117507 388 | MonoBehaviour: 389 | m_ObjectHideFlags: 3 390 | m_CorrespondingSourceObject: {fileID: 0} 391 | m_PrefabInstance: {fileID: 0} 392 | m_PrefabAsset: {fileID: 0} 393 | m_GameObject: {fileID: 0} 394 | m_Enabled: 1 395 | m_EditorHideFlags: 0 396 | m_Script: {fileID: 11500000, guid: 81180773991d8724ab7f2d216912b564, type: 3} 397 | m_Name: ChromaticAberration 398 | m_EditorClassIdentifier: 399 | active: 1 400 | intensity: 401 | m_OverrideState: 1 402 | m_Value: 0 403 | --- !u!114 &-848934947592901023 404 | MonoBehaviour: 405 | m_ObjectHideFlags: 3 406 | m_CorrespondingSourceObject: {fileID: 0} 407 | m_PrefabInstance: {fileID: 0} 408 | m_PrefabAsset: {fileID: 0} 409 | m_GameObject: {fileID: 0} 410 | m_Enabled: 1 411 | m_EditorHideFlags: 0 412 | m_Script: {fileID: 11500000, guid: 5485954d14dfb9a4c8ead8edb0ded5b1, type: 3} 413 | m_Name: LiftGammaGain 414 | m_EditorClassIdentifier: 415 | active: 1 416 | lift: 417 | m_OverrideState: 1 418 | m_Value: {x: 1, y: 1, z: 1, w: 0} 419 | gamma: 420 | m_OverrideState: 1 421 | m_Value: {x: 1, y: 1, z: 1, w: 0} 422 | gain: 423 | m_OverrideState: 1 424 | m_Value: {x: 1, y: 1, z: 1, w: 0} 425 | --- !u!114 &-29146664156976052 426 | MonoBehaviour: 427 | m_ObjectHideFlags: 3 428 | m_CorrespondingSourceObject: {fileID: 0} 429 | m_PrefabInstance: {fileID: 0} 430 | m_PrefabAsset: {fileID: 0} 431 | m_GameObject: {fileID: 0} 432 | m_Enabled: 1 433 | m_EditorHideFlags: 0 434 | m_Script: {fileID: 11500000, guid: cdfbdbb87d3286943a057f7791b43141, type: 3} 435 | m_Name: ChannelMixer 436 | m_EditorClassIdentifier: 437 | active: 1 438 | redOutRedIn: 439 | m_OverrideState: 1 440 | m_Value: 100 441 | redOutGreenIn: 442 | m_OverrideState: 1 443 | m_Value: 0 444 | redOutBlueIn: 445 | m_OverrideState: 1 446 | m_Value: 0 447 | greenOutRedIn: 448 | m_OverrideState: 1 449 | m_Value: 0 450 | greenOutGreenIn: 451 | m_OverrideState: 1 452 | m_Value: 100 453 | greenOutBlueIn: 454 | m_OverrideState: 1 455 | m_Value: 0 456 | blueOutRedIn: 457 | m_OverrideState: 1 458 | m_Value: 0 459 | blueOutGreenIn: 460 | m_OverrideState: 1 461 | m_Value: 0 462 | blueOutBlueIn: 463 | m_OverrideState: 1 464 | m_Value: 100 465 | --- !u!114 &11400000 466 | MonoBehaviour: 467 | m_ObjectHideFlags: 0 468 | m_CorrespondingSourceObject: {fileID: 0} 469 | m_PrefabInstance: {fileID: 0} 470 | m_PrefabAsset: {fileID: 0} 471 | m_GameObject: {fileID: 0} 472 | m_Enabled: 1 473 | m_EditorHideFlags: 0 474 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} 475 | m_Name: DefaultVolumeProfile 476 | m_EditorClassIdentifier: 477 | components: 478 | - {fileID: -1688027389676117507} 479 | - {fileID: 7443843461704357473} 480 | - {fileID: 6812508745665331355} 481 | - {fileID: 4171129211217790824} 482 | - {fileID: 4899088826530102871} 483 | - {fileID: 7401517177773120309} 484 | - {fileID: -7773711005470863511} 485 | - {fileID: -4520864033451307232} 486 | - {fileID: 2236493569399398188} 487 | - {fileID: -29146664156976052} 488 | - {fileID: -848934947592901023} 489 | - {fileID: -3237601931473174594} 490 | - {fileID: -1700224020604422421} 491 | - {fileID: 7361593770308325115} 492 | - {fileID: 2873336332376151568} 493 | - {fileID: -5793254223672634107} 494 | - {fileID: 1634191518108586142} 495 | - {fileID: 3169768249769096952} 496 | - {fileID: -2253848660225795786} 497 | --- !u!114 &1634191518108586142 498 | MonoBehaviour: 499 | m_ObjectHideFlags: 3 500 | m_CorrespondingSourceObject: {fileID: 0} 501 | m_PrefabInstance: {fileID: 0} 502 | m_PrefabAsset: {fileID: 0} 503 | m_GameObject: {fileID: 0} 504 | m_Enabled: 1 505 | m_EditorHideFlags: 0 506 | m_Script: {fileID: 11500000, guid: 06437c1ff663d574d9447842ba0a72e4, type: 3} 507 | m_Name: ScreenSpaceLensFlare 508 | m_EditorClassIdentifier: 509 | active: 1 510 | intensity: 511 | m_OverrideState: 1 512 | m_Value: 0 513 | tintColor: 514 | m_OverrideState: 1 515 | m_Value: {r: 1, g: 1, b: 1, a: 1} 516 | bloomMip: 517 | m_OverrideState: 1 518 | m_Value: 1 519 | firstFlareIntensity: 520 | m_OverrideState: 1 521 | m_Value: 1 522 | secondaryFlareIntensity: 523 | m_OverrideState: 1 524 | m_Value: 1 525 | warpedFlareIntensity: 526 | m_OverrideState: 1 527 | m_Value: 1 528 | warpedFlareScale: 529 | m_OverrideState: 1 530 | m_Value: {x: 1, y: 1} 531 | samples: 532 | m_OverrideState: 1 533 | m_Value: 1 534 | sampleDimmer: 535 | m_OverrideState: 1 536 | m_Value: 0.5 537 | vignetteEffect: 538 | m_OverrideState: 1 539 | m_Value: 1 540 | startingPosition: 541 | m_OverrideState: 1 542 | m_Value: 1.25 543 | scale: 544 | m_OverrideState: 1 545 | m_Value: 1.5 546 | streaksIntensity: 547 | m_OverrideState: 1 548 | m_Value: 0 549 | streaksLength: 550 | m_OverrideState: 1 551 | m_Value: 0.5 552 | streaksOrientation: 553 | m_OverrideState: 1 554 | m_Value: 0 555 | streaksThreshold: 556 | m_OverrideState: 1 557 | m_Value: 0.25 558 | resolution: 559 | m_OverrideState: 1 560 | m_Value: 4 561 | chromaticAbberationIntensity: 562 | m_OverrideState: 1 563 | m_Value: 0.5 564 | --- !u!114 &2236493569399398188 565 | MonoBehaviour: 566 | m_ObjectHideFlags: 3 567 | m_CorrespondingSourceObject: {fileID: 0} 568 | m_PrefabInstance: {fileID: 0} 569 | m_PrefabAsset: {fileID: 0} 570 | m_GameObject: {fileID: 0} 571 | m_Enabled: 1 572 | m_EditorHideFlags: 0 573 | m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} 574 | m_Name: Vignette 575 | m_EditorClassIdentifier: 576 | active: 1 577 | color: 578 | m_OverrideState: 1 579 | m_Value: {r: 0, g: 0, b: 0, a: 1} 580 | center: 581 | m_OverrideState: 1 582 | m_Value: {x: 0.5, y: 0.5} 583 | intensity: 584 | m_OverrideState: 1 585 | m_Value: 0 586 | smoothness: 587 | m_OverrideState: 1 588 | m_Value: 0.2 589 | rounded: 590 | m_OverrideState: 1 591 | m_Value: 0 592 | --- !u!114 &2873336332376151568 593 | MonoBehaviour: 594 | m_ObjectHideFlags: 3 595 | m_CorrespondingSourceObject: {fileID: 0} 596 | m_PrefabInstance: {fileID: 0} 597 | m_PrefabAsset: {fileID: 0} 598 | m_GameObject: {fileID: 0} 599 | m_Enabled: 1 600 | m_EditorHideFlags: 0 601 | m_Script: {fileID: 11500000, guid: 29fa0085f50d5e54f8144f766051a691, type: 3} 602 | m_Name: FilmGrain 603 | m_EditorClassIdentifier: 604 | active: 1 605 | type: 606 | m_OverrideState: 1 607 | m_Value: 0 608 | intensity: 609 | m_OverrideState: 1 610 | m_Value: 0 611 | response: 612 | m_OverrideState: 1 613 | m_Value: 0.8 614 | texture: 615 | m_OverrideState: 1 616 | m_Value: {fileID: 0} 617 | --- !u!114 &3169768249769096952 618 | MonoBehaviour: 619 | m_ObjectHideFlags: 3 620 | m_CorrespondingSourceObject: {fileID: 0} 621 | m_PrefabInstance: {fileID: 0} 622 | m_PrefabAsset: {fileID: 0} 623 | m_GameObject: {fileID: 0} 624 | m_Enabled: 1 625 | m_EditorHideFlags: 0 626 | m_Script: {fileID: 11500000, guid: 70afe9e12c7a7ed47911bb608a23a8ff, type: 3} 627 | m_Name: SplitToning 628 | m_EditorClassIdentifier: 629 | active: 1 630 | shadows: 631 | m_OverrideState: 1 632 | m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} 633 | highlights: 634 | m_OverrideState: 1 635 | m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} 636 | balance: 637 | m_OverrideState: 1 638 | m_Value: 0 639 | --- !u!114 &4171129211217790824 640 | MonoBehaviour: 641 | m_ObjectHideFlags: 3 642 | m_CorrespondingSourceObject: {fileID: 0} 643 | m_PrefabInstance: {fileID: 0} 644 | m_PrefabAsset: {fileID: 0} 645 | m_GameObject: {fileID: 0} 646 | m_Enabled: 1 647 | m_EditorHideFlags: 0 648 | m_Script: {fileID: 11500000, guid: ccf1aba9553839d41ae37dd52e9ebcce, type: 3} 649 | m_Name: MotionBlur 650 | m_EditorClassIdentifier: 651 | active: 1 652 | mode: 653 | m_OverrideState: 1 654 | m_Value: 0 655 | quality: 656 | m_OverrideState: 1 657 | m_Value: 0 658 | intensity: 659 | m_OverrideState: 1 660 | m_Value: 0 661 | clamp: 662 | m_OverrideState: 1 663 | m_Value: 0.05 664 | --- !u!114 &4899088826530102871 665 | MonoBehaviour: 666 | m_ObjectHideFlags: 3 667 | m_CorrespondingSourceObject: {fileID: 0} 668 | m_PrefabInstance: {fileID: 0} 669 | m_PrefabAsset: {fileID: 0} 670 | m_GameObject: {fileID: 0} 671 | m_Enabled: 1 672 | m_EditorHideFlags: 0 673 | m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} 674 | m_Name: Tonemapping 675 | m_EditorClassIdentifier: 676 | active: 1 677 | mode: 678 | m_OverrideState: 1 679 | m_Value: 0 680 | neutralHDRRangeReductionMode: 681 | m_OverrideState: 1 682 | m_Value: 2 683 | acesPreset: 684 | m_OverrideState: 1 685 | m_Value: 3 686 | hueShiftAmount: 687 | m_OverrideState: 1 688 | m_Value: 0 689 | detectPaperWhite: 690 | m_OverrideState: 1 691 | m_Value: 0 692 | paperWhite: 693 | m_OverrideState: 1 694 | m_Value: 300 695 | detectBrightnessLimits: 696 | m_OverrideState: 1 697 | m_Value: 1 698 | minNits: 699 | m_OverrideState: 1 700 | m_Value: 0.005 701 | maxNits: 702 | m_OverrideState: 1 703 | m_Value: 1000 704 | --- !u!114 &6812508745665331355 705 | MonoBehaviour: 706 | m_ObjectHideFlags: 3 707 | m_CorrespondingSourceObject: {fileID: 0} 708 | m_PrefabInstance: {fileID: 0} 709 | m_PrefabAsset: {fileID: 0} 710 | m_GameObject: {fileID: 0} 711 | m_Enabled: 1 712 | m_EditorHideFlags: 0 713 | m_Script: {fileID: 11500000, guid: 221518ef91623a7438a71fef23660601, type: 3} 714 | m_Name: WhiteBalance 715 | m_EditorClassIdentifier: 716 | active: 1 717 | temperature: 718 | m_OverrideState: 1 719 | m_Value: 0 720 | tint: 721 | m_OverrideState: 1 722 | m_Value: 0 723 | --- !u!114 &7361593770308325115 724 | MonoBehaviour: 725 | m_ObjectHideFlags: 3 726 | m_CorrespondingSourceObject: {fileID: 0} 727 | m_PrefabInstance: {fileID: 0} 728 | m_PrefabAsset: {fileID: 0} 729 | m_GameObject: {fileID: 0} 730 | m_Enabled: 1 731 | m_EditorHideFlags: 0 732 | m_Script: {fileID: 11500000, guid: fb60a22f311433c4c962b888d1393f88, type: 3} 733 | m_Name: PaniniProjection 734 | m_EditorClassIdentifier: 735 | active: 1 736 | distance: 737 | m_OverrideState: 1 738 | m_Value: 0 739 | cropToFit: 740 | m_OverrideState: 1 741 | m_Value: 1 742 | --- !u!114 &7401517177773120309 743 | MonoBehaviour: 744 | m_ObjectHideFlags: 3 745 | m_CorrespondingSourceObject: {fileID: 0} 746 | m_PrefabInstance: {fileID: 0} 747 | m_PrefabAsset: {fileID: 0} 748 | m_GameObject: {fileID: 0} 749 | m_Enabled: 1 750 | m_EditorHideFlags: 0 751 | m_Script: {fileID: 11500000, guid: 558a8e2b6826cf840aae193990ba9f2e, type: 3} 752 | m_Name: ShadowsMidtonesHighlights 753 | m_EditorClassIdentifier: 754 | active: 1 755 | shadows: 756 | m_OverrideState: 1 757 | m_Value: {x: 1, y: 1, z: 1, w: 0} 758 | midtones: 759 | m_OverrideState: 1 760 | m_Value: {x: 1, y: 1, z: 1, w: 0} 761 | highlights: 762 | m_OverrideState: 1 763 | m_Value: {x: 1, y: 1, z: 1, w: 0} 764 | shadowsStart: 765 | m_OverrideState: 1 766 | m_Value: 0 767 | shadowsEnd: 768 | m_OverrideState: 1 769 | m_Value: 0.3 770 | highlightsStart: 771 | m_OverrideState: 1 772 | m_Value: 0.55 773 | highlightsEnd: 774 | m_OverrideState: 1 775 | m_Value: 1 776 | --- !u!114 &7443843461704357473 777 | MonoBehaviour: 778 | m_ObjectHideFlags: 3 779 | m_CorrespondingSourceObject: {fileID: 0} 780 | m_PrefabInstance: {fileID: 0} 781 | m_PrefabAsset: {fileID: 0} 782 | m_GameObject: {fileID: 0} 783 | m_Enabled: 1 784 | m_EditorHideFlags: 0 785 | m_Script: {fileID: 11500000, guid: e021b4c809a781e468c2988c016ebbea, type: 3} 786 | m_Name: ColorLookup 787 | m_EditorClassIdentifier: 788 | active: 1 789 | texture: 790 | m_OverrideState: 1 791 | m_Value: {fileID: 0} 792 | dimension: 1 793 | contribution: 794 | m_OverrideState: 1 795 | m_Value: 0 796 | -------------------------------------------------------------------------------- /Assets/DefaultVolumeProfile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2370fcb421d01df4c973e9e7ff571751 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 64a6956f169f6f342bd63c430c93349e 3 | folderAsset: yes 4 | timeCreated: 1499150556 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Demo/CharacterMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: CharacterMat 11 | m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: [] 15 | m_InvalidKeywords: [] 16 | m_LightmapFlags: 4 17 | m_EnableInstancingVariants: 0 18 | m_DoubleSidedGI: 0 19 | m_CustomRenderQueue: -1 20 | stringTagMap: 21 | RenderType: Opaque 22 | disabledShaderPasses: 23 | - MOTIONVECTORS 24 | m_LockedProperties: 25 | m_SavedProperties: 26 | serializedVersion: 3 27 | m_TexEnvs: 28 | - _BaseMap: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | - _BumpMap: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - _DetailAlbedoMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _DetailMask: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _DetailNormalMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _EmissionMap: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _MainTex: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | - _MetallicGlossMap: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - _OcclusionMap: 61 | m_Texture: {fileID: 0} 62 | m_Scale: {x: 1, y: 1} 63 | m_Offset: {x: 0, y: 0} 64 | - _ParallaxMap: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | - _SpecGlossMap: 69 | m_Texture: {fileID: 0} 70 | m_Scale: {x: 1, y: 1} 71 | m_Offset: {x: 0, y: 0} 72 | - unity_Lightmaps: 73 | m_Texture: {fileID: 0} 74 | m_Scale: {x: 1, y: 1} 75 | m_Offset: {x: 0, y: 0} 76 | - unity_LightmapsInd: 77 | m_Texture: {fileID: 0} 78 | m_Scale: {x: 1, y: 1} 79 | m_Offset: {x: 0, y: 0} 80 | - unity_ShadowMasks: 81 | m_Texture: {fileID: 0} 82 | m_Scale: {x: 1, y: 1} 83 | m_Offset: {x: 0, y: 0} 84 | m_Ints: [] 85 | m_Floats: 86 | - _AddPrecomputedVelocity: 0 87 | - _AlphaClip: 0 88 | - _AlphaToMask: 0 89 | - _Blend: 0 90 | - _BlendModePreserveSpecular: 1 91 | - _BumpScale: 1 92 | - _ClearCoatMask: 0 93 | - _ClearCoatSmoothness: 0 94 | - _Cull: 2 95 | - _Cutoff: 0.5 96 | - _DetailAlbedoMapScale: 1 97 | - _DetailNormalMapScale: 1 98 | - _DstBlend: 0 99 | - _DstBlendAlpha: 0 100 | - _EnvironmentReflections: 1 101 | - _GlossMapScale: 1 102 | - _Glossiness: 0.5 103 | - _GlossinessSource: 0 104 | - _GlossyReflections: 1 105 | - _Metallic: 0 106 | - _Mode: 0 107 | - _OcclusionStrength: 1 108 | - _Parallax: 0.02 109 | - _QueueOffset: 0 110 | - _ReceiveShadows: 1 111 | - _Shininess: 0 112 | - _Smoothness: 0.919 113 | - _SmoothnessSource: 0 114 | - _SmoothnessTextureChannel: 0 115 | - _SpecSource: 0 116 | - _SpecularHighlights: 1 117 | - _SrcBlend: 1 118 | - _SrcBlendAlpha: 1 119 | - _Surface: 0 120 | - _UVSec: 0 121 | - _WorkflowMode: 1 122 | - _XRMotionVectorsPass: 1 123 | - _ZWrite: 1 124 | m_Colors: 125 | - _BaseColor: {r: 0.8537736, g: 0.2511635, b: 0.22955233, a: 1} 126 | - _Color: {r: 0.8537736, g: 0.25116348, b: 0.2295523, a: 1} 127 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 128 | - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} 129 | m_BuildTextureStacks: [] 130 | m_AllowLocking: 1 131 | --- !u!114 &4375182691972307855 132 | MonoBehaviour: 133 | m_ObjectHideFlags: 11 134 | m_CorrespondingSourceObject: {fileID: 0} 135 | m_PrefabInstance: {fileID: 0} 136 | m_PrefabAsset: {fileID: 0} 137 | m_GameObject: {fileID: 0} 138 | m_Enabled: 1 139 | m_EditorHideFlags: 0 140 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 141 | m_Name: 142 | m_EditorClassIdentifier: 143 | version: 9 144 | -------------------------------------------------------------------------------- /Assets/Demo/CharacterMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5676e04eda24d34c868749421d7829f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/DebugOverlayTest.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 54e2a29b6ca68e54a99eb4dc340ff3a1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/DebugOverlayTest.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 61b21ba9fc0d7c04eb28a72045df7d38 3 | timeCreated: 1498219665 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/DebugOverlayTest/LightingData.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pandr/unity-debug-overlay/879ea4dc05ba6c2288413f5c1de0b88652b06482/Assets/Demo/DebugOverlayTest/LightingData.asset -------------------------------------------------------------------------------- /Assets/Demo/DebugOverlayTest/LightingData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a5d9314d5233c30468f79a0941148953 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/DebugOverlayTest/ReflectionProbe-0.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pandr/unity-debug-overlay/879ea4dc05ba6c2288413f5c1de0b88652b06482/Assets/Demo/DebugOverlayTest/ReflectionProbe-0.exr -------------------------------------------------------------------------------- /Assets/Demo/DebugOverlayTest/ReflectionProbe-0.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e7a536abb3beed2448a283fdae2614a2 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 1 30 | seamlessCubemap: 1 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: 2 36 | aniso: 0 37 | mipBias: 0 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: 1 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 2 57 | singleChannelComponent: 0 58 | maxTextureSizeSet: 0 59 | compressionQualitySet: 0 60 | textureFormatSet: 0 61 | ignorePngGamma: 0 62 | applyGammaDecoding: 0 63 | platformSettings: 64 | - serializedVersion: 3 65 | buildTarget: DefaultTexturePlatform 66 | maxTextureSize: 2048 67 | resizeAlgorithm: 0 68 | textureFormat: -1 69 | textureCompression: 1 70 | compressionQuality: 100 71 | crunchedCompression: 0 72 | allowsAlphaSplitting: 0 73 | overridden: 0 74 | androidETC2FallbackOverride: 0 75 | forceMaximumCompressionQuality_BC6H_BC7: 0 76 | spriteSheet: 77 | serializedVersion: 2 78 | sprites: [] 79 | outline: [] 80 | physicsShape: [] 81 | bones: [] 82 | spriteID: 83 | internalID: 0 84 | vertices: [] 85 | indices: 86 | edges: [] 87 | weights: [] 88 | secondaryTextures: [] 89 | spritePackingTag: 90 | pSDRemoveMatte: 0 91 | pSDShowRemoveMatteOption: 0 92 | userData: 93 | assetBundleName: 94 | assetBundleVariant: 95 | -------------------------------------------------------------------------------- /Assets/Demo/FloorMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-837871640033247311 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 9 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 8 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: FloorMat 24 | m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} 25 | m_Parent: {fileID: 0} 26 | m_ModifiedSerializedProperties: 0 27 | m_ValidKeywords: 28 | - _SPECULAR_SETUP 29 | m_InvalidKeywords: [] 30 | m_LightmapFlags: 4 31 | m_EnableInstancingVariants: 0 32 | m_DoubleSidedGI: 0 33 | m_CustomRenderQueue: -1 34 | stringTagMap: 35 | RenderType: Opaque 36 | disabledShaderPasses: 37 | - MOTIONVECTORS 38 | m_LockedProperties: 39 | m_SavedProperties: 40 | serializedVersion: 3 41 | m_TexEnvs: 42 | - _BaseMap: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _BumpMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _DetailAlbedoMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _DetailMask: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _DetailNormalMap: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | - _EmissionMap: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - _MainTex: 67 | m_Texture: {fileID: 0} 68 | m_Scale: {x: 1, y: 1} 69 | m_Offset: {x: 0, y: 0} 70 | - _MetallicGlossMap: 71 | m_Texture: {fileID: 0} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | - _OcclusionMap: 75 | m_Texture: {fileID: 0} 76 | m_Scale: {x: 1, y: 1} 77 | m_Offset: {x: 0, y: 0} 78 | - _ParallaxMap: 79 | m_Texture: {fileID: 0} 80 | m_Scale: {x: 1, y: 1} 81 | m_Offset: {x: 0, y: 0} 82 | - _SpecGlossMap: 83 | m_Texture: {fileID: 0} 84 | m_Scale: {x: 1, y: 1} 85 | m_Offset: {x: 0, y: 0} 86 | - unity_Lightmaps: 87 | m_Texture: {fileID: 0} 88 | m_Scale: {x: 1, y: 1} 89 | m_Offset: {x: 0, y: 0} 90 | - unity_LightmapsInd: 91 | m_Texture: {fileID: 0} 92 | m_Scale: {x: 1, y: 1} 93 | m_Offset: {x: 0, y: 0} 94 | - unity_ShadowMasks: 95 | m_Texture: {fileID: 0} 96 | m_Scale: {x: 1, y: 1} 97 | m_Offset: {x: 0, y: 0} 98 | m_Ints: [] 99 | m_Floats: 100 | - _AddPrecomputedVelocity: 0 101 | - _AlphaClip: 0 102 | - _AlphaToMask: 0 103 | - _Blend: 0 104 | - _BlendModePreserveSpecular: 1 105 | - _BumpScale: 1 106 | - _ClearCoatMask: 0 107 | - _ClearCoatSmoothness: 0 108 | - _Cull: 2 109 | - _Cutoff: 0.5 110 | - _DetailAlbedoMapScale: 1 111 | - _DetailNormalMapScale: 1 112 | - _DstBlend: 0 113 | - _DstBlendAlpha: 0 114 | - _EnvironmentReflections: 1 115 | - _GlossMapScale: 1 116 | - _Glossiness: 0.2 117 | - _GlossinessSource: 0 118 | - _GlossyReflections: 1 119 | - _Metallic: 0 120 | - _Mode: 0 121 | - _OcclusionStrength: 1 122 | - _Parallax: 0.02 123 | - _QueueOffset: 0 124 | - _ReceiveShadows: 1 125 | - _Shininess: 0 126 | - _Smoothness: 0 127 | - _SmoothnessSource: 0 128 | - _SmoothnessTextureChannel: 0 129 | - _SpecSource: 0 130 | - _SpecularHighlights: 1 131 | - _SrcBlend: 1 132 | - _SrcBlendAlpha: 1 133 | - _Surface: 0 134 | - _UVSec: 0 135 | - _WorkflowMode: 0 136 | - _XRMotionVectorsPass: 1 137 | - _ZWrite: 1 138 | m_Colors: 139 | - _BaseColor: {r: 0.3584906, g: 0.25375038, b: 0.19108224, a: 1} 140 | - _Color: {r: 0.35849056, g: 0.25375035, b: 0.19108221, a: 1} 141 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 142 | - _SpecColor: {r: 0, g: 0, b: 0, a: 0.5} 143 | m_BuildTextureStacks: [] 144 | m_AllowLocking: 1 145 | -------------------------------------------------------------------------------- /Assets/Demo/FloorMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd7c65020a4760246a842ffee2d061f5 3 | timeCreated: 1498896771 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Demo/LevelMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: LevelMat 11 | m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: [] 15 | m_InvalidKeywords: [] 16 | m_LightmapFlags: 4 17 | m_EnableInstancingVariants: 0 18 | m_DoubleSidedGI: 0 19 | m_CustomRenderQueue: -1 20 | stringTagMap: 21 | RenderType: Opaque 22 | disabledShaderPasses: 23 | - MOTIONVECTORS 24 | m_LockedProperties: 25 | m_SavedProperties: 26 | serializedVersion: 3 27 | m_TexEnvs: 28 | - _BaseMap: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | - _BumpMap: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - _DetailAlbedoMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _DetailMask: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _DetailNormalMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _EmissionMap: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _MainTex: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | - _MetallicGlossMap: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - _OcclusionMap: 61 | m_Texture: {fileID: 0} 62 | m_Scale: {x: 1, y: 1} 63 | m_Offset: {x: 0, y: 0} 64 | - _ParallaxMap: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | - _SpecGlossMap: 69 | m_Texture: {fileID: 0} 70 | m_Scale: {x: 1, y: 1} 71 | m_Offset: {x: 0, y: 0} 72 | - unity_Lightmaps: 73 | m_Texture: {fileID: 0} 74 | m_Scale: {x: 1, y: 1} 75 | m_Offset: {x: 0, y: 0} 76 | - unity_LightmapsInd: 77 | m_Texture: {fileID: 0} 78 | m_Scale: {x: 1, y: 1} 79 | m_Offset: {x: 0, y: 0} 80 | - unity_ShadowMasks: 81 | m_Texture: {fileID: 0} 82 | m_Scale: {x: 1, y: 1} 83 | m_Offset: {x: 0, y: 0} 84 | m_Ints: [] 85 | m_Floats: 86 | - _AddPrecomputedVelocity: 0 87 | - _AlphaClip: 0 88 | - _AlphaToMask: 0 89 | - _Blend: 0 90 | - _BlendModePreserveSpecular: 1 91 | - _BumpScale: 1 92 | - _ClearCoatMask: 0 93 | - _ClearCoatSmoothness: 0 94 | - _Cull: 2 95 | - _Cutoff: 0.5 96 | - _DetailAlbedoMapScale: 1 97 | - _DetailNormalMapScale: 1 98 | - _DstBlend: 0 99 | - _DstBlendAlpha: 0 100 | - _EnvironmentReflections: 1 101 | - _GlossMapScale: 1 102 | - _Glossiness: 0.5 103 | - _GlossinessSource: 0 104 | - _GlossyReflections: 1 105 | - _Metallic: 0 106 | - _Mode: 0 107 | - _OcclusionStrength: 1 108 | - _Parallax: 0.02 109 | - _QueueOffset: 0 110 | - _ReceiveShadows: 1 111 | - _Shininess: 0 112 | - _Smoothness: 0.919 113 | - _SmoothnessSource: 0 114 | - _SmoothnessTextureChannel: 0 115 | - _SpecSource: 0 116 | - _SpecularHighlights: 1 117 | - _SrcBlend: 1 118 | - _SrcBlendAlpha: 1 119 | - _Surface: 0 120 | - _UVSec: 0 121 | - _WorkflowMode: 1 122 | - _XRMotionVectorsPass: 1 123 | - _ZWrite: 1 124 | m_Colors: 125 | - _BaseColor: {r: 0.47124732, g: 0.5566038, b: 0.38069597, a: 1} 126 | - _Color: {r: 0.47124726, g: 0.5566037, b: 0.38069594, a: 1} 127 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 128 | - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} 129 | m_BuildTextureStacks: [] 130 | m_AllowLocking: 1 131 | --- !u!114 &4375182691972307855 132 | MonoBehaviour: 133 | m_ObjectHideFlags: 11 134 | m_CorrespondingSourceObject: {fileID: 0} 135 | m_PrefabInstance: {fileID: 0} 136 | m_PrefabAsset: {fileID: 0} 137 | m_GameObject: {fileID: 0} 138 | m_Enabled: 1 139 | m_EditorHideFlags: 0 140 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 141 | m_Name: 142 | m_EditorClassIdentifier: 143 | version: 9 144 | -------------------------------------------------------------------------------- /Assets/Demo/LevelMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bea5acb27359c484e97204faa04a6706 3 | timeCreated: 1498896771 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Demo/fpscontroller.cs: -------------------------------------------------------------------------------- 1 | // Simple fps controller for unity 2 | // To use, build this: 3 | // 4 | // Capsule 5 | // Camera 6 | // 7 | // Put this script AND a CharacterController on the Capsule 8 | // Link up camera to the "player_cam" property of this script 9 | // Make sure Camera is positioned at (locally) 0, 0, 0 and with no rotation and scale 10 | 11 | using System.Collections; 12 | using System.Collections.Generic; 13 | using UnityEngine; 14 | using UnityEngine.InputSystem; 15 | 16 | public class fpscontroller : MonoBehaviour 17 | { 18 | public Camera player_cam; 19 | 20 | public float mouse_sensitivity = 75.0f; 21 | public float jump_speed = 5.0f; 22 | public float player_friction = 8.0f; 23 | public float player_air_friction = 1.0f; 24 | public float player_accel = 100.0f; 25 | public float player_air_accel = 30.0f; 26 | public float player_speed = 7.0f; 27 | 28 | private float cam_yaw = 0.0f; 29 | private Vector3 velocity = Vector3.zero; 30 | 31 | CharacterController cc; 32 | 33 | void Start() 34 | { 35 | cc = GetComponent(); 36 | } 37 | 38 | void Update() 39 | { 40 | if(Game.console.IsOpen()) 41 | return; 42 | 43 | // Turn player 44 | var turn_player = new Vector3(0, Mouse.current.delta.x.value, 0); 45 | 46 | turn_player = turn_player * mouse_sensitivity * Time.deltaTime; 47 | transform.localEulerAngles += turn_player; 48 | 49 | // Fall down / gravity 50 | velocity.y = velocity.y - 10.0f * Time.deltaTime; 51 | if (velocity.y < -10.0f) 52 | velocity.y = -10.0f; // max fall speed 53 | var vertical_move = new Vector3(0, velocity.y * Time.deltaTime, 0); 54 | cc.Move(vertical_move); 55 | 56 | bool isGrounded = cc.isGrounded; 57 | 58 | var friction = isGrounded ? player_friction : player_air_friction; 59 | var accel = isGrounded ? player_accel : player_air_accel; 60 | 61 | // WASD movement 62 | float horizontal = Keyboard.current.aKey.isPressed ? -1.0f : 0.0f; 63 | horizontal += Keyboard.current.dKey.isPressed ? 1.0f : 0.0f; 64 | float vertical = Keyboard.current.sKey.isPressed ? -1.0f : 0.0f; 65 | vertical += Keyboard.current.wKey.isPressed ? 1.0f : 0.0f; 66 | var move = new Vector3(horizontal, 0, vertical); 67 | var moveMagnitude = move.magnitude; 68 | if (moveMagnitude > 1.0f) 69 | move /= moveMagnitude; 70 | // Transform to world space 71 | move = transform.TransformDirection(move); 72 | 73 | // Apply friction 74 | var groundVelocity = new Vector3(velocity.x, 0, velocity.z); 75 | float g_speed = groundVelocity.magnitude; 76 | if (g_speed > 0) 77 | { 78 | g_speed -= Mathf.Max(g_speed, 1.0f) * friction * Time.deltaTime; 79 | if (g_speed < 0) 80 | g_speed = 0; 81 | groundVelocity = groundVelocity.normalized * g_speed; 82 | } 83 | 84 | // Horizontal movement 85 | var wantedGroundVel = move * player_speed; 86 | var wantedGroundDir = moveMagnitude > 0.001f ? move / moveMagnitude : Vector3.zero; 87 | var speedMadeGood = Vector3.Dot(groundVelocity, wantedGroundDir); 88 | var deltaSpeed = moveMagnitude * player_speed - speedMadeGood; 89 | if (deltaSpeed > 0.001) 90 | { 91 | var velAdjust = Mathf.Clamp(accel * Time.deltaTime, 0.0f, deltaSpeed) * wantedGroundDir; 92 | groundVelocity += velAdjust; 93 | } 94 | 95 | velocity.x = groundVelocity.x; 96 | velocity.z = groundVelocity.z; 97 | cc.Move(velocity * Time.deltaTime); 98 | 99 | // Jump 100 | if (isGrounded && Keyboard.current.spaceKey.isPressed) 101 | { 102 | velocity.y = jump_speed; 103 | } 104 | 105 | // Camera look up/down 106 | cam_yaw += -Mouse.current.delta.y.value * mouse_sensitivity * Time.deltaTime; 107 | cam_yaw = Mathf.Clamp(cam_yaw, -70.0f, 70.0f); 108 | player_cam.transform.localEulerAngles = new Vector3(cam_yaw, 0, 0); 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /Assets/Demo/fpscontroller.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2b13a7ad7e32d3c4ab1d96ec62623001 3 | timeCreated: 1498217924 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2eb9f2c17e578224e95e3c6b27259875 3 | folderAsset: yes 4 | timeCreated: 1501028263 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/BootSequence.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | /// 6 | /// This is a bootstrapper. Nothing should run before this and almost all 7 | /// game code should be driven through these *Update() functions. 8 | /// 9 | 10 | [DefaultExecutionOrder(-1001)] 11 | public class BootSequence : MonoBehaviour 12 | { 13 | Game m_Game; 14 | 15 | void Awake() 16 | { 17 | DontDestroyOnLoad(gameObject); 18 | m_Game = new Game(); 19 | m_Game.Init(); 20 | wfeof = new WaitForEndOfFrame(); 21 | StartCoroutine(EndOfFrame()); 22 | } 23 | 24 | void OnDestroy() 25 | { 26 | m_Game.Shutdown(); 27 | } 28 | 29 | void FixedUpdate() { m_Game.FixedUpdate(); } 30 | void Update() { m_Game.Update(); } 31 | void LateUpdate() { m_Game.LateUpdate(); } 32 | IEnumerator EndOfFrame() { while(true) { yield return wfeof; m_Game.EndOfFrame(); } } 33 | 34 | WaitForEndOfFrame wfeof; 35 | } 36 | 37 | -------------------------------------------------------------------------------- /Assets/Game/BootSequence.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 75a45fcb496ae52489945db885e00b3a 3 | timeCreated: 1500894826 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Game.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using System; 5 | #if UNITY_EDITOR 6 | using UnityEditor; 7 | #endif 8 | 9 | /// 10 | /// The Game object before anything else (through BootSequence) and it is a global. 11 | /// This is where all game systems are constructed and initialized and ticked from. 12 | /// 13 | 14 | interface IGameSystem 15 | { 16 | void Init(); 17 | void Shutdown(); 18 | void TickUpdate(); 19 | } 20 | 21 | public class Game 22 | { 23 | private static Game _instance; 24 | 25 | static public Console console { get { return _instance.m_Console; } } 26 | static public DebugOverlay debugOverlay { get { return _instance.m_DebugOverlay; } } 27 | 28 | DebugOverlay m_DebugOverlay; 29 | Console m_Console; 30 | Stats m_Stats; 31 | 32 | public void Init() 33 | { 34 | Debug.Assert(_instance == null); 35 | _instance = this; 36 | 37 | m_DebugOverlay = new DebugOverlay(); 38 | m_DebugOverlay.Init(120, 36); 39 | 40 | m_Console = new Console(); 41 | m_Console.Init(); 42 | 43 | m_Console.AddCommand("quit", CmdQuit, "Quit game"); 44 | 45 | m_Stats = new Stats(); 46 | m_Stats.Init(); 47 | 48 | Game.console.Write("^FFFGame initialized^F44.^4F4.^44F.\n"); 49 | } 50 | 51 | public void Shutdown() 52 | { 53 | Debug.Assert(_instance == this); 54 | 55 | m_DebugOverlay.Shutdown(); 56 | m_DebugOverlay = null; 57 | m_Console.Shutdown(); 58 | m_Console = null; 59 | m_Stats.Shutdown(); 60 | m_Stats = null; 61 | 62 | _instance = null; 63 | } 64 | 65 | void CmdQuit(string[] args) 66 | { 67 | Game.console.Write("Goodbye\n"); 68 | #if UNITY_EDITOR 69 | EditorApplication.isPlaying = false; 70 | #else 71 | Application.Quit(); 72 | #endif 73 | } 74 | 75 | public void Update() 76 | { 77 | m_Stats.TickUpdate(); 78 | m_Console.TickUpdate(); 79 | } 80 | 81 | 82 | public void LateUpdate() 83 | { 84 | m_Console.TickLateUpdate(); 85 | m_DebugOverlay.TickLateUpdate(); 86 | } 87 | 88 | public void FixedUpdate() 89 | { 90 | } 91 | 92 | public void EndOfFrame() 93 | { 94 | m_DebugOverlay.Render(); 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /Assets/Game/Game.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: af220b585c53508469477ca522089f9f 3 | timeCreated: 1498899884 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Stats.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class Stats : IGameSystem 6 | { 7 | 8 | float[][] fpsArray = new float[2][] { new float[100], new float[100] }; 9 | float[] frameTimeArray = new float[100]; 10 | 11 | System.Diagnostics.Stopwatch m_StopWatch; 12 | long m_StopWatchFreq; 13 | long m_LastFrameTicks; 14 | 15 | int m_ShowStats = 1; 16 | 17 | public void Init() 18 | { 19 | m_StopWatch = new System.Diagnostics.Stopwatch(); 20 | m_StopWatchFreq = System.Diagnostics.Stopwatch.Frequency; 21 | m_StopWatch.Start(); 22 | m_LastFrameTicks = m_StopWatch.ElapsedTicks; 23 | Debug.Assert(System.Diagnostics.Stopwatch.IsHighResolution); 24 | Game.console.AddCommand("showstats", CmdShowstats, "Show or hide stats"); 25 | } 26 | 27 | private void CmdShowstats(string[] args) 28 | { 29 | m_ShowStats = (m_ShowStats + 1) % 3; 30 | } 31 | 32 | void CalcStatistics(float[] data, out float mean, out float variance, out float minValue, out float maxValue) 33 | { 34 | float sum = 0, sum2 = 0; 35 | minValue = float.MaxValue; 36 | maxValue = float.MinValue; 37 | int count = data.Length; 38 | for (var i = 0; i < count; i++) 39 | { 40 | var x = data[i]; 41 | sum += x; 42 | if (x < minValue) minValue = x; 43 | if (x > maxValue) maxValue = x; 44 | 45 | } 46 | mean = sum / count; 47 | for (var i = 0; i < count; i++) 48 | { 49 | float d = data[i] - mean; 50 | sum2 += d * d; 51 | } 52 | variance = sum2 / (count - 1); 53 | } 54 | 55 | static Color[] colors = new Color[] { Color.red, Color.green }; 56 | float[] fpsHistory = new float[50]; 57 | public void TickUpdate() 58 | { 59 | if (m_ShowStats < 1) 60 | return; 61 | 62 | long ticks = m_StopWatch.ElapsedTicks; 63 | float frameDurationMs = (ticks - m_LastFrameTicks) * 1000 / (float)m_StopWatchFreq; 64 | m_LastFrameTicks = ticks; 65 | 66 | DebugOverlay.SetColor(Color.yellow); 67 | DebugOverlay.SetOrigin(0, 0); 68 | 69 | DebugOverlay.Write(1, 0, "FPS:{0,6:###.##}", 1.0f / Time.deltaTime); 70 | fpsHistory[Time.frameCount % fpsHistory.Length] = 1.0f / Time.deltaTime; 71 | DebugOverlay.DrawGraph(1, 1, 9, 1.5f, fpsHistory, Time.frameCount % fpsHistory.Length, Color.green); 72 | 73 | DebugOverlay.Write(30, 0, "Open console (F12) and type: \"showstats\" to toggle graphs"); 74 | 75 | if (m_ShowStats < 2) 76 | return; 77 | 78 | DebugOverlay.Write(0, 4, "Hello, {0,-5} world!", Time.frameCount % 100 < 50 ? "Happy" : "Evil"); 79 | DebugOverlay.Write(0, 5, "FrameNo: {0,7}", Time.frameCount); 80 | DebugOverlay.Write(0, 6, "MonoHeap:{0,7} kb", (int)(UnityEngine.Profiling.Profiler.GetMonoUsedSizeLong() / 1024)); 81 | 82 | /// Graphing difference between deltaTime and actual passed time 83 | float fps = Time.deltaTime * 1000.0f; 84 | var idx = Time.frameCount % fpsArray[0].Length; ; 85 | fpsArray[0][idx] = -Mathf.Min(0, frameDurationMs - fps); 86 | fpsArray[1][idx] = Mathf.Max(0, frameDurationMs - fps); 87 | float variance, mean, min, max; 88 | CalcStatistics(fpsArray[0], out mean, out variance, out min, out max); 89 | 90 | // Draw histogram over time differences 91 | DebugOverlay.DrawHist(20, 10, 20, 3, fpsArray, Time.frameCount, colors, max); 92 | DebugOverlay.SetColor(new Color(1.0f,0.3f,0.0f)); 93 | DebugOverlay.Write(20, 14, "{0,4:#.###} ({1,4:##.#} +/- {2,4:#.##})", frameDurationMs - fps, mean, Mathf.Sqrt(variance)); 94 | 95 | DebugOverlay.DrawGraph(45, 10, 40, 3, fpsArray, Time.frameCount, colors, max); 96 | 97 | /// Graphing frametime 98 | var idx2 = Time.frameCount % frameTimeArray.Length; 99 | frameTimeArray[idx2] = frameDurationMs; 100 | CalcStatistics(frameTimeArray, out mean, out variance, out min, out max); 101 | DebugOverlay.DrawHist(20, 15, 20, 3, frameTimeArray, Time.frameCount, Color.red, max); 102 | 103 | // Draw legend 104 | float scale = 18.0f - 3.0f / max * 16.6667f; 105 | DebugOverlay.DrawLine(20, scale, 40, scale, Color.black); 106 | DebugOverlay.Write(20, 18, "{0,5} ({1} +/- {2})", frameDurationMs, mean, Mathf.Sqrt(variance)); 107 | 108 | DebugOverlay.DrawGraph(45, 15, 40, 3, frameTimeArray, Time.frameCount, Color.red, max); 109 | 110 | // Draw some lines to help visualize framerate fluctuations 111 | float ratio = (float)DebugOverlay.Height / DebugOverlay.Width * Screen.width / Screen.height; 112 | float time = (float)Time.frameCount / 60.0f; 113 | for (var i = 0; i < 10; i++) 114 | DebugOverlay.DrawLine(60, 20, 60 + Mathf.Sin(Mathf.PI*0.2f*i + time) * 8.0f, 20 + Mathf.Cos(Mathf.PI*0.2f*i + time) * 8.0f * ratio, Color.black); 115 | } 116 | 117 | public void Shutdown() { } 118 | } 119 | -------------------------------------------------------------------------------- /Assets/Game/Stats.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c6ce7c85b72e2ce4d842f7a8d9efa42a 3 | timeCreated: 1500896819 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/UniversalRenderPipelineAsset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} 13 | m_Name: UniversalRenderPipelineAsset 14 | m_EditorClassIdentifier: 15 | k_AssetVersion: 12 16 | k_AssetPreviousVersion: 12 17 | m_RendererType: 1 18 | m_RendererData: {fileID: 0} 19 | m_RendererDataList: 20 | - {fileID: 11400000, guid: 0c8631da840553846b2ee3769f46f74d, type: 2} 21 | m_DefaultRendererIndex: 0 22 | m_RequireDepthTexture: 0 23 | m_RequireOpaqueTexture: 0 24 | m_OpaqueDownsampling: 1 25 | m_SupportsTerrainHoles: 1 26 | m_SupportsHDR: 0 27 | m_HDRColorBufferPrecision: 0 28 | m_MSAA: 1 29 | m_RenderScale: 1 30 | m_UpscalingFilter: 0 31 | m_FsrOverrideSharpness: 0 32 | m_FsrSharpness: 0.92 33 | m_EnableLODCrossFade: 1 34 | m_LODCrossFadeDitheringType: 1 35 | m_ShEvalMode: 0 36 | m_LightProbeSystem: 0 37 | m_ProbeVolumeMemoryBudget: 1024 38 | m_ProbeVolumeBlendingMemoryBudget: 256 39 | m_SupportProbeVolumeGPUStreaming: 0 40 | m_SupportProbeVolumeDiskStreaming: 0 41 | m_SupportProbeVolumeScenarios: 0 42 | m_SupportProbeVolumeScenarioBlending: 0 43 | m_ProbeVolumeSHBands: 1 44 | m_MainLightRenderingMode: 1 45 | m_MainLightShadowsSupported: 1 46 | m_MainLightShadowmapResolution: 2048 47 | m_AdditionalLightsRenderingMode: 1 48 | m_AdditionalLightsPerObjectLimit: 4 49 | m_AdditionalLightShadowsSupported: 0 50 | m_AdditionalLightsShadowmapResolution: 512 51 | m_AdditionalLightsShadowResolutionTierLow: 128 52 | m_AdditionalLightsShadowResolutionTierMedium: 256 53 | m_AdditionalLightsShadowResolutionTierHigh: 512 54 | m_ReflectionProbeBlending: 0 55 | m_ReflectionProbeBoxProjection: 0 56 | m_ReflectionProbeAtlas: 1 57 | m_ShadowDistance: 50 58 | m_ShadowCascadeCount: 4 59 | m_Cascade2Split: 0.25 60 | m_Cascade3Split: {x: 0.1, y: 0.3} 61 | m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} 62 | m_CascadeBorder: 0.1 63 | m_ShadowDepthBias: 0.98 64 | m_ShadowNormalBias: 1 65 | m_AnyShadowsSupported: 1 66 | m_SoftShadowsSupported: 1 67 | m_ConservativeEnclosingSphere: 0 68 | m_NumIterationsEnclosingSphere: 64 69 | m_SoftShadowQuality: 2 70 | m_AdditionalLightsCookieResolution: 2048 71 | m_AdditionalLightsCookieFormat: 3 72 | m_UseSRPBatcher: 1 73 | m_SupportsDynamicBatching: 0 74 | m_MixedLightingSupported: 1 75 | m_SupportsLightCookies: 1 76 | m_SupportsLightLayers: 0 77 | m_DebugLevel: 0 78 | m_StoreActionsOptimization: 0 79 | m_UseAdaptivePerformance: 1 80 | m_ColorGradingMode: 0 81 | m_ColorGradingLutSize: 32 82 | m_AllowPostProcessAlphaOutput: 0 83 | m_UseFastSRGBLinearConversion: 0 84 | m_SupportDataDrivenLensFlare: 1 85 | m_SupportScreenSpaceLensFlare: 1 86 | m_GPUResidentDrawerMode: 0 87 | m_SmallMeshScreenPercentage: 0 88 | m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 89 | m_ShadowType: 1 90 | m_LocalShadowsSupported: 0 91 | m_LocalShadowsAtlasResolution: 256 92 | m_MaxPixelLights: 0 93 | m_ShadowAtlasResolution: 256 94 | m_VolumeFrameworkUpdateMode: 0 95 | m_VolumeProfile: {fileID: 0} 96 | apvScenesData: 97 | obsoleteSceneBounds: 98 | m_Keys: [] 99 | m_Values: [] 100 | obsoleteHasProbeVolumes: 101 | m_Keys: [] 102 | m_Values: 103 | m_PrefilteringModeMainLightShadows: 1 104 | m_PrefilteringModeAdditionalLight: 4 105 | m_PrefilteringModeAdditionalLightShadows: 1 106 | m_PrefilterXRKeywords: 0 107 | m_PrefilteringModeForwardPlus: 1 108 | m_PrefilteringModeDeferredRendering: 1 109 | m_PrefilteringModeScreenSpaceOcclusion: 1 110 | m_PrefilterDebugKeywords: 0 111 | m_PrefilterWriteRenderingLayers: 0 112 | m_PrefilterHDROutput: 0 113 | m_PrefilterAlphaOutput: 0 114 | m_PrefilterSSAODepthNormals: 0 115 | m_PrefilterSSAOSourceDepthLow: 0 116 | m_PrefilterSSAOSourceDepthMedium: 0 117 | m_PrefilterSSAOSourceDepthHigh: 0 118 | m_PrefilterSSAOInterleaved: 0 119 | m_PrefilterSSAOBlueNoise: 0 120 | m_PrefilterSSAOSampleCountLow: 0 121 | m_PrefilterSSAOSampleCountMedium: 0 122 | m_PrefilterSSAOSampleCountHigh: 0 123 | m_PrefilterDBufferMRT1: 0 124 | m_PrefilterDBufferMRT2: 0 125 | m_PrefilterDBufferMRT3: 0 126 | m_PrefilterSoftShadowsQualityLow: 0 127 | m_PrefilterSoftShadowsQualityMedium: 0 128 | m_PrefilterSoftShadowsQualityHigh: 0 129 | m_PrefilterSoftShadows: 0 130 | m_PrefilterScreenCoord: 0 131 | m_PrefilterNativeRenderPass: 0 132 | m_PrefilterUseLegacyLightmaps: 0 133 | m_PrefilterBicubicLightmapSampling: 0 134 | m_ShaderVariantLogLevel: 0 135 | m_ShadowCascades: 2 136 | m_Textures: 137 | blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} 138 | bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} 139 | -------------------------------------------------------------------------------- /Assets/UniversalRenderPipelineAsset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a724045fe20d774bb55c1d037d545e1 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UniversalRenderPipelineAsset_Renderer.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} 13 | m_Name: UniversalRenderPipelineAsset_Renderer 14 | m_EditorClassIdentifier: 15 | debugShaders: 16 | debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, 17 | type: 3} 18 | hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} 19 | probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, 20 | type: 3} 21 | probeVolumeResources: 22 | probeVolumeDebugShader: {fileID: 0} 23 | probeVolumeFragmentationDebugShader: {fileID: 0} 24 | probeVolumeOffsetDebugShader: {fileID: 0} 25 | probeVolumeSamplingDebugShader: {fileID: 0} 26 | probeSamplingDebugMesh: {fileID: 0} 27 | probeSamplingDebugTexture: {fileID: 0} 28 | probeVolumeBlendStatesCS: {fileID: 0} 29 | m_RendererFeatures: [] 30 | m_RendererFeatureMap: 31 | m_UseNativeRenderPass: 0 32 | xrSystemData: {fileID: 0} 33 | postProcessData: {fileID: 0} 34 | m_AssetVersion: 2 35 | m_OpaqueLayerMask: 36 | serializedVersion: 2 37 | m_Bits: 4294967295 38 | m_TransparentLayerMask: 39 | serializedVersion: 2 40 | m_Bits: 4294967295 41 | m_DefaultStencilState: 42 | overrideStencilState: 0 43 | stencilReference: 0 44 | stencilCompareFunction: 8 45 | passOperation: 0 46 | failOperation: 0 47 | zFailOperation: 0 48 | m_ShadowTransparentReceive: 1 49 | m_RenderingMode: 0 50 | m_DepthPrimingMode: 0 51 | m_CopyDepthMode: 0 52 | m_DepthAttachmentFormat: 0 53 | m_DepthTextureFormat: 0 54 | m_AccurateGbufferNormals: 0 55 | m_IntermediateTextureMode: 1 56 | -------------------------------------------------------------------------------- /Assets/UniversalRenderPipelineAsset_Renderer.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c8631da840553846b2ee3769f46f74d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UniversalRenderPipelineGlobalSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3} 13 | m_Name: UniversalRenderPipelineGlobalSettings 14 | m_EditorClassIdentifier: 15 | m_ShaderStrippingSetting: 16 | m_Version: 0 17 | m_ExportShaderVariants: 1 18 | m_ShaderVariantLogLevel: 0 19 | m_StripRuntimeDebugShaders: 1 20 | m_URPShaderStrippingSetting: 21 | m_Version: 0 22 | m_StripUnusedPostProcessingVariants: 0 23 | m_StripUnusedVariants: 1 24 | m_StripScreenCoordOverrideVariants: 1 25 | m_ShaderVariantLogLevel: 0 26 | m_ExportShaderVariants: 1 27 | m_StripDebugVariants: 1 28 | m_StripUnusedPostProcessingVariants: 0 29 | m_StripUnusedVariants: 1 30 | m_StripScreenCoordOverrideVariants: 1 31 | supportRuntimeDebugDisplay: 0 32 | m_EnableRenderGraph: 0 33 | m_Settings: 34 | m_SettingsList: 35 | m_List: 36 | - rid: 1102999881471754483 37 | - rid: 1102999881471754484 38 | - rid: 1102999881471754485 39 | - rid: 1102999881471754486 40 | - rid: 1102999881471754487 41 | - rid: 1102999881471754488 42 | - rid: 1102999881471754489 43 | - rid: 1102999881471754490 44 | - rid: 1102999881471754491 45 | - rid: 1102999881471754492 46 | - rid: 1102999881471754493 47 | - rid: 1102999881471754494 48 | - rid: 1102999881471754495 49 | - rid: 1102999881471754496 50 | - rid: 1102999881471754497 51 | - rid: 1102999881471754498 52 | - rid: 1102999881471754499 53 | - rid: 1102999881471754500 54 | - rid: 1102999881471754501 55 | - rid: 1102999881471754502 56 | - rid: 1102999881471754503 57 | - rid: 1102999881471754504 58 | - rid: 1102999881471754505 59 | - rid: 1102999881471754506 60 | m_RuntimeSettings: 61 | m_List: [] 62 | m_AssetVersion: 8 63 | m_ObsoleteDefaultVolumeProfile: {fileID: 0} 64 | m_RenderingLayerNames: 65 | - Default 66 | m_ValidRenderingLayers: 0 67 | lightLayerName0: 68 | lightLayerName1: 69 | lightLayerName2: 70 | lightLayerName3: 71 | lightLayerName4: 72 | lightLayerName5: 73 | lightLayerName6: 74 | lightLayerName7: 75 | apvScenesData: 76 | obsoleteSceneBounds: 77 | m_Keys: [] 78 | m_Values: [] 79 | obsoleteHasProbeVolumes: 80 | m_Keys: [] 81 | m_Values: 82 | references: 83 | version: 2 84 | RefIds: 85 | - rid: 1102999881471754483 86 | type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, 87 | asm: Unity.RenderPipelines.Universal.Runtime} 88 | data: 89 | m_DefaultSettingsVolumeProfile: {fileID: 11400000, guid: eda47df5b85f4f249abf7abd73db2cb2, 90 | type: 2} 91 | - rid: 1102999881471754484 92 | type: {class: UniversalRenderPipelineEditorMaterials, ns: UnityEngine.Rendering.Universal, 93 | asm: Unity.RenderPipelines.Universal.Runtime} 94 | data: 95 | m_DefaultMaterial: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 96 | type: 2} 97 | m_DefaultParticleMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, 98 | type: 2} 99 | m_DefaultLineMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, 100 | type: 2} 101 | m_DefaultTerrainMaterial: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, 102 | type: 2} 103 | m_DefaultDecalMaterial: {fileID: 2100000, guid: 31d0dcc6f2dd4e4408d18036a2c93862, 104 | type: 2} 105 | m_DefaultSpriteMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 106 | type: 2} 107 | - rid: 1102999881471754485 108 | type: {class: UniversalRenderPipelineRuntimeTextures, ns: UnityEngine.Rendering.Universal, 109 | asm: Unity.RenderPipelines.Universal.Runtime} 110 | data: 111 | m_Version: 1 112 | m_BlueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, 113 | type: 3} 114 | m_BayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, 115 | type: 3} 116 | m_DebugFontTex: {fileID: 2800000, guid: 26a413214480ef144b2915d6ff4d0beb, 117 | type: 3} 118 | - rid: 1102999881471754486 119 | type: {class: UniversalRenderPipelineDebugShaders, ns: UnityEngine.Rendering.Universal, 120 | asm: Unity.RenderPipelines.Universal.Runtime} 121 | data: 122 | m_DebugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, 123 | type: 3} 124 | m_HdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, 125 | type: 3} 126 | m_ProbeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, 127 | type: 3} 128 | - rid: 1102999881471754487 129 | type: {class: UniversalRenderPipelineRuntimeShaders, ns: UnityEngine.Rendering.Universal, 130 | asm: Unity.RenderPipelines.Universal.Runtime} 131 | data: 132 | m_Version: 0 133 | m_FallbackErrorShader: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, 134 | type: 3} 135 | m_BlitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, 136 | type: 3} 137 | m_CoreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} 138 | m_CoreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, 139 | type: 3} 140 | m_SamplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} 141 | - rid: 1102999881471754488 142 | type: {class: UniversalRenderPipelineRuntimeXRResources, ns: UnityEngine.Rendering.Universal, 143 | asm: Unity.RenderPipelines.Universal.Runtime} 144 | data: 145 | m_xrOcclusionMeshPS: {fileID: 4800000, guid: 4431b1f1f743fbf4eb310a967890cbea, 146 | type: 3} 147 | m_xrMirrorViewPS: {fileID: 4800000, guid: d5a307c014552314b9f560906d708772, 148 | type: 3} 149 | m_xrMotionVector: {fileID: 4800000, guid: f89aac1e4f84468418fe30e611dff395, 150 | type: 3} 151 | - rid: 1102999881471754489 152 | type: {class: URPDefaultVolumeProfileSettings, ns: UnityEngine.Rendering.Universal, 153 | asm: Unity.RenderPipelines.Universal.Runtime} 154 | data: 155 | m_Version: 0 156 | m_VolumeProfile: {fileID: 11400000, guid: 2370fcb421d01df4c973e9e7ff571751, 157 | type: 2} 158 | - rid: 1102999881471754490 159 | type: {class: UniversalRenderPipelineEditorShaders, ns: UnityEngine.Rendering.Universal, 160 | asm: Unity.RenderPipelines.Universal.Runtime} 161 | data: 162 | m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, 163 | type: 3} 164 | m_AutodeskInteractiveTransparent: {fileID: 4800000, guid: 5c81372d981403744adbdda4433c9c11, 165 | type: 3} 166 | m_AutodeskInteractiveMasked: {fileID: 4800000, guid: 80aa867ac363ac043847b06ad71604cd, 167 | type: 3} 168 | m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, 169 | type: 3} 170 | m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, 171 | type: 3} 172 | m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, 173 | type: 3} 174 | m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, 175 | type: 3} 176 | m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, 177 | type: 3} 178 | m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, 179 | type: 3} 180 | - rid: 1102999881471754491 181 | type: {class: RenderGraphSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 182 | data: 183 | m_Version: 0 184 | m_EnableRenderCompatibilityMode: 0 185 | - rid: 1102999881471754492 186 | type: {class: UniversalRendererResources, ns: UnityEngine.Rendering.Universal, 187 | asm: Unity.RenderPipelines.Universal.Runtime} 188 | data: 189 | m_Version: 0 190 | m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} 191 | m_CameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, 192 | type: 3} 193 | m_StencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, 194 | type: 3} 195 | m_ClusterDeferred: {fileID: 4800000, guid: 222cce62363a44a380c36bf03b392608, 196 | type: 3} 197 | m_StencilDitherMaskSeedPS: {fileID: 4800000, guid: 8c3ee818f2efa514c889881ccb2e95a2, 198 | type: 3} 199 | m_DBufferClear: {fileID: 4800000, guid: f056d8bd2a1c7e44e9729144b4c70395, 200 | type: 3} 201 | - rid: 1102999881471754493 202 | type: {class: URPShaderStrippingSetting, ns: UnityEngine.Rendering.Universal, 203 | asm: Unity.RenderPipelines.Universal.Runtime} 204 | data: 205 | m_Version: 0 206 | m_StripUnusedPostProcessingVariants: 0 207 | m_StripUnusedVariants: 1 208 | m_StripScreenCoordOverrideVariants: 1 209 | - rid: 1102999881471754494 210 | type: {class: Renderer2DResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} 211 | data: 212 | m_Version: 0 213 | m_LightShader: {fileID: 4800000, guid: 3f6c848ca3d7bca4bbe846546ac701a1, type: 3} 214 | m_ProjectedShadowShader: {fileID: 4800000, guid: ce09d4a80b88c5a4eb9768fab4f1ee00, 215 | type: 3} 216 | m_SpriteShadowShader: {fileID: 4800000, guid: 44fc62292b65ab04eabcf310e799ccf6, 217 | type: 3} 218 | m_SpriteUnshadowShader: {fileID: 4800000, guid: de02b375720b5c445afe83cd483bedf3, 219 | type: 3} 220 | m_GeometryShadowShader: {fileID: 4800000, guid: 19349a0f9a7ed4c48a27445bcf92e5e1, 221 | type: 3} 222 | m_GeometryUnshadowShader: {fileID: 4800000, guid: 77774d9009bb81447b048c907d4c6273, 223 | type: 3} 224 | m_FallOffLookup: {fileID: 2800000, guid: 5688ab254e4c0634f8d6c8e0792331ca, 225 | type: 3} 226 | m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} 227 | m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 228 | type: 2} 229 | m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 230 | type: 2} 231 | m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, 232 | type: 2} 233 | - rid: 1102999881471754495 234 | type: {class: GPUResidentDrawerResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.GPUDriven.Runtime} 235 | data: 236 | m_Version: 0 237 | m_InstanceDataBufferCopyKernels: {fileID: 7200000, guid: f984aeb540ded8b4fbb8a2047ab5b2e2, 238 | type: 3} 239 | m_InstanceDataBufferUploadKernels: {fileID: 7200000, guid: 53864816eb00f2343b60e1a2c5a262ef, 240 | type: 3} 241 | m_TransformUpdaterKernels: {fileID: 7200000, guid: 2a567b9b2733f8d47a700c3c85bed75b, 242 | type: 3} 243 | m_WindDataUpdaterKernels: {fileID: 7200000, guid: fde76746e4fd0ed418c224f6b4084114, 244 | type: 3} 245 | m_OccluderDepthPyramidKernels: {fileID: 7200000, guid: 08b2b5fb307b0d249860612774a987da, 246 | type: 3} 247 | m_InstanceOcclusionCullingKernels: {fileID: 7200000, guid: f6d223acabc2f974795a5a7864b50e6c, 248 | type: 3} 249 | m_OcclusionCullingDebugKernels: {fileID: 7200000, guid: b23e766bcf50ca4438ef186b174557df, 250 | type: 3} 251 | m_DebugOcclusionTestPS: {fileID: 4800000, guid: d3f0849180c2d0944bc71060693df100, 252 | type: 3} 253 | m_DebugOccluderPS: {fileID: 4800000, guid: b3c92426a88625841ab15ca6a7917248, 254 | type: 3} 255 | - rid: 1102999881471754496 256 | type: {class: RenderGraphGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 257 | data: 258 | m_version: 0 259 | m_EnableCompilationCaching: 1 260 | m_EnableValidityChecks: 1 261 | - rid: 1102999881471754497 262 | type: {class: STP/RuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 263 | data: 264 | m_setupCS: {fileID: 7200000, guid: 33be2e9a5506b2843bdb2bdff9cad5e1, type: 3} 265 | m_preTaaCS: {fileID: 7200000, guid: a679dba8ec4d9ce45884a270b0e22dda, type: 3} 266 | m_taaCS: {fileID: 7200000, guid: 3923900e2b41b5e47bc25bfdcbcdc9e6, type: 3} 267 | - rid: 1102999881471754498 268 | type: {class: ProbeVolumeRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 269 | data: 270 | m_Version: 1 271 | probeVolumeBlendStatesCS: {fileID: 7200000, guid: a3f7b8c99de28a94684cb1daebeccf5d, 272 | type: 3} 273 | probeVolumeUploadDataCS: {fileID: 7200000, guid: 0951de5992461754fa73650732c4954c, 274 | type: 3} 275 | probeVolumeUploadDataL2CS: {fileID: 7200000, guid: 6196f34ed825db14b81fb3eb0ea8d931, 276 | type: 3} 277 | - rid: 1102999881471754499 278 | type: {class: IncludeAdditionalRPAssets, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 279 | data: 280 | m_version: 0 281 | m_IncludeReferencedInScenes: 0 282 | m_IncludeAssetsByLabel: 0 283 | m_LabelToInclude: 284 | - rid: 1102999881471754500 285 | type: {class: ProbeVolumeBakingResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 286 | data: 287 | m_Version: 1 288 | dilationShader: {fileID: 7200000, guid: 6bb382f7de370af41b775f54182e491d, 289 | type: 3} 290 | subdivideSceneCS: {fileID: 7200000, guid: bb86f1f0af829fd45b2ebddda1245c22, 291 | type: 3} 292 | voxelizeSceneShader: {fileID: 4800000, guid: c8b6a681c7b4e2e4785ffab093907f9e, 293 | type: 3} 294 | traceVirtualOffsetCS: {fileID: -6772857160820960102, guid: ff2cbab5da58bf04d82c5f34037ed123, 295 | type: 3} 296 | traceVirtualOffsetRT: {fileID: -5126288278712620388, guid: ff2cbab5da58bf04d82c5f34037ed123, 297 | type: 3} 298 | skyOcclusionCS: {fileID: -6772857160820960102, guid: 5a2a534753fbdb44e96c3c78b5a6999d, 299 | type: 3} 300 | skyOcclusionRT: {fileID: -5126288278712620388, guid: 5a2a534753fbdb44e96c3c78b5a6999d, 301 | type: 3} 302 | renderingLayerCS: {fileID: -6772857160820960102, guid: 94a070d33e408384bafc1dea4a565df9, 303 | type: 3} 304 | renderingLayerRT: {fileID: -5126288278712620388, guid: 94a070d33e408384bafc1dea4a565df9, 305 | type: 3} 306 | - rid: 1102999881471754501 307 | type: {class: ProbeVolumeDebugResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 308 | data: 309 | m_Version: 1 310 | probeVolumeDebugShader: {fileID: 4800000, guid: 3b21275fd12d65f49babb5286f040f2d, 311 | type: 3} 312 | probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 3a80877c579b9144ebdcc6d923bca303, 313 | type: 3} 314 | probeVolumeSamplingDebugShader: {fileID: 4800000, guid: bf54e6528c79a224e96346799064c393, 315 | type: 3} 316 | probeVolumeOffsetDebugShader: {fileID: 4800000, guid: db8bd7436dc2c5f4c92655307d198381, 317 | type: 3} 318 | probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 20be25aac4e22ee49a7db76fb3df6de2, 319 | type: 3} 320 | numbersDisplayTex: {fileID: 2800000, guid: 73fe53b428c5b3440b7e87ee830b608a, 321 | type: 3} 322 | - rid: 1102999881471754502 323 | type: {class: RenderGraphUtilsResources, ns: UnityEngine.Rendering.RenderGraphModule.Util, 324 | asm: Unity.RenderPipelines.Core.Runtime} 325 | data: 326 | m_Version: 0 327 | m_CoreCopyPS: {fileID: 4800000, guid: 12dc59547ea167a4ab435097dd0f9add, type: 3} 328 | - rid: 1102999881471754503 329 | type: {class: VrsRenderPipelineRuntimeResources, ns: UnityEngine.Rendering, 330 | asm: Unity.RenderPipelines.Core.Runtime} 331 | data: 332 | m_TextureComputeShader: {fileID: 7200000, guid: cacb30de6c40c7444bbc78cb0a81fd2a, 333 | type: 3} 334 | m_VisualizationShader: {fileID: 4800000, guid: 620b55b8040a88d468e94abe55bed5ba, 335 | type: 3} 336 | m_VisualizationLookupTable: 337 | m_Data: 338 | - {r: 1, g: 0, b: 0, a: 1} 339 | - {r: 1, g: 0.92156863, b: 0.015686275, a: 1} 340 | - {r: 1, g: 1, b: 1, a: 1} 341 | - {r: 0, g: 1, b: 0, a: 1} 342 | - {r: 0.75, g: 0.75, b: 0, a: 1} 343 | - {r: 0, g: 0.75, b: 0.55, a: 1} 344 | - {r: 0.5, g: 0, b: 0.5, a: 1} 345 | - {r: 0.5, g: 0.5, b: 0.5, a: 1} 346 | - {r: 0, g: 0, b: 1, a: 1} 347 | m_ConversionLookupTable: 348 | m_Data: 349 | - {r: 1, g: 0, b: 0, a: 1} 350 | - {r: 1, g: 0.92156863, b: 0.015686275, a: 1} 351 | - {r: 1, g: 1, b: 1, a: 1} 352 | - {r: 0, g: 1, b: 0, a: 1} 353 | - {r: 0.75, g: 0.75, b: 0, a: 1} 354 | - {r: 0, g: 0.75, b: 0.55, a: 1} 355 | - {r: 0.5, g: 0, b: 0.5, a: 1} 356 | - {r: 0.5, g: 0.5, b: 0.5, a: 1} 357 | - {r: 0, g: 0, b: 1, a: 1} 358 | - rid: 1102999881471754504 359 | type: {class: ProbeVolumeGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 360 | data: 361 | m_Version: 1 362 | m_ProbeVolumeDisableStreamingAssets: 0 363 | - rid: 1102999881471754505 364 | type: {class: LightmapSamplingSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 365 | data: 366 | m_Version: 1 367 | m_UseBicubicLightmapSampling: 0 368 | - rid: 1102999881471754506 369 | type: {class: ShaderStrippingSetting, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} 370 | data: 371 | m_Version: 0 372 | m_ExportShaderVariants: 1 373 | m_ShaderVariantLogLevel: 0 374 | m_StripRuntimeDebugShaders: 1 375 | -------------------------------------------------------------------------------- /Assets/UniversalRenderPipelineGlobalSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf37095ff6774cd4fb95780e9f33ac79 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | CC0 1.0 Universal 2 | 3 | Statement of Purpose 4 | 5 | The laws of most jurisdictions throughout the world automatically confer 6 | exclusive Copyright and Related Rights (defined below) upon the creator and 7 | subsequent owner(s) (each and all, an "owner") of an original work of 8 | authorship and/or a database (each, a "Work"). 9 | 10 | Certain owners wish to permanently relinquish those rights to a Work for the 11 | purpose of contributing to a commons of creative, cultural and scientific 12 | works ("Commons") that the public can reliably and without fear of later 13 | claims of infringement build upon, modify, incorporate in other works, reuse 14 | and redistribute as freely as possible in any form whatsoever and for any 15 | purposes, including without limitation commercial purposes. These owners may 16 | contribute to the Commons to promote the ideal of a free culture and the 17 | further production of creative, cultural and scientific works, or to gain 18 | reputation or greater distribution for their Work in part through the use and 19 | efforts of others. 20 | 21 | For these and/or other purposes and motivations, and without any expectation 22 | of additional consideration or compensation, the person associating CC0 with a 23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright 24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work 25 | and publicly distribute the Work under its terms, with knowledge of his or her 26 | Copyright and Related Rights in the Work and the meaning and intended legal 27 | effect of CC0 on those rights. 28 | 29 | 1. Copyright and Related Rights. A Work made available under CC0 may be 30 | protected by copyright and related or neighboring rights ("Copyright and 31 | Related Rights"). Copyright and Related Rights include, but are not limited 32 | to, the following: 33 | 34 | i. the right to reproduce, adapt, distribute, perform, display, communicate, 35 | and translate a Work; 36 | 37 | ii. moral rights retained by the original author(s) and/or performer(s); 38 | 39 | iii. publicity and privacy rights pertaining to a person's image or likeness 40 | depicted in a Work; 41 | 42 | iv. rights protecting against unfair competition in regards to a Work, 43 | subject to the limitations in paragraph 4(a), below; 44 | 45 | v. rights protecting the extraction, dissemination, use and reuse of data in 46 | a Work; 47 | 48 | vi. database rights (such as those arising under Directive 96/9/EC of the 49 | European Parliament and of the Council of 11 March 1996 on the legal 50 | protection of databases, and under any national implementation thereof, 51 | including any amended or successor version of such directive); and 52 | 53 | vii. other similar, equivalent or corresponding rights throughout the world 54 | based on applicable law or treaty, and any national implementations thereof. 55 | 56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of, 57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and 58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright 59 | and Related Rights and associated claims and causes of action, whether now 60 | known or unknown (including existing as well as future claims and causes of 61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum 62 | duration provided by applicable law or treaty (including future time 63 | extensions), (iii) in any current or future medium and for any number of 64 | copies, and (iv) for any purpose whatsoever, including without limitation 65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes 66 | the Waiver for the benefit of each member of the public at large and to the 67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver 68 | shall not be subject to revocation, rescission, cancellation, termination, or 69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work 70 | by the public as contemplated by Affirmer's express Statement of Purpose. 71 | 72 | 3. Public License Fallback. Should any part of the Waiver for any reason be 73 | judged legally invalid or ineffective under applicable law, then the Waiver 74 | shall be preserved to the maximum extent permitted taking into account 75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver 76 | is so judged Affirmer hereby grants to each affected person a royalty-free, 77 | non transferable, non sublicensable, non exclusive, irrevocable and 78 | unconditional license to exercise Affirmer's Copyright and Related Rights in 79 | the Work (i) in all territories worldwide, (ii) for the maximum duration 80 | provided by applicable law or treaty (including future time extensions), (iii) 81 | in any current or future medium and for any number of copies, and (iv) for any 82 | purpose whatsoever, including without limitation commercial, advertising or 83 | promotional purposes (the "License"). The License shall be deemed effective as 84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the 85 | License for any reason be judged legally invalid or ineffective under 86 | applicable law, such partial invalidity or ineffectiveness shall not 87 | invalidate the remainder of the License, and in such case Affirmer hereby 88 | affirms that he or she will not (i) exercise any of his or her remaining 89 | Copyright and Related Rights in the Work or (ii) assert any associated claims 90 | and causes of action with respect to the Work, in either case contrary to 91 | Affirmer's express Statement of Purpose. 92 | 93 | 4. Limitations and Disclaimers. 94 | 95 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 96 | surrendered, licensed or otherwise affected by this document. 97 | 98 | b. Affirmer offers the Work as-is and makes no representations or warranties 99 | of any kind concerning the Work, express, implied, statutory or otherwise, 100 | including without limitation warranties of title, merchantability, fitness 101 | for a particular purpose, non infringement, or the absence of latent or 102 | other defects, accuracy, or the present or absence of errors, whether or not 103 | discoverable, all to the greatest extent permissible under applicable law. 104 | 105 | c. Affirmer disclaims responsibility for clearing rights of other persons 106 | that may apply to the Work or any use thereof, including without limitation 107 | any person's Copyright and Related Rights in the Work. Further, Affirmer 108 | disclaims responsibility for obtaining any necessary consents, permissions 109 | or other rights required for any use of the Work. 110 | 111 | d. Affirmer understands and acknowledges that Creative Commons is not a 112 | party to this document and has no duty or obligation with respect to this 113 | CC0 or use of the Work. 114 | 115 | For more information, please see 116 | 117 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ide.visualstudio": "2.0.22", 4 | "com.unity.inputsystem": "1.13.1", 5 | "com.unity.render-pipelines.core": "17.0.3", 6 | "com.unity.render-pipelines.universal": "17.0.3", 7 | "com.unity.modules.accessibility": "1.0.0", 8 | "com.unity.modules.ai": "1.0.0", 9 | "com.unity.modules.androidjni": "1.0.0", 10 | "com.unity.modules.animation": "1.0.0", 11 | "com.unity.modules.assetbundle": "1.0.0", 12 | "com.unity.modules.audio": "1.0.0", 13 | "com.unity.modules.cloth": "1.0.0", 14 | "com.unity.modules.director": "1.0.0", 15 | "com.unity.modules.imageconversion": "1.0.0", 16 | "com.unity.modules.imgui": "1.0.0", 17 | "com.unity.modules.jsonserialize": "1.0.0", 18 | "com.unity.modules.particlesystem": "1.0.0", 19 | "com.unity.modules.physics": "1.0.0", 20 | "com.unity.modules.physics2d": "1.0.0", 21 | "com.unity.modules.screencapture": "1.0.0", 22 | "com.unity.modules.terrain": "1.0.0", 23 | "com.unity.modules.terrainphysics": "1.0.0", 24 | "com.unity.modules.tilemap": "1.0.0", 25 | "com.unity.modules.ui": "1.0.0", 26 | "com.unity.modules.uielements": "1.0.0", 27 | "com.unity.modules.umbra": "1.0.0", 28 | "com.unity.modules.unityanalytics": "1.0.0", 29 | "com.unity.modules.unitywebrequest": "1.0.0", 30 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 31 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 32 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 33 | "com.unity.modules.unitywebrequestwww": "1.0.0", 34 | "com.unity.modules.vehicles": "1.0.0", 35 | "com.unity.modules.video": "1.0.0", 36 | "com.unity.modules.vr": "1.0.0", 37 | "com.unity.modules.wind": "1.0.0", 38 | "com.unity.modules.xr": "1.0.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.burst": { 4 | "version": "1.8.19", 5 | "depth": 1, 6 | "source": "registry", 7 | "dependencies": { 8 | "com.unity.mathematics": "1.2.1", 9 | "com.unity.modules.jsonserialize": "1.0.0" 10 | }, 11 | "url": "https://packages.unity.com" 12 | }, 13 | "com.unity.collections": { 14 | "version": "2.5.1", 15 | "depth": 1, 16 | "source": "registry", 17 | "dependencies": { 18 | "com.unity.burst": "1.8.17", 19 | "com.unity.test-framework": "1.4.5", 20 | "com.unity.nuget.mono-cecil": "1.11.4", 21 | "com.unity.test-framework.performance": "3.0.3" 22 | }, 23 | "url": "https://packages.unity.com" 24 | }, 25 | "com.unity.ext.nunit": { 26 | "version": "2.0.5", 27 | "depth": 2, 28 | "source": "registry", 29 | "dependencies": {}, 30 | "url": "https://packages.unity.com" 31 | }, 32 | "com.unity.ide.visualstudio": { 33 | "version": "2.0.22", 34 | "depth": 0, 35 | "source": "registry", 36 | "dependencies": { 37 | "com.unity.test-framework": "1.1.9" 38 | }, 39 | "url": "https://packages.unity.com" 40 | }, 41 | "com.unity.inputsystem": { 42 | "version": "1.13.1", 43 | "depth": 0, 44 | "source": "registry", 45 | "dependencies": { 46 | "com.unity.modules.uielements": "1.0.0" 47 | }, 48 | "url": "https://packages.unity.com" 49 | }, 50 | "com.unity.mathematics": { 51 | "version": "1.3.2", 52 | "depth": 1, 53 | "source": "registry", 54 | "dependencies": {}, 55 | "url": "https://packages.unity.com" 56 | }, 57 | "com.unity.nuget.mono-cecil": { 58 | "version": "1.11.4", 59 | "depth": 2, 60 | "source": "registry", 61 | "dependencies": {}, 62 | "url": "https://packages.unity.com" 63 | }, 64 | "com.unity.render-pipelines.core": { 65 | "version": "17.0.3", 66 | "depth": 0, 67 | "source": "builtin", 68 | "dependencies": { 69 | "com.unity.burst": "1.8.14", 70 | "com.unity.mathematics": "1.3.2", 71 | "com.unity.ugui": "2.0.0", 72 | "com.unity.collections": "2.4.3", 73 | "com.unity.modules.physics": "1.0.0", 74 | "com.unity.modules.terrain": "1.0.0", 75 | "com.unity.modules.jsonserialize": "1.0.0", 76 | "com.unity.rendering.light-transport": "1.0.1" 77 | } 78 | }, 79 | "com.unity.render-pipelines.universal": { 80 | "version": "17.0.3", 81 | "depth": 0, 82 | "source": "builtin", 83 | "dependencies": { 84 | "com.unity.render-pipelines.core": "17.0.3", 85 | "com.unity.shadergraph": "17.0.3", 86 | "com.unity.render-pipelines.universal-config": "17.0.3" 87 | } 88 | }, 89 | "com.unity.render-pipelines.universal-config": { 90 | "version": "17.0.3", 91 | "depth": 1, 92 | "source": "builtin", 93 | "dependencies": { 94 | "com.unity.render-pipelines.core": "17.0.3" 95 | } 96 | }, 97 | "com.unity.rendering.light-transport": { 98 | "version": "1.0.1", 99 | "depth": 1, 100 | "source": "builtin", 101 | "dependencies": { 102 | "com.unity.collections": "2.2.0", 103 | "com.unity.mathematics": "1.2.4", 104 | "com.unity.modules.terrain": "1.0.0" 105 | } 106 | }, 107 | "com.unity.searcher": { 108 | "version": "4.9.3", 109 | "depth": 2, 110 | "source": "registry", 111 | "dependencies": {}, 112 | "url": "https://packages.unity.com" 113 | }, 114 | "com.unity.shadergraph": { 115 | "version": "17.0.3", 116 | "depth": 1, 117 | "source": "builtin", 118 | "dependencies": { 119 | "com.unity.render-pipelines.core": "17.0.3", 120 | "com.unity.searcher": "4.9.3" 121 | } 122 | }, 123 | "com.unity.test-framework": { 124 | "version": "1.4.6", 125 | "depth": 1, 126 | "source": "registry", 127 | "dependencies": { 128 | "com.unity.ext.nunit": "2.0.3", 129 | "com.unity.modules.imgui": "1.0.0", 130 | "com.unity.modules.jsonserialize": "1.0.0" 131 | }, 132 | "url": "https://packages.unity.com" 133 | }, 134 | "com.unity.test-framework.performance": { 135 | "version": "3.0.3", 136 | "depth": 2, 137 | "source": "registry", 138 | "dependencies": { 139 | "com.unity.test-framework": "1.1.31", 140 | "com.unity.modules.jsonserialize": "1.0.0" 141 | }, 142 | "url": "https://packages.unity.com" 143 | }, 144 | "com.unity.ugui": { 145 | "version": "2.0.0", 146 | "depth": 1, 147 | "source": "builtin", 148 | "dependencies": { 149 | "com.unity.modules.ui": "1.0.0", 150 | "com.unity.modules.imgui": "1.0.0" 151 | } 152 | }, 153 | "com.unity.modules.accessibility": { 154 | "version": "1.0.0", 155 | "depth": 0, 156 | "source": "builtin", 157 | "dependencies": {} 158 | }, 159 | "com.unity.modules.ai": { 160 | "version": "1.0.0", 161 | "depth": 0, 162 | "source": "builtin", 163 | "dependencies": {} 164 | }, 165 | "com.unity.modules.androidjni": { 166 | "version": "1.0.0", 167 | "depth": 0, 168 | "source": "builtin", 169 | "dependencies": {} 170 | }, 171 | "com.unity.modules.animation": { 172 | "version": "1.0.0", 173 | "depth": 0, 174 | "source": "builtin", 175 | "dependencies": {} 176 | }, 177 | "com.unity.modules.assetbundle": { 178 | "version": "1.0.0", 179 | "depth": 0, 180 | "source": "builtin", 181 | "dependencies": {} 182 | }, 183 | "com.unity.modules.audio": { 184 | "version": "1.0.0", 185 | "depth": 0, 186 | "source": "builtin", 187 | "dependencies": {} 188 | }, 189 | "com.unity.modules.cloth": { 190 | "version": "1.0.0", 191 | "depth": 0, 192 | "source": "builtin", 193 | "dependencies": { 194 | "com.unity.modules.physics": "1.0.0" 195 | } 196 | }, 197 | "com.unity.modules.director": { 198 | "version": "1.0.0", 199 | "depth": 0, 200 | "source": "builtin", 201 | "dependencies": { 202 | "com.unity.modules.audio": "1.0.0", 203 | "com.unity.modules.animation": "1.0.0" 204 | } 205 | }, 206 | "com.unity.modules.hierarchycore": { 207 | "version": "1.0.0", 208 | "depth": 1, 209 | "source": "builtin", 210 | "dependencies": {} 211 | }, 212 | "com.unity.modules.imageconversion": { 213 | "version": "1.0.0", 214 | "depth": 0, 215 | "source": "builtin", 216 | "dependencies": {} 217 | }, 218 | "com.unity.modules.imgui": { 219 | "version": "1.0.0", 220 | "depth": 0, 221 | "source": "builtin", 222 | "dependencies": {} 223 | }, 224 | "com.unity.modules.jsonserialize": { 225 | "version": "1.0.0", 226 | "depth": 0, 227 | "source": "builtin", 228 | "dependencies": {} 229 | }, 230 | "com.unity.modules.particlesystem": { 231 | "version": "1.0.0", 232 | "depth": 0, 233 | "source": "builtin", 234 | "dependencies": {} 235 | }, 236 | "com.unity.modules.physics": { 237 | "version": "1.0.0", 238 | "depth": 0, 239 | "source": "builtin", 240 | "dependencies": {} 241 | }, 242 | "com.unity.modules.physics2d": { 243 | "version": "1.0.0", 244 | "depth": 0, 245 | "source": "builtin", 246 | "dependencies": {} 247 | }, 248 | "com.unity.modules.screencapture": { 249 | "version": "1.0.0", 250 | "depth": 0, 251 | "source": "builtin", 252 | "dependencies": { 253 | "com.unity.modules.imageconversion": "1.0.0" 254 | } 255 | }, 256 | "com.unity.modules.subsystems": { 257 | "version": "1.0.0", 258 | "depth": 1, 259 | "source": "builtin", 260 | "dependencies": { 261 | "com.unity.modules.jsonserialize": "1.0.0" 262 | } 263 | }, 264 | "com.unity.modules.terrain": { 265 | "version": "1.0.0", 266 | "depth": 0, 267 | "source": "builtin", 268 | "dependencies": {} 269 | }, 270 | "com.unity.modules.terrainphysics": { 271 | "version": "1.0.0", 272 | "depth": 0, 273 | "source": "builtin", 274 | "dependencies": { 275 | "com.unity.modules.physics": "1.0.0", 276 | "com.unity.modules.terrain": "1.0.0" 277 | } 278 | }, 279 | "com.unity.modules.tilemap": { 280 | "version": "1.0.0", 281 | "depth": 0, 282 | "source": "builtin", 283 | "dependencies": { 284 | "com.unity.modules.physics2d": "1.0.0" 285 | } 286 | }, 287 | "com.unity.modules.ui": { 288 | "version": "1.0.0", 289 | "depth": 0, 290 | "source": "builtin", 291 | "dependencies": {} 292 | }, 293 | "com.unity.modules.uielements": { 294 | "version": "1.0.0", 295 | "depth": 0, 296 | "source": "builtin", 297 | "dependencies": { 298 | "com.unity.modules.ui": "1.0.0", 299 | "com.unity.modules.imgui": "1.0.0", 300 | "com.unity.modules.jsonserialize": "1.0.0", 301 | "com.unity.modules.hierarchycore": "1.0.0" 302 | } 303 | }, 304 | "com.unity.modules.umbra": { 305 | "version": "1.0.0", 306 | "depth": 0, 307 | "source": "builtin", 308 | "dependencies": {} 309 | }, 310 | "com.unity.modules.unityanalytics": { 311 | "version": "1.0.0", 312 | "depth": 0, 313 | "source": "builtin", 314 | "dependencies": { 315 | "com.unity.modules.unitywebrequest": "1.0.0", 316 | "com.unity.modules.jsonserialize": "1.0.0" 317 | } 318 | }, 319 | "com.unity.modules.unitywebrequest": { 320 | "version": "1.0.0", 321 | "depth": 0, 322 | "source": "builtin", 323 | "dependencies": {} 324 | }, 325 | "com.unity.modules.unitywebrequestassetbundle": { 326 | "version": "1.0.0", 327 | "depth": 0, 328 | "source": "builtin", 329 | "dependencies": { 330 | "com.unity.modules.assetbundle": "1.0.0", 331 | "com.unity.modules.unitywebrequest": "1.0.0" 332 | } 333 | }, 334 | "com.unity.modules.unitywebrequestaudio": { 335 | "version": "1.0.0", 336 | "depth": 0, 337 | "source": "builtin", 338 | "dependencies": { 339 | "com.unity.modules.unitywebrequest": "1.0.0", 340 | "com.unity.modules.audio": "1.0.0" 341 | } 342 | }, 343 | "com.unity.modules.unitywebrequesttexture": { 344 | "version": "1.0.0", 345 | "depth": 0, 346 | "source": "builtin", 347 | "dependencies": { 348 | "com.unity.modules.unitywebrequest": "1.0.0", 349 | "com.unity.modules.imageconversion": "1.0.0" 350 | } 351 | }, 352 | "com.unity.modules.unitywebrequestwww": { 353 | "version": "1.0.0", 354 | "depth": 0, 355 | "source": "builtin", 356 | "dependencies": { 357 | "com.unity.modules.unitywebrequest": "1.0.0", 358 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 359 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 360 | "com.unity.modules.audio": "1.0.0", 361 | "com.unity.modules.assetbundle": "1.0.0", 362 | "com.unity.modules.imageconversion": "1.0.0" 363 | } 364 | }, 365 | "com.unity.modules.vehicles": { 366 | "version": "1.0.0", 367 | "depth": 0, 368 | "source": "builtin", 369 | "dependencies": { 370 | "com.unity.modules.physics": "1.0.0" 371 | } 372 | }, 373 | "com.unity.modules.video": { 374 | "version": "1.0.0", 375 | "depth": 0, 376 | "source": "builtin", 377 | "dependencies": { 378 | "com.unity.modules.audio": "1.0.0", 379 | "com.unity.modules.ui": "1.0.0", 380 | "com.unity.modules.unitywebrequest": "1.0.0" 381 | } 382 | }, 383 | "com.unity.modules.vr": { 384 | "version": "1.0.0", 385 | "depth": 0, 386 | "source": "builtin", 387 | "dependencies": { 388 | "com.unity.modules.jsonserialize": "1.0.0", 389 | "com.unity.modules.physics": "1.0.0", 390 | "com.unity.modules.xr": "1.0.0" 391 | } 392 | }, 393 | "com.unity.modules.wind": { 394 | "version": "1.0.0", 395 | "depth": 0, 396 | "source": "builtin", 397 | "dependencies": {} 398 | }, 399 | "com.unity.modules.xr": { 400 | "version": "1.0.0", 401 | "depth": 0, 402 | "source": "builtin", 403 | "dependencies": { 404 | "com.unity.modules.physics": "1.0.0", 405 | "com.unity.modules.jsonserialize": "1.0.0", 406 | "com.unity.modules.subsystems": "1.0.0" 407 | } 408 | } 409 | } 410 | } 411 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_EnablePCM: 1 18 | m_ClothInterCollisionDistance: 0 19 | m_ClothInterCollisionStiffness: 0 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 1 23 | m_ClothInterCollisionSettingsToggle: 0 24 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Demo/DebugOverlayTest.unity 10 | guid: 61b21ba9fc0d7c04eb28a72045df7d38 11 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_SerializationMode: 2 8 | m_LineEndingsForNewScripts: 1 9 | m_DefaultBehaviorMode: 0 10 | m_PrefabRegularEnvironment: {fileID: 0} 11 | m_PrefabUIEnvironment: {fileID: 0} 12 | m_SpritePackerMode: 0 13 | m_SpritePackerCacheSize: 10 14 | m_SpritePackerPaddingPower: 1 15 | m_Bc7TextureCompressor: 0 16 | m_EtcTextureCompressorBehavior: 0 17 | m_EtcTextureFastCompressor: 2 18 | m_EtcTextureNormalCompressor: 2 19 | m_EtcTextureBestCompressor: 5 20 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmref 21 | m_ProjectGenerationRootNamespace: 22 | m_EnableTextureStreamingInEditMode: 1 23 | m_EnableTextureStreamingInPlayMode: 1 24 | m_EnableEditorAsyncCPUTextureLoading: 0 25 | m_AsyncShaderCompilation: 1 26 | m_PrefabModeAllowAutoSave: 1 27 | m_EnterPlayModeOptionsEnabled: 1 28 | m_EnterPlayModeOptions: 1 29 | m_GameObjectNamingDigits: 1 30 | m_GameObjectNamingScheme: 0 31 | m_AssetNamingUsesSpace: 1 32 | m_InspectorUseIMGUIDefaultInspector: 0 33 | m_UseLegacyProbeSampleCount: 1 34 | m_SerializeInlineMappingsOnOneLine: 0 35 | m_DisableCookiesInLightmapper: 1 36 | m_AssetPipelineMode: 1 37 | m_RefreshImportMode: 0 38 | m_CacheServerMode: 0 39 | m_CacheServerEndpoint: 40 | m_CacheServerNamespacePrefix: default 41 | m_CacheServerEnableDownload: 1 42 | m_CacheServerEnableUpload: 1 43 | m_CacheServerEnableAuth: 0 44 | m_CacheServerEnableTls: 0 45 | m_CacheServerValidationMode: 2 46 | m_CacheServerDownloadBatchSize: 128 47 | m_EnableEnlightenBakedGI: 0 48 | m_ReferencedClipsExactNaming: 0 49 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 16 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_DepthNormals: 17 | m_Mode: 1 18 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 19 | m_MotionVectors: 20 | m_Mode: 1 21 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 22 | m_LightHalo: 23 | m_Mode: 1 24 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LensFlare: 26 | m_Mode: 1 27 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 28 | m_VideoShadersIncludeMode: 2 29 | m_AlwaysIncludedShaders: 30 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 31 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 32 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} 38 | m_PreloadedShaders: [] 39 | m_PreloadShadersBatchTimeLimit: -1 40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 41 | type: 0} 42 | m_CustomRenderPipeline: {fileID: 11400000, guid: 6a724045fe20d774bb55c1d037d545e1, 43 | type: 2} 44 | m_TransparencySortMode: 0 45 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 46 | m_DefaultRenderingPath: 1 47 | m_DefaultMobileRenderingPath: 1 48 | m_TierSettings: [] 49 | m_LightmapStripping: 0 50 | m_FogStripping: 0 51 | m_InstancingStripping: 0 52 | m_BrgStripping: 0 53 | m_LightmapKeepPlain: 1 54 | m_LightmapKeepDirCombined: 1 55 | m_LightmapKeepDynamicPlain: 1 56 | m_LightmapKeepDynamicDirCombined: 1 57 | m_LightmapKeepShadowMask: 1 58 | m_LightmapKeepSubtractive: 1 59 | m_FogKeepLinear: 1 60 | m_FogKeepExp: 1 61 | m_FogKeepExp2: 1 62 | m_AlbedoSwatchInfos: [] 63 | m_RenderPipelineGlobalSettingsMap: 64 | UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: bf37095ff6774cd4fb95780e9f33ac79, 65 | type: 2} 66 | m_LightsUseLinearIntensity: 1 67 | m_LightsUseColorTemperature: 1 68 | m_LogWhenShaderIsCompiled: 0 69 | m_LightProbeOutsideHullStrategy: 0 70 | m_CameraRelativeLightCulling: 0 71 | m_CameraRelativeShadowCulling: 0 72 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | - serializedVersion: 3 297 | m_Name: Enable Debug Button 1 298 | descriptiveName: 299 | descriptiveNegativeName: 300 | negativeButton: 301 | positiveButton: left ctrl 302 | altNegativeButton: 303 | altPositiveButton: joystick button 8 304 | gravity: 0 305 | dead: 0 306 | sensitivity: 0 307 | snap: 0 308 | invert: 0 309 | type: 0 310 | axis: 0 311 | joyNum: 0 312 | - serializedVersion: 3 313 | m_Name: Enable Debug Button 2 314 | descriptiveName: 315 | descriptiveNegativeName: 316 | negativeButton: 317 | positiveButton: backspace 318 | altNegativeButton: 319 | altPositiveButton: joystick button 9 320 | gravity: 0 321 | dead: 0 322 | sensitivity: 0 323 | snap: 0 324 | invert: 0 325 | type: 0 326 | axis: 0 327 | joyNum: 0 328 | - serializedVersion: 3 329 | m_Name: Debug Reset 330 | descriptiveName: 331 | descriptiveNegativeName: 332 | negativeButton: 333 | positiveButton: left alt 334 | altNegativeButton: 335 | altPositiveButton: joystick button 1 336 | gravity: 0 337 | dead: 0 338 | sensitivity: 0 339 | snap: 0 340 | invert: 0 341 | type: 0 342 | axis: 0 343 | joyNum: 0 344 | - serializedVersion: 3 345 | m_Name: Debug Next 346 | descriptiveName: 347 | descriptiveNegativeName: 348 | negativeButton: 349 | positiveButton: page down 350 | altNegativeButton: 351 | altPositiveButton: joystick button 5 352 | gravity: 0 353 | dead: 0 354 | sensitivity: 0 355 | snap: 0 356 | invert: 0 357 | type: 0 358 | axis: 0 359 | joyNum: 0 360 | - serializedVersion: 3 361 | m_Name: Debug Previous 362 | descriptiveName: 363 | descriptiveNegativeName: 364 | negativeButton: 365 | positiveButton: page up 366 | altNegativeButton: 367 | altPositiveButton: joystick button 4 368 | gravity: 0 369 | dead: 0 370 | sensitivity: 0 371 | snap: 0 372 | invert: 0 373 | type: 0 374 | axis: 0 375 | joyNum: 0 376 | - serializedVersion: 3 377 | m_Name: Debug Validate 378 | descriptiveName: 379 | descriptiveNegativeName: 380 | negativeButton: 381 | positiveButton: return 382 | altNegativeButton: 383 | altPositiveButton: joystick button 0 384 | gravity: 0 385 | dead: 0 386 | sensitivity: 0 387 | snap: 0 388 | invert: 0 389 | type: 0 390 | axis: 0 391 | joyNum: 0 392 | - serializedVersion: 3 393 | m_Name: Debug Persistent 394 | descriptiveName: 395 | descriptiveNegativeName: 396 | negativeButton: 397 | positiveButton: right shift 398 | altNegativeButton: 399 | altPositiveButton: joystick button 2 400 | gravity: 0 401 | dead: 0 402 | sensitivity: 0 403 | snap: 0 404 | invert: 0 405 | type: 0 406 | axis: 0 407 | joyNum: 0 408 | - serializedVersion: 3 409 | m_Name: Debug Multiplier 410 | descriptiveName: 411 | descriptiveNegativeName: 412 | negativeButton: 413 | positiveButton: left shift 414 | altNegativeButton: 415 | altPositiveButton: joystick button 3 416 | gravity: 0 417 | dead: 0 418 | sensitivity: 0 419 | snap: 0 420 | invert: 0 421 | type: 0 422 | axis: 0 423 | joyNum: 0 424 | - serializedVersion: 3 425 | m_Name: Debug Horizontal 426 | descriptiveName: 427 | descriptiveNegativeName: 428 | negativeButton: left 429 | positiveButton: right 430 | altNegativeButton: 431 | altPositiveButton: 432 | gravity: 1000 433 | dead: 0.001 434 | sensitivity: 1000 435 | snap: 0 436 | invert: 0 437 | type: 0 438 | axis: 0 439 | joyNum: 0 440 | - serializedVersion: 3 441 | m_Name: Debug Vertical 442 | descriptiveName: 443 | descriptiveNegativeName: 444 | negativeButton: down 445 | positiveButton: up 446 | altNegativeButton: 447 | altPositiveButton: 448 | gravity: 1000 449 | dead: 0.001 450 | sensitivity: 1000 451 | snap: 0 452 | invert: 0 453 | type: 0 454 | axis: 0 455 | joyNum: 0 456 | - serializedVersion: 3 457 | m_Name: Debug Vertical 458 | descriptiveName: 459 | descriptiveNegativeName: 460 | negativeButton: down 461 | positiveButton: up 462 | altNegativeButton: 463 | altPositiveButton: 464 | gravity: 1000 465 | dead: 0.001 466 | sensitivity: 1000 467 | snap: 0 468 | invert: 0 469 | type: 2 470 | axis: 6 471 | joyNum: 0 472 | - serializedVersion: 3 473 | m_Name: Debug Horizontal 474 | descriptiveName: 475 | descriptiveNegativeName: 476 | negativeButton: left 477 | positiveButton: right 478 | altNegativeButton: 479 | altPositiveButton: 480 | gravity: 1000 481 | dead: 0.001 482 | sensitivity: 1000 483 | snap: 0 484 | invert: 0 485 | type: 2 486 | axis: 5 487 | joyNum: 0 488 | -------------------------------------------------------------------------------- /ProjectSettings/MemorySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!387306366 &1 4 | MemorySettings: 5 | m_ObjectHideFlags: 0 6 | m_EditorMemorySettings: 7 | m_MainAllocatorBlockSize: -1 8 | m_ThreadAllocatorBlockSize: -1 9 | m_MainGfxBlockSize: -1 10 | m_ThreadGfxBlockSize: -1 11 | m_CacheBlockSize: -1 12 | m_TypetreeBlockSize: -1 13 | m_ProfilerBlockSize: -1 14 | m_ProfilerEditorBlockSize: -1 15 | m_BucketAllocatorGranularity: -1 16 | m_BucketAllocatorBucketsCount: -1 17 | m_BucketAllocatorBlockSize: -1 18 | m_BucketAllocatorBlockCount: -1 19 | m_ProfilerBucketAllocatorGranularity: -1 20 | m_ProfilerBucketAllocatorBucketsCount: -1 21 | m_ProfilerBucketAllocatorBlockSize: -1 22 | m_ProfilerBucketAllocatorBlockCount: -1 23 | m_TempAllocatorSizeMain: -1 24 | m_JobTempAllocatorBlockSize: -1 25 | m_BackgroundJobTempAllocatorBlockSize: -1 26 | m_JobTempAllocatorReducedBlockSize: -1 27 | m_TempAllocatorSizeGIBakingWorker: -1 28 | m_TempAllocatorSizeNavMeshWorker: -1 29 | m_TempAllocatorSizeAudioWorker: -1 30 | m_TempAllocatorSizeCloudWorker: -1 31 | m_TempAllocatorSizeGfx: -1 32 | m_TempAllocatorSizeJobWorker: -1 33 | m_TempAllocatorSizeBackgroundWorker: -1 34 | m_TempAllocatorSizePreloadManager: -1 35 | m_PlatformMemorySettings: {} 36 | -------------------------------------------------------------------------------- /ProjectSettings/MultiplayerManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!655991488 &1 4 | MultiplayerManager: 5 | m_ObjectHideFlags: 0 6 | m_EnableMultiplayerRoles: 0 7 | m_StrippingTypes: {} 8 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | m_SettingNames: 89 | - Humanoid 90 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreviewPackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | oneTimeWarningShown: 0 20 | m_Registries: 21 | - m_Id: main 22 | m_Name: 23 | m_Url: https://packages.unity.com 24 | m_Scopes: [] 25 | m_IsDefault: 1 26 | m_Capabilities: 7 27 | m_UserSelectedRegistryName: 28 | m_UserAddingNewScopedRegistry: 0 29 | m_RegistryInfoDraft: 30 | m_ErrorMessage: 31 | m_Original: 32 | m_Id: 33 | m_Name: 34 | m_Url: 35 | m_Scopes: [] 36 | m_IsDefault: 0 37 | m_Capabilities: 0 38 | m_Modified: 0 39 | m_Name: 40 | m_Url: 41 | m_Scopes: 42 | - 43 | m_SelectedScopeIndex: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_AutoSyncTransforms: 1 28 | m_AlwaysShowColliders: 0 29 | m_ShowColliderSleep: 1 30 | m_ShowColliderContacts: 0 31 | m_ShowColliderAABB: 0 32 | m_ContactArrowScale: 0.2 33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 38 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 6000.1.0b6 2 | m_EditorVersionWithRevision: 6000.1.0b6 (ec21b2dabf4e) 3 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | skinWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | streamingMipmapsActive: 0 33 | streamingMipmapsAddAllCameras: 1 34 | streamingMipmapsMemoryBudget: 512 35 | streamingMipmapsRenderersPerFrame: 512 36 | streamingMipmapsMaxLevelReduction: 2 37 | streamingMipmapsMaxFileIORequests: 1024 38 | particleRaycastBudget: 4 39 | asyncUploadTimeSlice: 2 40 | asyncUploadBufferSize: 4 41 | asyncUploadPersistentBuffer: 1 42 | resolutionScalingFixedDPIFactor: 1 43 | customRenderPipeline: {fileID: 0} 44 | excludedTargetPlatforms: [] 45 | - serializedVersion: 2 46 | name: Low 47 | pixelLightCount: 0 48 | shadows: 0 49 | shadowResolution: 0 50 | shadowProjection: 1 51 | shadowCascades: 1 52 | shadowDistance: 20 53 | shadowNearPlaneOffset: 3 54 | shadowCascade2Split: 0.33333334 55 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 56 | shadowmaskMode: 0 57 | skinWeights: 2 58 | textureQuality: 0 59 | anisotropicTextures: 0 60 | antiAliasing: 0 61 | softParticles: 0 62 | softVegetation: 0 63 | realtimeReflectionProbes: 0 64 | billboardsFaceCameraPosition: 0 65 | vSyncCount: 0 66 | lodBias: 0.4 67 | maximumLODLevel: 0 68 | streamingMipmapsActive: 0 69 | streamingMipmapsAddAllCameras: 1 70 | streamingMipmapsMemoryBudget: 512 71 | streamingMipmapsRenderersPerFrame: 512 72 | streamingMipmapsMaxLevelReduction: 2 73 | streamingMipmapsMaxFileIORequests: 1024 74 | particleRaycastBudget: 16 75 | asyncUploadTimeSlice: 2 76 | asyncUploadBufferSize: 4 77 | asyncUploadPersistentBuffer: 1 78 | resolutionScalingFixedDPIFactor: 1 79 | customRenderPipeline: {fileID: 0} 80 | excludedTargetPlatforms: [] 81 | - serializedVersion: 2 82 | name: Medium 83 | pixelLightCount: 1 84 | shadows: 1 85 | shadowResolution: 0 86 | shadowProjection: 1 87 | shadowCascades: 1 88 | shadowDistance: 20 89 | shadowNearPlaneOffset: 3 90 | shadowCascade2Split: 0.33333334 91 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 92 | shadowmaskMode: 0 93 | skinWeights: 2 94 | textureQuality: 0 95 | anisotropicTextures: 1 96 | antiAliasing: 0 97 | softParticles: 0 98 | softVegetation: 0 99 | realtimeReflectionProbes: 0 100 | billboardsFaceCameraPosition: 0 101 | vSyncCount: 1 102 | lodBias: 0.7 103 | maximumLODLevel: 0 104 | streamingMipmapsActive: 0 105 | streamingMipmapsAddAllCameras: 1 106 | streamingMipmapsMemoryBudget: 512 107 | streamingMipmapsRenderersPerFrame: 512 108 | streamingMipmapsMaxLevelReduction: 2 109 | streamingMipmapsMaxFileIORequests: 1024 110 | particleRaycastBudget: 64 111 | asyncUploadTimeSlice: 2 112 | asyncUploadBufferSize: 4 113 | asyncUploadPersistentBuffer: 1 114 | resolutionScalingFixedDPIFactor: 1 115 | customRenderPipeline: {fileID: 0} 116 | excludedTargetPlatforms: [] 117 | - serializedVersion: 2 118 | name: High 119 | pixelLightCount: 2 120 | shadows: 2 121 | shadowResolution: 1 122 | shadowProjection: 1 123 | shadowCascades: 2 124 | shadowDistance: 40 125 | shadowNearPlaneOffset: 3 126 | shadowCascade2Split: 0.33333334 127 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 128 | shadowmaskMode: 1 129 | skinWeights: 2 130 | textureQuality: 0 131 | anisotropicTextures: 1 132 | antiAliasing: 0 133 | softParticles: 0 134 | softVegetation: 1 135 | realtimeReflectionProbes: 1 136 | billboardsFaceCameraPosition: 1 137 | vSyncCount: 1 138 | lodBias: 1 139 | maximumLODLevel: 0 140 | streamingMipmapsActive: 0 141 | streamingMipmapsAddAllCameras: 1 142 | streamingMipmapsMemoryBudget: 512 143 | streamingMipmapsRenderersPerFrame: 512 144 | streamingMipmapsMaxLevelReduction: 2 145 | streamingMipmapsMaxFileIORequests: 1024 146 | particleRaycastBudget: 256 147 | asyncUploadTimeSlice: 2 148 | asyncUploadBufferSize: 4 149 | asyncUploadPersistentBuffer: 1 150 | resolutionScalingFixedDPIFactor: 1 151 | customRenderPipeline: {fileID: 0} 152 | excludedTargetPlatforms: [] 153 | - serializedVersion: 2 154 | name: Very High 155 | pixelLightCount: 3 156 | shadows: 2 157 | shadowResolution: 2 158 | shadowProjection: 1 159 | shadowCascades: 2 160 | shadowDistance: 70 161 | shadowNearPlaneOffset: 3 162 | shadowCascade2Split: 0.33333334 163 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 164 | shadowmaskMode: 1 165 | skinWeights: 4 166 | textureQuality: 0 167 | anisotropicTextures: 2 168 | antiAliasing: 2 169 | softParticles: 1 170 | softVegetation: 1 171 | realtimeReflectionProbes: 1 172 | billboardsFaceCameraPosition: 1 173 | vSyncCount: 1 174 | lodBias: 1.5 175 | maximumLODLevel: 0 176 | streamingMipmapsActive: 0 177 | streamingMipmapsAddAllCameras: 1 178 | streamingMipmapsMemoryBudget: 512 179 | streamingMipmapsRenderersPerFrame: 512 180 | streamingMipmapsMaxLevelReduction: 2 181 | streamingMipmapsMaxFileIORequests: 1024 182 | particleRaycastBudget: 1024 183 | asyncUploadTimeSlice: 2 184 | asyncUploadBufferSize: 4 185 | asyncUploadPersistentBuffer: 1 186 | resolutionScalingFixedDPIFactor: 1 187 | customRenderPipeline: {fileID: 0} 188 | excludedTargetPlatforms: [] 189 | - serializedVersion: 2 190 | name: Ultra 191 | pixelLightCount: 4 192 | shadows: 2 193 | shadowResolution: 2 194 | shadowProjection: 1 195 | shadowCascades: 4 196 | shadowDistance: 150 197 | shadowNearPlaneOffset: 3 198 | shadowCascade2Split: 0.33333334 199 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 200 | shadowmaskMode: 1 201 | skinWeights: 4 202 | textureQuality: 0 203 | anisotropicTextures: 2 204 | antiAliasing: 0 205 | softParticles: 1 206 | softVegetation: 1 207 | realtimeReflectionProbes: 1 208 | billboardsFaceCameraPosition: 1 209 | vSyncCount: 1 210 | lodBias: 2 211 | maximumLODLevel: 0 212 | streamingMipmapsActive: 0 213 | streamingMipmapsAddAllCameras: 1 214 | streamingMipmapsMemoryBudget: 512 215 | streamingMipmapsRenderersPerFrame: 512 216 | streamingMipmapsMaxLevelReduction: 2 217 | streamingMipmapsMaxFileIORequests: 1024 218 | particleRaycastBudget: 4096 219 | asyncUploadTimeSlice: 2 220 | asyncUploadBufferSize: 4 221 | asyncUploadPersistentBuffer: 1 222 | resolutionScalingFixedDPIFactor: 1 223 | customRenderPipeline: {fileID: 0} 224 | excludedTargetPlatforms: [] 225 | m_PerPlatformDefaultQuality: 226 | Android: 2 227 | Nintendo 3DS: 5 228 | Nintendo Switch: 5 229 | PS4: 5 230 | PSM: 5 231 | PSP2: 2 232 | Samsung TV: 2 233 | Standalone: 5 234 | Tizen: 2 235 | Web: 5 236 | WebGL: 3 237 | WiiU: 5 238 | Windows Store Apps: 5 239 | XboxOne: 5 240 | iPhone: 2 241 | tvOS: 2 242 | -------------------------------------------------------------------------------- /ProjectSettings/SceneTemplateSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "templatePinStates": [], 3 | "dependencyTypeInfos": [ 4 | { 5 | "userAdded": false, 6 | "type": "UnityEngine.AnimationClip", 7 | "defaultInstantiationMode": 0 8 | }, 9 | { 10 | "userAdded": false, 11 | "type": "UnityEditor.Animations.AnimatorController", 12 | "defaultInstantiationMode": 0 13 | }, 14 | { 15 | "userAdded": false, 16 | "type": "UnityEngine.AnimatorOverrideController", 17 | "defaultInstantiationMode": 0 18 | }, 19 | { 20 | "userAdded": false, 21 | "type": "UnityEditor.Audio.AudioMixerController", 22 | "defaultInstantiationMode": 0 23 | }, 24 | { 25 | "userAdded": false, 26 | "type": "UnityEngine.ComputeShader", 27 | "defaultInstantiationMode": 1 28 | }, 29 | { 30 | "userAdded": false, 31 | "type": "UnityEngine.Cubemap", 32 | "defaultInstantiationMode": 0 33 | }, 34 | { 35 | "userAdded": false, 36 | "type": "UnityEngine.GameObject", 37 | "defaultInstantiationMode": 0 38 | }, 39 | { 40 | "userAdded": false, 41 | "type": "UnityEditor.LightingDataAsset", 42 | "defaultInstantiationMode": 0 43 | }, 44 | { 45 | "userAdded": false, 46 | "type": "UnityEngine.LightingSettings", 47 | "defaultInstantiationMode": 0 48 | }, 49 | { 50 | "userAdded": false, 51 | "type": "UnityEngine.Material", 52 | "defaultInstantiationMode": 0 53 | }, 54 | { 55 | "userAdded": false, 56 | "type": "UnityEditor.MonoScript", 57 | "defaultInstantiationMode": 1 58 | }, 59 | { 60 | "userAdded": false, 61 | "type": "UnityEngine.PhysicMaterial", 62 | "defaultInstantiationMode": 0 63 | }, 64 | { 65 | "userAdded": false, 66 | "type": "UnityEngine.PhysicsMaterial", 67 | "defaultInstantiationMode": 0 68 | }, 69 | { 70 | "userAdded": false, 71 | "type": "UnityEngine.PhysicsMaterial2D", 72 | "defaultInstantiationMode": 0 73 | }, 74 | { 75 | "userAdded": false, 76 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", 77 | "defaultInstantiationMode": 0 78 | }, 79 | { 80 | "userAdded": false, 81 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", 82 | "defaultInstantiationMode": 0 83 | }, 84 | { 85 | "userAdded": false, 86 | "type": "UnityEngine.Rendering.VolumeProfile", 87 | "defaultInstantiationMode": 0 88 | }, 89 | { 90 | "userAdded": false, 91 | "type": "UnityEditor.SceneAsset", 92 | "defaultInstantiationMode": 1 93 | }, 94 | { 95 | "userAdded": false, 96 | "type": "UnityEngine.Shader", 97 | "defaultInstantiationMode": 1 98 | }, 99 | { 100 | "userAdded": false, 101 | "type": "UnityEngine.ShaderVariantCollection", 102 | "defaultInstantiationMode": 1 103 | }, 104 | { 105 | "userAdded": false, 106 | "type": "UnityEngine.Texture", 107 | "defaultInstantiationMode": 0 108 | }, 109 | { 110 | "userAdded": false, 111 | "type": "UnityEngine.Texture2D", 112 | "defaultInstantiationMode": 0 113 | }, 114 | { 115 | "userAdded": false, 116 | "type": "UnityEngine.Timeline.TimelineAsset", 117 | "defaultInstantiationMode": 0 118 | } 119 | ], 120 | "defaultDependencyTypeInfo": { 121 | "userAdded": false, 122 | "type": "", 123 | "defaultInstantiationMode": 1 124 | }, 125 | "newSceneOverride": 0 126 | } -------------------------------------------------------------------------------- /ProjectSettings/ShaderGraphSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 53 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | shaderVariantLimit: 2048 16 | customInterpolatorErrorThreshold: 32 17 | customInterpolatorWarningThreshold: 16 18 | customHeatmapValues: {fileID: 0} 19 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/URPProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_LastMaterialVersion: 9 16 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | m_TestInitMode: 0 11 | CrashReportingSettings: 12 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 13 | m_Enabled: 0 14 | m_CaptureEditorExceptions: 1 15 | UnityPurchasingSettings: 16 | m_Enabled: 0 17 | m_TestMode: 0 18 | UnityAnalyticsSettings: 19 | m_Enabled: 0 20 | m_InitializeOnStartup: 1 21 | m_TestMode: 0 22 | m_TestEventUrl: 23 | m_TestConfigUrl: 24 | UnityAdsSettings: 25 | m_Enabled: 0 26 | m_InitializeOnStartup: 1 27 | m_TestMode: 0 28 | m_EnabledPlatforms: 4294967295 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | m_CompiledVersion: 0 14 | m_RuntimeVersion: 0 15 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # unity-debug-overlay 2 | A fast and (almost) garbage free debug overlay for Unity. The projects contains two primary components: a debug overlay 3 | and a console. 4 | 5 | ## Performance 6 | Garbage production is minimized by not really using strings a lot and by having convenience functions that mimick string 7 | formatting (using format strings like `"This: {0}"`) known from C#. Rendering happens through the magic of a few procedural draw calls 8 | and is quite fast. 9 | 10 | ## Debug overlay 11 | The debug overlay is useful for displaying text and graphs that update every frame. 12 | Like this: 13 | 14 | ![Pretty picture](https://user-images.githubusercontent.com/4175246/28583020-e34a3a12-7167-11e7-8871-7199f410aa8d.gif) 15 | 16 | This can be done with some level of convenience using this code: 17 | 18 | ```c# 19 | // FPS in top left corner 20 | DebugOverlay.Write(1, 0, "FPS:{0,6:###.##}", 1.0f / Time.deltaTime); 21 | 22 | // Small graph of FPS below 23 | fpsHistory[Time.frameCount % fpsHistory.Length] = 1.0f / Time.deltaTime; 24 | DebugOverlay.DrawGraph(1, 1, 9, 1.5f, fpsHistory, Time.frameCount % fpsHistory.Length, Color.green); 25 | ``` 26 | 27 | Even though it looks like regular string formatting, no garbage will be generated. 28 | 29 | ## Console 30 | The console is useful for checking logs / output while ingame and also for easily registrering commands 31 | that can be used to tweak the game behaviour or turn on/off debugging aspects. 32 | 33 | You can write 34 | 35 | ```c# 36 | // Register quit command 37 | Game.console.AddCommand("quit", CmdQuit, "Quit game"); 38 | 39 | /* ... */ 40 | 41 | void CmdQuit(string[] args) 42 | { 43 | Game.console.Write("Goodbye\n"); 44 | Application.Quit(); 45 | } 46 | ``` 47 | 48 | and it will work like this: 49 | 50 | ![Pretty picture](https://user-images.githubusercontent.com/4175246/28582984-d215e5f2-7167-11e7-99ff-e96b2981b9bb.gif) 51 | 52 | 53 | --------------------------------------------------------------------------------