├── .gitignore
├── Assets
├── RuntimeDebugDraw.cs
├── RuntimeDebugDraw.cs.meta
├── Sample.meta
└── Sample
│ ├── Cube.prefab
│ ├── Cube.prefab.meta
│ ├── ExampleScript.cs
│ ├── ExampleScript.cs.meta
│ ├── SampleScene.unity
│ └── SampleScene.unity.meta
├── Misc
└── screenshot.gif
├── ProjectSettings
└── ProjectSettings.asset
└── readme.md
/.gitignore:
--------------------------------------------------------------------------------
1 | /[Ll]ibrary/
2 | /[Tt]emp/
3 | /[Oo]bj/
4 | /[Bb]uild/
5 | /[Bb]uilds/
6 | /Assets/AssetStoreTools*
7 | /.vs/
8 |
9 | # Autogenerated VS/MD/Consulo solution and project files
10 | ExportedObj/
11 | .consulo/
12 | *.csproj
13 | *.unityproj
14 | *.sln
15 | *.suo
16 | *.tmp
17 | *.user
18 | *.userprefs
19 | *.pidb
20 | *.booproj
21 | *.svd
22 |
23 |
24 | # Unity3D generated meta files
25 | *.pidb.meta
26 |
27 | # Unity3D Generated File On Crash Reports
28 | sysinfo.txt
29 |
30 | # Builds
31 | *.apk
32 | *.unitypackage
33 |
34 | # For this, ignore ProjectSettings is ok
35 | /[Pp]rojectSettings/*
36 | !/[Pp]rojectSettings/ProjectSettings.asset
37 |
--------------------------------------------------------------------------------
/Assets/RuntimeDebugDraw.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using RuntimeDebugDraw.Internal;
5 | using Conditional = System.Diagnostics.ConditionalAttribute;
6 |
7 | /*
8 | * Runtime Debug Draw
9 | * Single file debuging DrawLine/DrawText/etc that works in both Scene/Game view, also works in built PC/mobile builds.
10 | *
11 | * Very Important Notes:
12 | * 1. You are expected to make some changes in this file before intergrating this into you projects.
13 | * a. `_DEBUG` symbol, you should this to your project's debugging symbol so these draw calls will be compiled away in final release builds.
14 | * If you forget to do this, DrawXXX calls won't be shown.
15 | * b. `RuntimeDebugDraw` namespace and `Draw` class name, you can change this into your project's namespace to make it more accessable.
16 | * c. `Draw.DrawLineLayer` is the layer the lines will be drawn on. If you have camera postprocessing turned on, set this to a layer that is ignored
17 | * by the post processor.
18 | * d. `GetDebugDrawCamera()` will be called to get the camera for line drawings and text coordinate calcuation.
19 | * It defaults to `Camera.main`, returning null will mute drawings.
20 | * e. `DrawTextDefaultSize`/`DrawDefaultColor` styling variables, defaults as Unity Debug.Draw.
21 | * 2. Performance should be relatively ok for debugging, but it's never intended for release use. You should use conditional to
22 | * compile away these calls anyway. Additionally DrawText is implemented with OnGUI, which costs a lot on mobile devices.
23 | * 3. Don't rename this file of 'RuntimeDebugDraw' or this won't work. This file contains a MonoBehavior also named 'RuntimeDebugDraw' and Unity needs this file
24 | * to have the same name. If you really want to rename this file, remember to rename the 'RuntimeDebugDraw' class below too.
25 | *
26 | * License: Public Domain
27 | */
28 |
29 | namespace RuntimeDebugDraw
30 | {
31 | public static class Draw
32 | {
33 | #region Main Functions
34 | ///
35 | /// Which layer the lines will be drawn on.
36 | ///
37 | public const int DrawLineLayer = 4;
38 |
39 | ///
40 | /// Default font size for DrawText.
41 | ///
42 | public const int DrawTextDefaultSize = 12;
43 |
44 | ///
45 | /// Default color for Draws.
46 | ///
47 | public static Color DrawDefaultColor = Color.white;
48 |
49 | ///
50 | /// Which camera to use for line drawing and texts coordinate calculation.
51 | ///
52 | /// Camera to debug draw on, returns null will mute debug drawing.
53 | public static Camera GetDebugDrawCamera()
54 | {
55 | return Camera.main;
56 | }
57 |
58 | ///
59 | /// Draw a line from to with .
60 | ///
61 | /// Point in world space where the line should start.
62 | /// Point in world space where the line should end.
63 | /// Color of the line.
64 | /// How long the line should be visible for.
65 | /// Should the line be obscured by objects closer to the camera?
66 | [Conditional("_DEBUG")]
67 | public static void DrawLine(Vector3 start, Vector3 end, Color color, float duration, bool depthTest)
68 | {
69 | CheckAndBuildHiddenRTDrawObject();
70 | _rtDraw.RegisterLine(start, end, color, duration, !depthTest);
71 | return;
72 | }
73 |
74 | ///
75 | /// Draws a line from start to start + dir in world coordinates.
76 | ///
77 | /// Point in world space where the ray should start.
78 | /// Direction and length of the ray.
79 | /// Color of the drawn line.
80 | /// How long the line will be visible for (in seconds).
81 | /// Should the line be obscured by other objects closer to the camera?
82 | [Conditional("_DEBUG")]
83 | public static void DrawRay(Vector3 start, Vector3 dir, Color color, float duration, bool depthTest)
84 | {
85 | CheckAndBuildHiddenRTDrawObject();
86 | _rtDraw.RegisterLine(start, start + dir, color, duration, !depthTest);
87 | return;
88 | }
89 |
90 | ///
91 | /// Draw a text at given position.
92 | ///
93 | /// Position
94 | /// String of the text.
95 | /// Color for the text.
96 | /// Font size for the text.
97 | /// How long the text should be visible for.
98 | /// Set to true to let the text moving up, so multiple texts at the same position can be visible.
99 | [Conditional("_DEBUG")]
100 | public static void DrawText(Vector3 pos, string text, Color color, int size, float duration, bool popUp)
101 | {
102 | CheckAndBuildHiddenRTDrawObject();
103 | _rtDraw.RegisterDrawText(pos, text, color, size, duration, popUp);
104 | return;
105 | }
106 |
107 | ///
108 | /// Attach text to a transform.
109 | ///
110 | /// Target transform to attach text to.
111 | /// Function will be called on every frame to get a string as attached text.
112 | /// Text attach offset to transform position.
113 | /// Color for the text.
114 | /// Font size for the text.
115 | [Conditional("_DEBUG")]
116 | public static void AttachText(Transform transform, Func strFunc, Vector3 offset, Color color, int size)
117 | {
118 | CheckAndBuildHiddenRTDrawObject();
119 | _rtDraw.RegisterAttachText(transform, strFunc, offset, color, size);
120 |
121 | return;
122 | }
123 | #endregion
124 |
125 | #region Overloads
126 | /*
127 | * These are tons of overloads following how 'Debug.DrawXXX' are overloaded.
128 | */
129 |
130 | ///
131 | /// Draw a line from to with .
132 | ///
133 | /// Point in world space where the line should start.
134 | /// Point in world space where the line should end.
135 | [Conditional("_DEBUG")]
136 | public static void DrawLine(Vector3 start, Vector3 end)
137 | {
138 | DrawLine(start, end, DrawDefaultColor, 0f, true);
139 | return;
140 | }
141 |
142 | ///
143 | /// Draw a line from to with .
144 | ///
145 | /// Point in world space where the line should start.
146 | /// Point in world space where the line should end.
147 | /// Color of the line.
148 | [Conditional("_DEBUG")]
149 | public static void DrawLine(Vector3 start, Vector3 end, Color color)
150 | {
151 | DrawLine(start, end, color, 0f, true);
152 | return;
153 | }
154 |
155 | ///
156 | /// Draw a line from to with .
157 | ///
158 | /// Point in world space where the line should start.
159 | /// Point in world space where the line should end.
160 | /// Color of the line.
161 | /// How long the line should be visible for.
162 | [Conditional("_DEBUG")]
163 | public static void DrawLine(Vector3 start, Vector3 end, Color color, float duration)
164 | {
165 | DrawLine(start, end, color, duration, true);
166 | return;
167 | }
168 |
169 | ///
170 | /// Draws a line from start to start + dir in world coordinates.
171 | ///
172 | /// Point in world space where the ray should start.
173 | /// Direction and length of the ray.
174 | [Conditional("_DEBUG")]
175 | public static void DrawRay(Vector3 start, Vector3 dir)
176 | {
177 | DrawRay(start, dir, DrawDefaultColor, 0f, true);
178 | return;
179 | }
180 |
181 | ///
182 | /// Draws a line from start to start + dir in world coordinates.
183 | ///
184 | /// Point in world space where the ray should start.
185 | /// Direction and length of the ray.
186 | /// Color of the drawn line.
187 | [Conditional("_DEBUG")]
188 | public static void DrawRay(Vector3 start, Vector3 dir, Color color)
189 | {
190 | DrawRay(start, dir, color, 0f, true);
191 | return;
192 | }
193 |
194 | ///
195 | /// Draws a line from start to start + dir in world coordinates.
196 | ///
197 | /// Point in world space where the ray should start.
198 | /// Direction and length of the ray.
199 | /// Color of the drawn line.
200 | /// How long the line will be visible for (in seconds).
201 | [Conditional("_DEBUG")]
202 | public static void DrawRay(Vector3 start, Vector3 dir, Color color, float duration)
203 | {
204 | DrawRay(start, dir, color, duration, true);
205 | return;
206 | }
207 |
208 | ///
209 | /// Draw a text at given position.
210 | ///
211 | /// Position
212 | /// String of the text.
213 | [Conditional("_DEBUG")]
214 | public static void DrawText(Vector3 pos, string text)
215 | {
216 | DrawText(pos, text, DrawDefaultColor, DrawTextDefaultSize, 0f, false);
217 | return;
218 | }
219 |
220 | ///
221 | /// Draw a text at given position.
222 | ///
223 | /// Position
224 | /// String of the text.
225 | /// Color for the text.
226 | [Conditional("_DEBUG")]
227 | public static void DrawText(Vector3 pos, string text, Color color)
228 | {
229 | DrawText(pos, text, color, DrawTextDefaultSize, 0f, false);
230 | return;
231 | }
232 |
233 | ///
234 | /// Draw a text at given position.
235 | ///
236 | /// Position
237 | /// String of the text.
238 | /// Color for the text.
239 | /// Font size for the text.
240 | [Conditional("_DEBUG")]
241 | public static void DrawText(Vector3 pos, string text, Color color, int size)
242 | {
243 | DrawText(pos, text, color, size, 0f, false);
244 | return;
245 | }
246 |
247 | ///
248 | /// Draw a text at given position.
249 | ///
250 | /// Position
251 | /// String of the text.
252 | /// Color for the text.
253 | /// Font size for the text.
254 | /// How long the text should be visible for.
255 | [Conditional("_DEBUG")]
256 | public static void DrawText(Vector3 pos, string text, Color color, int size, float duration)
257 | {
258 | DrawText(pos, text, color, size, duration, false);
259 | return;
260 | }
261 |
262 | ///
263 | /// Attach text to a transform.
264 | ///
265 | /// Target transform to attach text to.
266 | /// Function will be called on every frame to get a string as attached text.
267 | [Conditional("_DEBUG")]
268 | public static void AttachText(Transform transform, Func strFunc)
269 | {
270 | AttachText(transform, strFunc, Vector3.zero, DrawDefaultColor, DrawTextDefaultSize);
271 | return;
272 | }
273 |
274 | ///
275 | /// Attach text to a transform.
276 | ///
277 | /// Target transform to attach text to.
278 | /// Function will be called on every frame to get a string as attached text.
279 | /// Text attach offset to transform position.
280 | [Conditional("_DEBUG")]
281 | public static void AttachText(Transform transform, Func strFunc, Vector3 offset)
282 | {
283 | AttachText(transform, strFunc, offset, DrawDefaultColor, DrawTextDefaultSize);
284 | return;
285 | }
286 |
287 | ///
288 | /// Attach text to a transform.
289 | ///
290 | /// Target transform to attach text to.
291 | /// Function will be called on every frame to get a string as attached text.
292 | /// Text attach offset to transform position.
293 | /// Color for the text.
294 | [Conditional("_DEBUG")]
295 | public static void AttachText(Transform transform, Func strFunc, Vector3 offset, Color color)
296 | {
297 | AttachText(transform, strFunc, offset, color, DrawTextDefaultSize);
298 | return;
299 | }
300 | #endregion
301 |
302 | #region Internal
303 | ///
304 | /// Singleton RuntimeDebugDraw component that is needed to call Unity APIs.
305 | ///
306 | private static Internal.RuntimeDebugDraw _rtDraw;
307 |
308 | ///
309 | /// Check and build
310 | ///
311 | private static string HIDDEN_GO_NAME = "________HIDDEN_C4F6A87F298241078E21C0D7C1D87A76_";
312 | private static void CheckAndBuildHiddenRTDrawObject()
313 | {
314 | if (_rtDraw != null)
315 | return;
316 |
317 | // try reuse existing one first
318 | _rtDraw = GameObject.FindObjectOfType();
319 | if (_rtDraw != null)
320 | return;
321 |
322 | // instantiate an hidden gameobject w/ RuntimeDebugDraw attached.
323 | // hardcode an GUID in the name so one won't accidentally get this by name.
324 | var go = new GameObject(HIDDEN_GO_NAME);
325 | var childGo = new GameObject(HIDDEN_GO_NAME);
326 | childGo.transform.parent = go.transform;
327 | _rtDraw = childGo.AddComponent();
328 | // hack to only hide outer go, so that RuntimeDebugDraw's OnGizmos will work properly.
329 | go.hideFlags = HideFlags.HideAndDontSave;
330 | if (Application.isPlaying)
331 | GameObject.DontDestroyOnLoad(go);
332 |
333 | return;
334 | }
335 | #endregion
336 | }
337 |
338 | #region Editor
339 | #if UNITY_EDITOR
340 | [UnityEditor.InitializeOnLoad]
341 | public static class DrawEditor
342 | {
343 | static DrawEditor()
344 | {
345 | // set a low execution order
346 | var name = typeof(RuntimeDebugDraw.Internal.RuntimeDebugDraw).Name;
347 | foreach (UnityEditor.MonoScript monoScript in UnityEditor.MonoImporter.GetAllRuntimeMonoScripts())
348 | {
349 | if (name != monoScript.name)
350 | continue;
351 |
352 | if (UnityEditor.MonoImporter.GetExecutionOrder(monoScript) != 9990)
353 | {
354 | UnityEditor.MonoImporter.SetExecutionOrder(monoScript, 9990);
355 | return;
356 | }
357 | }
358 | }
359 | }
360 | #endif
361 | #endregion
362 | }
363 |
364 | namespace RuntimeDebugDraw.Internal
365 | {
366 | internal class RuntimeDebugDraw : MonoBehaviour
367 | {
368 | #region Basics
369 | private void CheckInitialized()
370 | {
371 | // as RuntimeDebugDraw component has a very low execution order, other script might Awake()
372 | // earlier than this and at that moment it's not initialized. check and init on every public
373 | // member
374 | if (_drawTextEntries == null)
375 | {
376 | _ZTestBatch = new BatchedLineDraw(depthTest: true);
377 | _AlwaysBatch = new BatchedLineDraw(depthTest: false);
378 | _lineEntries = new List(16);
379 |
380 | _textStyle = new GUIStyle();
381 | _textStyle.alignment = TextAnchor.UpperLeft;
382 | _drawTextEntries = new List(16);
383 | _attachTextEntries = new List(16);
384 | }
385 |
386 | return;
387 | }
388 |
389 | private void Awake()
390 | {
391 | CheckInitialized();
392 |
393 | return;
394 | }
395 |
396 | private void OnGUI()
397 | {
398 | DrawTextOnGUI();
399 |
400 | return;
401 | }
402 |
403 | #if UNITY_EDITOR
404 | private void OnDrawGizmos()
405 | {
406 | DrawTextOnDrawGizmos();
407 |
408 | return;
409 | }
410 | #endif
411 |
412 | private void LateUpdate()
413 | {
414 | TickAndDrawLines();
415 | TickTexts();
416 |
417 | return;
418 | }
419 |
420 | private void OnDestroy()
421 | {
422 | _AlwaysBatch.Dispose();
423 | _ZTestBatch.Dispose();
424 |
425 | return;
426 | }
427 |
428 | private void Clear()
429 | {
430 | _drawTextEntries.Clear();
431 | _lineEntries.Clear();
432 | _linesNeedRebuild = true;
433 |
434 | return;
435 | }
436 | #endregion
437 |
438 | #region Draw Lines
439 | private class DrawLineEntry
440 | {
441 | public bool occupied;
442 | public Vector3 start;
443 | public Vector3 end;
444 | public Color color;
445 | public float timer;
446 | public bool noZTest;
447 | }
448 |
449 | private List _lineEntries;
450 |
451 | // helper class for batching
452 | private class BatchedLineDraw : IDisposable
453 | {
454 | public Mesh mesh;
455 | public Material mat;
456 |
457 | private List _vertices;
458 | private List _colors;
459 | private List _indices;
460 |
461 | public BatchedLineDraw(bool depthTest)
462 | {
463 | mesh = new Mesh();
464 | mesh.MarkDynamic();
465 |
466 | // relying on a builtin shader, but it shouldn't change that much.
467 | mat = new Material(Shader.Find("Hidden/Internal-Colored"));
468 | mat.SetInt("_ZTest", depthTest
469 | ? 4 // LEqual
470 | : 0 // Always
471 | );
472 |
473 | _vertices = new List();
474 | _colors = new List();
475 | _indices = new List();
476 |
477 | return;
478 | }
479 |
480 | public void AddLine(Vector3 from, Vector3 to, Color color)
481 | {
482 | _vertices.Add(from);
483 | _vertices.Add(to);
484 | _colors.Add(color);
485 | _colors.Add(color);
486 | int verticeCount = _vertices.Count;
487 | _indices.Add(verticeCount - 2);
488 | _indices.Add(verticeCount - 1);
489 |
490 | return;
491 | }
492 |
493 | public void Clear()
494 | {
495 | mesh.Clear();
496 | _vertices.Clear();
497 | _colors.Clear();
498 | _indices.Clear();
499 |
500 | return;
501 | }
502 |
503 | public void BuildBatch()
504 | {
505 | mesh.SetVertices(_vertices);
506 | mesh.SetColors(_colors);
507 | mesh.SetIndices(_indices.ToArray(), MeshTopology.Lines, 0); // cant get rid of this alloc for now
508 |
509 | return;
510 | }
511 |
512 | public void Dispose()
513 | {
514 | GameObject.DestroyImmediate(mesh);
515 | GameObject.DestroyImmediate(mat);
516 |
517 | return;
518 | }
519 | }
520 |
521 | private BatchedLineDraw _ZTestBatch;
522 | private BatchedLineDraw _AlwaysBatch;
523 | private bool _linesNeedRebuild;
524 |
525 | public void RegisterLine(Vector3 start, Vector3 end, Color color, float timer, bool noZTest)
526 | {
527 | CheckInitialized();
528 |
529 | DrawLineEntry entry = null;
530 | for (int ix = 0; ix < _lineEntries.Count; ix++)
531 | {
532 | if (!_lineEntries[ix].occupied)
533 | {
534 | entry = _lineEntries[ix];
535 | break;
536 | }
537 | }
538 | if (entry == null)
539 | {
540 | entry = new DrawLineEntry();
541 | _lineEntries.Add(entry);
542 | }
543 |
544 | entry.occupied = true;
545 | entry.start = start;
546 | entry.end = end;
547 | entry.color = color;
548 | entry.timer = timer;
549 | entry.noZTest = noZTest;
550 | _linesNeedRebuild = true;
551 |
552 | return;
553 | }
554 |
555 | private void RebuildDrawLineBatchMesh()
556 | {
557 | _ZTestBatch.Clear();
558 | _AlwaysBatch.Clear();
559 |
560 | for (int ix = 0; ix < _lineEntries.Count; ix++)
561 | {
562 | var entry = _lineEntries[ix];
563 | if (!entry.occupied)
564 | continue;
565 |
566 | if (entry.noZTest)
567 | _AlwaysBatch.AddLine(entry.start, entry.end, entry.color);
568 | else
569 | _ZTestBatch.AddLine(entry.start, entry.end, entry.color);
570 | }
571 |
572 | _ZTestBatch.BuildBatch();
573 | _AlwaysBatch.BuildBatch();
574 |
575 | return;
576 | }
577 |
578 | private void TickAndDrawLines()
579 | {
580 | if (_linesNeedRebuild)
581 | {
582 | RebuildDrawLineBatchMesh();
583 | _linesNeedRebuild = false;
584 | }
585 |
586 | // draw on UI layer which should bypass most postFX setups
587 | Graphics.DrawMesh(_AlwaysBatch.mesh, Vector3.zero, Quaternion.identity, _AlwaysBatch.mat, layer: Draw.DrawLineLayer ,camera : null, submeshIndex : 0,properties: null, castShadows : false, receiveShadows : false);
588 | Graphics.DrawMesh(_ZTestBatch.mesh, Vector3.zero, Quaternion.identity, _ZTestBatch.mat, layer: Draw.DrawLineLayer ,camera : null, submeshIndex : 0,properties: null, castShadows : false, receiveShadows : false);
589 |
590 | // update timer late so every added entry can be drawed for at least one frame
591 | for (int ix = 0; ix < _lineEntries.Count; ix++)
592 | {
593 | var entry = _lineEntries[ix];
594 | if (!entry.occupied)
595 | continue;
596 | entry.timer -= Time.deltaTime;
597 | if (entry.timer < 0)
598 | {
599 | entry.occupied = false;
600 | _linesNeedRebuild = true;
601 | }
602 | }
603 |
604 | return;
605 | }
606 | #endregion
607 |
608 | #region Draw Text
609 | [Flags]
610 | public enum DrawFlag : byte
611 | {
612 | None = 0,
613 | DrawnGizmo = 1 << 0,
614 | DrawnGUI = 1 << 1,
615 | DrawnAll = DrawnGizmo | DrawnGUI
616 | }
617 |
618 | private class DrawTextEntry
619 | {
620 | public bool occupied;
621 | public GUIContent content;
622 | public Vector3 anchor;
623 | public int size;
624 | public Color color;
625 | public float timer;
626 | public bool popUp;
627 | public float duration;
628 |
629 | // Text entries needs to be draw in both OnGUI/OnDrawGizmos, need flags for mark
630 | // has been visited by both
631 | public DrawFlag flag = DrawFlag.None;
632 |
633 | public DrawTextEntry()
634 | {
635 | content = new GUIContent();
636 | return;
637 | }
638 | }
639 |
640 | private class AttachTextEntry
641 | {
642 | public bool occupied;
643 | public GUIContent content;
644 | public Vector3 offset;
645 | public int size;
646 | public Color color;
647 |
648 |
649 | public Transform transform;
650 | public Func strFunc;
651 |
652 | public DrawFlag flag = DrawFlag.None;
653 |
654 | public AttachTextEntry()
655 | {
656 | content = new GUIContent();
657 | return;
658 | }
659 | }
660 |
661 | private List _drawTextEntries;
662 | private List _attachTextEntries;
663 | private GUIStyle _textStyle;
664 |
665 | public void RegisterDrawText(Vector3 anchor, string text, Color color, int size, float timer, bool popUp)
666 | {
667 | CheckInitialized();
668 |
669 | DrawTextEntry entry = null;
670 | for (int ix = 0; ix < _drawTextEntries.Count; ix++)
671 | {
672 | if (!_drawTextEntries[ix].occupied)
673 | {
674 | entry = _drawTextEntries[ix];
675 | break;
676 | }
677 | }
678 | if (entry == null)
679 | {
680 | entry = new DrawTextEntry();
681 | _drawTextEntries.Add(entry);
682 | }
683 |
684 | entry.occupied = true;
685 | entry.anchor = anchor;
686 | entry.content.text = text;
687 | entry.size = size;
688 | entry.color = color;
689 | entry.duration = entry.timer = timer;
690 | entry.popUp = popUp;
691 | #if UNITY_EDITOR
692 | entry.flag = DrawFlag.None;
693 | #else
694 | // in builds consider gizmo is already drawn
695 | entry.flag = DrawFlag.DrawnGizmo;
696 | #endif
697 |
698 | return;
699 | }
700 |
701 | public void RegisterAttachText(Transform target, Func strFunc, Vector3 offset, Color color, int size)
702 | {
703 | CheckInitialized();
704 |
705 | AttachTextEntry entry = null;
706 | for (int ix = 0; ix < _attachTextEntries.Count; ix++)
707 | {
708 | if (!_attachTextEntries[ix].occupied)
709 | {
710 | entry = _attachTextEntries[ix];
711 | break;
712 | }
713 | }
714 | if (entry == null)
715 | {
716 | entry = new AttachTextEntry();
717 | _attachTextEntries.Add(entry);
718 | }
719 |
720 | entry.occupied = true;
721 | entry.offset = offset;
722 | entry.transform = target;
723 | entry.strFunc = strFunc;
724 | entry.color = color;
725 | entry.size = size;
726 | // get first text
727 | entry.content.text = strFunc();
728 | #if UNITY_EDITOR
729 | entry.flag = DrawFlag.None;
730 | #else
731 | // in builds consider gizmo is already drawn
732 | entry.flag = DrawFlag.DrawnGizmo;
733 | #endif
734 |
735 | return;
736 | }
737 |
738 | private void TickTexts()
739 | {
740 | for (int ix = 0; ix < _drawTextEntries.Count; ix++)
741 | {
742 | var entry = _drawTextEntries[ix];
743 | if (!entry.occupied)
744 | continue;
745 | entry.timer -= Time.deltaTime;
746 | if (entry.flag == DrawFlag.DrawnAll)
747 | {
748 | if (entry.timer < 0)
749 | {
750 | entry.occupied = false;
751 | }
752 | // actually no need to tick DrawFlag as it won't move
753 | }
754 | }
755 |
756 | for (int ix = 0; ix < _attachTextEntries.Count; ix++)
757 | {
758 | var entry = _attachTextEntries[ix];
759 | if (!entry.occupied)
760 | continue;
761 | if (entry.transform == null)
762 | {
763 | entry.occupied = false;
764 | entry.strFunc = null; // needs to release ref to callback
765 | }
766 | else if (entry.flag == DrawFlag.DrawnAll)
767 | {
768 | // tick content
769 | entry.content.text = entry.strFunc();
770 | // tick flag
771 | #if UNITY_EDITOR
772 | entry.flag = DrawFlag.None;
773 | #else
774 | // in builds consider gizmo is already drawn
775 | entry.flag = DrawFlag.DrawnGizmo;
776 | #endif
777 | }
778 | }
779 |
780 |
781 | return;
782 | }
783 |
784 | private void DrawTextOnGUI()
785 | {
786 | var camera = Draw.GetDebugDrawCamera();
787 | if (camera == null)
788 | return;
789 |
790 | for (int ix = 0; ix < _drawTextEntries.Count; ix++)
791 | {
792 | var entry = _drawTextEntries[ix];
793 | if (!entry.occupied)
794 | continue;
795 |
796 | GUIDrawTextEntry(camera, entry);
797 | entry.flag |= DrawFlag.DrawnGUI;
798 | }
799 |
800 | for (int ix = 0; ix < _attachTextEntries.Count; ix++)
801 | {
802 | var entry = _attachTextEntries[ix];
803 | if (!entry.occupied)
804 | continue;
805 |
806 | GUIAttachTextEntry(camera, entry);
807 | entry.flag |= DrawFlag.DrawnGUI;
808 | }
809 |
810 | return;
811 | }
812 |
813 | private void GUIDrawTextEntry(Camera camera, DrawTextEntry entry)
814 | {
815 | Vector3 worldPos = entry.anchor;
816 | Vector3 screenPos = camera.WorldToScreenPoint(worldPos);
817 | screenPos.y = Screen.height - screenPos.y;
818 |
819 | if (entry.popUp)
820 | {
821 | float ratio = entry.timer / entry.duration;
822 | screenPos.y -= (1 - ratio * ratio) * entry.size * 1.5f;
823 | }
824 |
825 | _textStyle.normal.textColor = entry.color;
826 | _textStyle.fontSize = entry.size;
827 | Rect rect = new Rect(screenPos, _textStyle.CalcSize(entry.content));
828 | GUI.Label(rect, entry.content, _textStyle);
829 |
830 | return;
831 | }
832 |
833 | private void GUIAttachTextEntry(Camera camera, AttachTextEntry entry)
834 | {
835 | if (entry.transform == null)
836 | return;
837 |
838 | Vector3 worldPos = entry.transform.position + entry.offset;
839 | Vector3 screenPos = camera.WorldToScreenPoint(worldPos);
840 | screenPos.y = Screen.height - screenPos.y;
841 |
842 | _textStyle.normal.textColor = entry.color;
843 | _textStyle.fontSize = entry.size;
844 | Rect rect = new Rect(screenPos, _textStyle.CalcSize(entry.content));
845 | GUI.Label(rect, entry.content, _textStyle);
846 |
847 | return;
848 | }
849 |
850 |
851 | #if UNITY_EDITOR
852 | private void DrawTextOnDrawGizmos()
853 | {
854 | if (!(Camera.current == Draw.GetDebugDrawCamera()
855 | || Camera.current == UnityEditor.SceneView.lastActiveSceneView.camera))
856 | return;
857 |
858 | var camera = Camera.current;
859 | if (camera == null)
860 | return;
861 |
862 | UnityEditor.Handles.BeginGUI();
863 | for (int ix = 0; ix < _drawTextEntries.Count; ix++)
864 | {
865 | var entry = _drawTextEntries[ix];
866 | if (!entry.occupied)
867 | continue;
868 |
869 | GUIDrawTextEntry(camera, entry);
870 | entry.flag |= DrawFlag.DrawnGizmo;
871 | }
872 |
873 | for (int ix = 0; ix < _attachTextEntries.Count; ix++)
874 | {
875 | var entry = _attachTextEntries[ix];
876 | if (!entry.occupied)
877 | continue;
878 |
879 | GUIAttachTextEntry(camera, entry);
880 | entry.flag |= DrawFlag.DrawnGizmo;
881 | }
882 |
883 | UnityEditor.Handles.EndGUI();
884 |
885 | return;
886 | }
887 | #endif
888 | #endregion
889 | }
890 | }
891 |
892 |
--------------------------------------------------------------------------------
/Assets/RuntimeDebugDraw.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 36daa5d9d81eb7647b2fdf99d87e4cdb
3 | timeCreated: 1486890329
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 9990
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Sample.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dba5b8dd486660549a08aff49bebeeb0
3 | folderAsset: yes
4 | timeCreated: 1486888089
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/Sample/Cube.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &138072
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_PrefabParentObject: {fileID: 0}
7 | m_PrefabInternal: {fileID: 100100000}
8 | serializedVersion: 4
9 | m_Component:
10 | - 4: {fileID: 427018}
11 | - 33: {fileID: 3342462}
12 | - 23: {fileID: 2342206}
13 | - 114: {fileID: 11423220}
14 | m_Layer: 0
15 | m_Name: Cube
16 | m_TagString: Untagged
17 | m_Icon: {fileID: 0}
18 | m_NavMeshLayer: 0
19 | m_StaticEditorFlags: 0
20 | m_IsActive: 1
21 | --- !u!4 &427018
22 | Transform:
23 | m_ObjectHideFlags: 1
24 | m_PrefabParentObject: {fileID: 0}
25 | m_PrefabInternal: {fileID: 100100000}
26 | m_GameObject: {fileID: 138072}
27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
28 | m_LocalPosition: {x: 0, y: 0, z: 0}
29 | m_LocalScale: {x: 1, y: 1, z: 1}
30 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
31 | m_Children: []
32 | m_Father: {fileID: 0}
33 | m_RootOrder: 0
34 | --- !u!23 &2342206
35 | MeshRenderer:
36 | m_ObjectHideFlags: 1
37 | m_PrefabParentObject: {fileID: 0}
38 | m_PrefabInternal: {fileID: 100100000}
39 | m_GameObject: {fileID: 138072}
40 | m_Enabled: 1
41 | m_CastShadows: 1
42 | m_ReceiveShadows: 1
43 | m_Materials:
44 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
45 | m_SubsetIndices:
46 | m_StaticBatchRoot: {fileID: 0}
47 | m_UseLightProbes: 1
48 | m_ReflectionProbeUsage: 1
49 | m_ProbeAnchor: {fileID: 0}
50 | m_ScaleInLightmap: 1
51 | m_PreserveUVs: 1
52 | m_IgnoreNormalsForChartDetection: 0
53 | m_ImportantGI: 0
54 | m_MinimumChartSize: 4
55 | m_AutoUVMaxDistance: 0.5
56 | m_AutoUVMaxAngle: 89
57 | m_LightmapParameters: {fileID: 0}
58 | m_SortingLayerID: 0
59 | m_SortingOrder: 0
60 | --- !u!33 &3342462
61 | MeshFilter:
62 | m_ObjectHideFlags: 1
63 | m_PrefabParentObject: {fileID: 0}
64 | m_PrefabInternal: {fileID: 100100000}
65 | m_GameObject: {fileID: 138072}
66 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
67 | --- !u!114 &11423220
68 | MonoBehaviour:
69 | m_ObjectHideFlags: 1
70 | m_PrefabParentObject: {fileID: 0}
71 | m_PrefabInternal: {fileID: 100100000}
72 | m_GameObject: {fileID: 138072}
73 | m_Enabled: 1
74 | m_EditorHideFlags: 0
75 | m_Script: {fileID: 11500000, guid: 98289c2953bfaa045bc9e021c97b79ec, type: 3}
76 | m_Name:
77 | m_EditorClassIdentifier:
78 | --- !u!1001 &100100000
79 | Prefab:
80 | m_ObjectHideFlags: 1
81 | serializedVersion: 2
82 | m_Modification:
83 | m_TransformParent: {fileID: 0}
84 | m_Modifications: []
85 | m_RemovedComponents: []
86 | m_ParentPrefab: {fileID: 0}
87 | m_RootGameObject: {fileID: 138072}
88 | m_IsPrefabParent: 1
89 |
--------------------------------------------------------------------------------
/Assets/Sample/Cube.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 245ff2907b0b1874e97286ae25b62a13
3 | timeCreated: 1486904916
4 | licenseType: Pro
5 | NativeFormatImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Sample/ExampleScript.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using RuntimeDebugDraw;
3 |
4 | public class ExampleScript : MonoBehaviour
5 | {
6 | private Color[] _colors =
7 | {
8 | Color.red,
9 | Color.blue,
10 | Color.cyan,
11 | Color.magenta,
12 | Color.yellow
13 | };
14 | private int _colorIx;
15 |
16 | private float _timer;
17 | private float _intervalTimer;
18 |
19 | private Vector3 _bornPos;
20 | private static float _bornRadianOffset;
21 |
22 | private Color GetNextColor()
23 | {
24 | _colorIx = (_colorIx + 1) % _colors.Length;
25 | return _colors[_colorIx];
26 | }
27 |
28 | private void Awake()
29 | {
30 | _bornPos = transform.position;
31 | _timer = _bornRadianOffset;
32 | _bornRadianOffset += Mathf.PI * 0.3f;
33 |
34 | Draw.AttachText(transform, () => transform.position.y.ToString(), Vector3.up, Color.white, 12);
35 |
36 | return;
37 | }
38 |
39 | private void Update()
40 | {
41 | _timer += Time.deltaTime * 1.5f;
42 |
43 | float dx = Mathf.Cos(_timer) * 5f;
44 | float dy = Mathf.Sin(_timer) * 3f;
45 | transform.position = new Vector3(dx, dy, 0) + _bornPos;
46 |
47 | Draw.DrawText(transform.position, transform.position.ToString(), Color.green, 16, 0f, popUp: false);
48 | Draw.DrawLine(Vector3.zero, transform.position, Color.green, 0f, false);
49 |
50 | _intervalTimer += Time.deltaTime;
51 |
52 | if (_intervalTimer > 0.3f)
53 | {
54 | Draw.DrawText(transform.position, Time.frameCount.ToString(), GetNextColor(), 16, 0.5f, popUp: true);
55 | Draw.DrawLine(transform.position, transform.position + Vector3.up * 1.5f, GetNextColor(), 0.5f, true);
56 | _intervalTimer = 0f;
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/Assets/Sample/ExampleScript.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 98289c2953bfaa045bc9e021c97b79ec
3 | timeCreated: 1486901940
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/Sample/SampleScene.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | SceneSettings:
5 | m_ObjectHideFlags: 0
6 | m_PVSData:
7 | m_PVSObjectsArray: []
8 | m_PVSPortalsArray: []
9 | m_OcclusionBakeSettings:
10 | smallestOccluder: 5
11 | smallestHole: 0.25
12 | backfaceThreshold: 100
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 6
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 0
28 | m_SkyboxMaterial: {fileID: 0}
29 | m_HaloStrength: 0.5
30 | m_FlareStrength: 1
31 | m_FlareFadeSpeed: 3
32 | m_HaloTexture: {fileID: 0}
33 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
34 | m_DefaultReflectionMode: 0
35 | m_DefaultReflectionResolution: 128
36 | m_ReflectionBounces: 1
37 | m_ReflectionIntensity: 1
38 | m_CustomReflection: {fileID: 0}
39 | m_Sun: {fileID: 0}
40 | --- !u!157 &3
41 | LightmapSettings:
42 | m_ObjectHideFlags: 0
43 | serializedVersion: 6
44 | m_GIWorkflowMode: 0
45 | m_LightmapsMode: 1
46 | m_GISettings:
47 | serializedVersion: 2
48 | m_BounceScale: 1
49 | m_IndirectOutputScale: 1
50 | m_AlbedoBoost: 1
51 | m_TemporalCoherenceThreshold: 1
52 | m_EnvironmentLightingMode: 0
53 | m_EnableBakedLightmaps: 1
54 | m_EnableRealtimeLightmaps: 1
55 | m_LightmapEditorSettings:
56 | serializedVersion: 3
57 | m_Resolution: 2
58 | m_BakeResolution: 40
59 | m_TextureWidth: 1024
60 | m_TextureHeight: 1024
61 | m_AOMaxDistance: 1
62 | m_Padding: 2
63 | m_CompAOExponent: 0
64 | m_LightmapParameters: {fileID: 0}
65 | m_TextureCompression: 1
66 | m_FinalGather: 0
67 | m_FinalGatherRayCount: 1024
68 | m_ReflectionCompression: 2
69 | m_LightingDataAsset: {fileID: 0}
70 | m_RuntimeCPUUsage: 25
71 | --- !u!196 &4
72 | NavMeshSettings:
73 | serializedVersion: 2
74 | m_ObjectHideFlags: 0
75 | m_BuildSettings:
76 | serializedVersion: 2
77 | agentRadius: 0.5
78 | agentHeight: 2
79 | agentSlope: 45
80 | agentClimb: 0.4
81 | ledgeDropHeight: 0
82 | maxJumpAcrossDistance: 0
83 | accuratePlacement: 0
84 | minRegionArea: 2
85 | cellSize: 0.16666667
86 | manualCellSize: 0
87 | m_NavMeshData: {fileID: 0}
88 | --- !u!1 &67709925
89 | GameObject:
90 | m_ObjectHideFlags: 0
91 | m_PrefabParentObject: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
92 | m_PrefabInternal: {fileID: 2051217410}
93 | serializedVersion: 4
94 | m_Component:
95 | - 4: {fileID: 67709929}
96 | - 33: {fileID: 67709928}
97 | - 23: {fileID: 67709927}
98 | - 114: {fileID: 67709926}
99 | m_Layer: 0
100 | m_Name: Cube (9)
101 | m_TagString: Untagged
102 | m_Icon: {fileID: 0}
103 | m_NavMeshLayer: 0
104 | m_StaticEditorFlags: 0
105 | m_IsActive: 1
106 | --- !u!114 &67709926
107 | MonoBehaviour:
108 | m_ObjectHideFlags: 0
109 | m_PrefabParentObject: {fileID: 11423220, guid: 245ff2907b0b1874e97286ae25b62a13,
110 | type: 2}
111 | m_PrefabInternal: {fileID: 2051217410}
112 | m_GameObject: {fileID: 67709925}
113 | m_Enabled: 1
114 | m_EditorHideFlags: 0
115 | m_Script: {fileID: 11500000, guid: 98289c2953bfaa045bc9e021c97b79ec, type: 3}
116 | m_Name:
117 | m_EditorClassIdentifier:
118 | --- !u!23 &67709927
119 | MeshRenderer:
120 | m_ObjectHideFlags: 0
121 | m_PrefabParentObject: {fileID: 2342206, guid: 245ff2907b0b1874e97286ae25b62a13,
122 | type: 2}
123 | m_PrefabInternal: {fileID: 2051217410}
124 | m_GameObject: {fileID: 67709925}
125 | m_Enabled: 1
126 | m_CastShadows: 1
127 | m_ReceiveShadows: 1
128 | m_Materials:
129 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
130 | m_SubsetIndices:
131 | m_StaticBatchRoot: {fileID: 0}
132 | m_UseLightProbes: 1
133 | m_ReflectionProbeUsage: 1
134 | m_ProbeAnchor: {fileID: 0}
135 | m_ScaleInLightmap: 1
136 | m_PreserveUVs: 1
137 | m_IgnoreNormalsForChartDetection: 0
138 | m_ImportantGI: 0
139 | m_MinimumChartSize: 4
140 | m_AutoUVMaxDistance: 0.5
141 | m_AutoUVMaxAngle: 89
142 | m_LightmapParameters: {fileID: 0}
143 | m_SortingLayerID: 0
144 | m_SortingOrder: 0
145 | --- !u!33 &67709928
146 | MeshFilter:
147 | m_ObjectHideFlags: 0
148 | m_PrefabParentObject: {fileID: 3342462, guid: 245ff2907b0b1874e97286ae25b62a13,
149 | type: 2}
150 | m_PrefabInternal: {fileID: 2051217410}
151 | m_GameObject: {fileID: 67709925}
152 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
153 | --- !u!4 &67709929
154 | Transform:
155 | m_ObjectHideFlags: 0
156 | m_PrefabParentObject: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
157 | m_PrefabInternal: {fileID: 2051217410}
158 | m_GameObject: {fileID: 67709925}
159 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
160 | m_LocalPosition: {x: 0, y: 0, z: 0}
161 | m_LocalScale: {x: 1, y: 1, z: 1}
162 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
163 | m_Children: []
164 | m_Father: {fileID: 0}
165 | m_RootOrder: 11
166 | --- !u!1001 &279266551
167 | Prefab:
168 | m_ObjectHideFlags: 0
169 | serializedVersion: 2
170 | m_Modification:
171 | m_TransformParent: {fileID: 0}
172 | m_Modifications:
173 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
174 | propertyPath: m_LocalPosition.x
175 | value: 0
176 | objectReference: {fileID: 0}
177 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
178 | propertyPath: m_LocalPosition.y
179 | value: 0
180 | objectReference: {fileID: 0}
181 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
182 | propertyPath: m_LocalPosition.z
183 | value: 0
184 | objectReference: {fileID: 0}
185 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
186 | propertyPath: m_LocalRotation.x
187 | value: 0
188 | objectReference: {fileID: 0}
189 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
190 | propertyPath: m_LocalRotation.y
191 | value: 0
192 | objectReference: {fileID: 0}
193 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
194 | propertyPath: m_LocalRotation.z
195 | value: 0
196 | objectReference: {fileID: 0}
197 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
198 | propertyPath: m_LocalRotation.w
199 | value: 1
200 | objectReference: {fileID: 0}
201 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
202 | propertyPath: m_RootOrder
203 | value: 8
204 | objectReference: {fileID: 0}
205 | - target: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
206 | propertyPath: m_Name
207 | value: Cube (6)
208 | objectReference: {fileID: 0}
209 | m_RemovedComponents: []
210 | m_ParentPrefab: {fileID: 100100000, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
211 | m_RootGameObject: {fileID: 700192993}
212 | m_IsPrefabParent: 0
213 | --- !u!1001 &296427004
214 | Prefab:
215 | m_ObjectHideFlags: 0
216 | serializedVersion: 2
217 | m_Modification:
218 | m_TransformParent: {fileID: 0}
219 | m_Modifications:
220 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
221 | propertyPath: m_LocalPosition.x
222 | value: 0
223 | objectReference: {fileID: 0}
224 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
225 | propertyPath: m_LocalPosition.y
226 | value: 0
227 | objectReference: {fileID: 0}
228 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
229 | propertyPath: m_LocalPosition.z
230 | value: 0
231 | objectReference: {fileID: 0}
232 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
233 | propertyPath: m_LocalRotation.x
234 | value: 0
235 | objectReference: {fileID: 0}
236 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
237 | propertyPath: m_LocalRotation.y
238 | value: 0
239 | objectReference: {fileID: 0}
240 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
241 | propertyPath: m_LocalRotation.z
242 | value: 0
243 | objectReference: {fileID: 0}
244 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
245 | propertyPath: m_LocalRotation.w
246 | value: 1
247 | objectReference: {fileID: 0}
248 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
249 | propertyPath: m_RootOrder
250 | value: 5
251 | objectReference: {fileID: 0}
252 | - target: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
253 | propertyPath: m_Name
254 | value: Cube (3)
255 | objectReference: {fileID: 0}
256 | m_RemovedComponents: []
257 | m_ParentPrefab: {fileID: 100100000, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
258 | m_RootGameObject: {fileID: 1778822981}
259 | m_IsPrefabParent: 0
260 | --- !u!1 &414310476
261 | GameObject:
262 | m_ObjectHideFlags: 0
263 | m_PrefabParentObject: {fileID: 0}
264 | m_PrefabInternal: {fileID: 0}
265 | serializedVersion: 4
266 | m_Component:
267 | - 4: {fileID: 414310478}
268 | - 108: {fileID: 414310477}
269 | m_Layer: 0
270 | m_Name: Directional Light
271 | m_TagString: Untagged
272 | m_Icon: {fileID: 0}
273 | m_NavMeshLayer: 0
274 | m_StaticEditorFlags: 0
275 | m_IsActive: 1
276 | --- !u!108 &414310477
277 | Light:
278 | m_ObjectHideFlags: 0
279 | m_PrefabParentObject: {fileID: 0}
280 | m_PrefabInternal: {fileID: 0}
281 | m_GameObject: {fileID: 414310476}
282 | m_Enabled: 1
283 | serializedVersion: 6
284 | m_Type: 1
285 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
286 | m_Intensity: 1
287 | m_Range: 10
288 | m_SpotAngle: 30
289 | m_CookieSize: 10
290 | m_Shadows:
291 | m_Type: 2
292 | m_Resolution: -1
293 | m_Strength: 1
294 | m_Bias: 0.05
295 | m_NormalBias: 0.4
296 | m_NearPlane: 0.2
297 | m_Cookie: {fileID: 0}
298 | m_DrawHalo: 0
299 | m_Flare: {fileID: 0}
300 | m_RenderMode: 0
301 | m_CullingMask:
302 | serializedVersion: 2
303 | m_Bits: 4294967295
304 | m_Lightmapping: 4
305 | m_BounceIntensity: 1
306 | m_ShadowRadius: 0
307 | m_ShadowAngle: 0
308 | m_AreaSize: {x: 1, y: 1}
309 | --- !u!4 &414310478
310 | Transform:
311 | m_ObjectHideFlags: 0
312 | m_PrefabParentObject: {fileID: 0}
313 | m_PrefabInternal: {fileID: 0}
314 | m_GameObject: {fileID: 414310476}
315 | m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605}
316 | m_LocalPosition: {x: 0, y: 3, z: 0}
317 | m_LocalScale: {x: 1, y: 1, z: 1}
318 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
319 | m_Children: []
320 | m_Father: {fileID: 0}
321 | m_RootOrder: 1
322 | --- !u!1 &590662132
323 | GameObject:
324 | m_ObjectHideFlags: 0
325 | m_PrefabParentObject: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
326 | m_PrefabInternal: {fileID: 731079106}
327 | serializedVersion: 4
328 | m_Component:
329 | - 4: {fileID: 590662136}
330 | - 33: {fileID: 590662135}
331 | - 23: {fileID: 590662134}
332 | - 114: {fileID: 590662133}
333 | m_Layer: 0
334 | m_Name: Cube (2)
335 | m_TagString: Untagged
336 | m_Icon: {fileID: 0}
337 | m_NavMeshLayer: 0
338 | m_StaticEditorFlags: 0
339 | m_IsActive: 1
340 | --- !u!114 &590662133
341 | MonoBehaviour:
342 | m_ObjectHideFlags: 0
343 | m_PrefabParentObject: {fileID: 11423220, guid: 245ff2907b0b1874e97286ae25b62a13,
344 | type: 2}
345 | m_PrefabInternal: {fileID: 731079106}
346 | m_GameObject: {fileID: 590662132}
347 | m_Enabled: 1
348 | m_EditorHideFlags: 0
349 | m_Script: {fileID: 11500000, guid: 98289c2953bfaa045bc9e021c97b79ec, type: 3}
350 | m_Name:
351 | m_EditorClassIdentifier:
352 | --- !u!23 &590662134
353 | MeshRenderer:
354 | m_ObjectHideFlags: 0
355 | m_PrefabParentObject: {fileID: 2342206, guid: 245ff2907b0b1874e97286ae25b62a13,
356 | type: 2}
357 | m_PrefabInternal: {fileID: 731079106}
358 | m_GameObject: {fileID: 590662132}
359 | m_Enabled: 1
360 | m_CastShadows: 1
361 | m_ReceiveShadows: 1
362 | m_Materials:
363 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
364 | m_SubsetIndices:
365 | m_StaticBatchRoot: {fileID: 0}
366 | m_UseLightProbes: 1
367 | m_ReflectionProbeUsage: 1
368 | m_ProbeAnchor: {fileID: 0}
369 | m_ScaleInLightmap: 1
370 | m_PreserveUVs: 1
371 | m_IgnoreNormalsForChartDetection: 0
372 | m_ImportantGI: 0
373 | m_MinimumChartSize: 4
374 | m_AutoUVMaxDistance: 0.5
375 | m_AutoUVMaxAngle: 89
376 | m_LightmapParameters: {fileID: 0}
377 | m_SortingLayerID: 0
378 | m_SortingOrder: 0
379 | --- !u!33 &590662135
380 | MeshFilter:
381 | m_ObjectHideFlags: 0
382 | m_PrefabParentObject: {fileID: 3342462, guid: 245ff2907b0b1874e97286ae25b62a13,
383 | type: 2}
384 | m_PrefabInternal: {fileID: 731079106}
385 | m_GameObject: {fileID: 590662132}
386 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
387 | --- !u!4 &590662136
388 | Transform:
389 | m_ObjectHideFlags: 0
390 | m_PrefabParentObject: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
391 | m_PrefabInternal: {fileID: 731079106}
392 | m_GameObject: {fileID: 590662132}
393 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
394 | m_LocalPosition: {x: 0, y: 0, z: 0}
395 | m_LocalScale: {x: 1, y: 1, z: 1}
396 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
397 | m_Children: []
398 | m_Father: {fileID: 0}
399 | m_RootOrder: 4
400 | --- !u!1 &602462429
401 | GameObject:
402 | m_ObjectHideFlags: 0
403 | m_PrefabParentObject: {fileID: 0}
404 | m_PrefabInternal: {fileID: 0}
405 | serializedVersion: 4
406 | m_Component:
407 | - 4: {fileID: 602462434}
408 | - 20: {fileID: 602462433}
409 | - 92: {fileID: 602462432}
410 | - 124: {fileID: 602462431}
411 | - 81: {fileID: 602462430}
412 | m_Layer: 0
413 | m_Name: Main Camera
414 | m_TagString: MainCamera
415 | m_Icon: {fileID: 0}
416 | m_NavMeshLayer: 0
417 | m_StaticEditorFlags: 0
418 | m_IsActive: 1
419 | --- !u!81 &602462430
420 | AudioListener:
421 | m_ObjectHideFlags: 0
422 | m_PrefabParentObject: {fileID: 0}
423 | m_PrefabInternal: {fileID: 0}
424 | m_GameObject: {fileID: 602462429}
425 | m_Enabled: 1
426 | --- !u!124 &602462431
427 | Behaviour:
428 | m_ObjectHideFlags: 0
429 | m_PrefabParentObject: {fileID: 0}
430 | m_PrefabInternal: {fileID: 0}
431 | m_GameObject: {fileID: 602462429}
432 | m_Enabled: 1
433 | --- !u!92 &602462432
434 | Behaviour:
435 | m_ObjectHideFlags: 0
436 | m_PrefabParentObject: {fileID: 0}
437 | m_PrefabInternal: {fileID: 0}
438 | m_GameObject: {fileID: 602462429}
439 | m_Enabled: 1
440 | --- !u!20 &602462433
441 | Camera:
442 | m_ObjectHideFlags: 0
443 | m_PrefabParentObject: {fileID: 0}
444 | m_PrefabInternal: {fileID: 0}
445 | m_GameObject: {fileID: 602462429}
446 | m_Enabled: 1
447 | serializedVersion: 2
448 | m_ClearFlags: 1
449 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
450 | m_NormalizedViewPortRect:
451 | serializedVersion: 2
452 | x: 0
453 | y: 0
454 | width: 1
455 | height: 1
456 | near clip plane: 0.3
457 | far clip plane: 1000
458 | field of view: 60
459 | orthographic: 0
460 | orthographic size: 5
461 | m_Depth: -1
462 | m_CullingMask:
463 | serializedVersion: 2
464 | m_Bits: 4294967295
465 | m_RenderingPath: -1
466 | m_TargetTexture: {fileID: 0}
467 | m_TargetDisplay: 0
468 | m_TargetEye: 3
469 | m_HDR: 0
470 | m_OcclusionCulling: 1
471 | m_StereoConvergence: 10
472 | m_StereoSeparation: 0.022
473 | m_StereoMirrorMode: 0
474 | --- !u!4 &602462434
475 | Transform:
476 | m_ObjectHideFlags: 0
477 | m_PrefabParentObject: {fileID: 0}
478 | m_PrefabInternal: {fileID: 0}
479 | m_GameObject: {fileID: 602462429}
480 | m_LocalRotation: {x: 0.099340685, y: 0.3919934, z: -0.042621665, w: 0.9135951}
481 | m_LocalPosition: {x: -6.63, y: 2.02, z: -5.03}
482 | m_LocalScale: {x: 1, y: 1, z: 1}
483 | m_LocalEulerAnglesHint: {x: 12.4114, y: 46.445198, z: 0.0002}
484 | m_Children: []
485 | m_Father: {fileID: 0}
486 | m_RootOrder: 0
487 | --- !u!1001 &643371833
488 | Prefab:
489 | m_ObjectHideFlags: 0
490 | serializedVersion: 2
491 | m_Modification:
492 | m_TransformParent: {fileID: 0}
493 | m_Modifications:
494 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
495 | propertyPath: m_LocalPosition.x
496 | value: 0
497 | objectReference: {fileID: 0}
498 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
499 | propertyPath: m_LocalPosition.y
500 | value: 0
501 | objectReference: {fileID: 0}
502 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
503 | propertyPath: m_LocalPosition.z
504 | value: 0
505 | objectReference: {fileID: 0}
506 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
507 | propertyPath: m_LocalRotation.x
508 | value: 0
509 | objectReference: {fileID: 0}
510 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
511 | propertyPath: m_LocalRotation.y
512 | value: 0
513 | objectReference: {fileID: 0}
514 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
515 | propertyPath: m_LocalRotation.z
516 | value: 0
517 | objectReference: {fileID: 0}
518 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
519 | propertyPath: m_LocalRotation.w
520 | value: 1
521 | objectReference: {fileID: 0}
522 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
523 | propertyPath: m_RootOrder
524 | value: 9
525 | objectReference: {fileID: 0}
526 | - target: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
527 | propertyPath: m_Name
528 | value: Cube (7)
529 | objectReference: {fileID: 0}
530 | m_RemovedComponents: []
531 | m_ParentPrefab: {fileID: 100100000, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
532 | m_RootGameObject: {fileID: 688380986}
533 | m_IsPrefabParent: 0
534 | --- !u!1 &688380986
535 | GameObject:
536 | m_ObjectHideFlags: 0
537 | m_PrefabParentObject: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
538 | m_PrefabInternal: {fileID: 643371833}
539 | serializedVersion: 4
540 | m_Component:
541 | - 4: {fileID: 688380990}
542 | - 33: {fileID: 688380989}
543 | - 23: {fileID: 688380988}
544 | - 114: {fileID: 688380987}
545 | m_Layer: 0
546 | m_Name: Cube (7)
547 | m_TagString: Untagged
548 | m_Icon: {fileID: 0}
549 | m_NavMeshLayer: 0
550 | m_StaticEditorFlags: 0
551 | m_IsActive: 1
552 | --- !u!114 &688380987
553 | MonoBehaviour:
554 | m_ObjectHideFlags: 0
555 | m_PrefabParentObject: {fileID: 11423220, guid: 245ff2907b0b1874e97286ae25b62a13,
556 | type: 2}
557 | m_PrefabInternal: {fileID: 643371833}
558 | m_GameObject: {fileID: 688380986}
559 | m_Enabled: 1
560 | m_EditorHideFlags: 0
561 | m_Script: {fileID: 11500000, guid: 98289c2953bfaa045bc9e021c97b79ec, type: 3}
562 | m_Name:
563 | m_EditorClassIdentifier:
564 | --- !u!23 &688380988
565 | MeshRenderer:
566 | m_ObjectHideFlags: 0
567 | m_PrefabParentObject: {fileID: 2342206, guid: 245ff2907b0b1874e97286ae25b62a13,
568 | type: 2}
569 | m_PrefabInternal: {fileID: 643371833}
570 | m_GameObject: {fileID: 688380986}
571 | m_Enabled: 1
572 | m_CastShadows: 1
573 | m_ReceiveShadows: 1
574 | m_Materials:
575 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
576 | m_SubsetIndices:
577 | m_StaticBatchRoot: {fileID: 0}
578 | m_UseLightProbes: 1
579 | m_ReflectionProbeUsage: 1
580 | m_ProbeAnchor: {fileID: 0}
581 | m_ScaleInLightmap: 1
582 | m_PreserveUVs: 1
583 | m_IgnoreNormalsForChartDetection: 0
584 | m_ImportantGI: 0
585 | m_MinimumChartSize: 4
586 | m_AutoUVMaxDistance: 0.5
587 | m_AutoUVMaxAngle: 89
588 | m_LightmapParameters: {fileID: 0}
589 | m_SortingLayerID: 0
590 | m_SortingOrder: 0
591 | --- !u!33 &688380989
592 | MeshFilter:
593 | m_ObjectHideFlags: 0
594 | m_PrefabParentObject: {fileID: 3342462, guid: 245ff2907b0b1874e97286ae25b62a13,
595 | type: 2}
596 | m_PrefabInternal: {fileID: 643371833}
597 | m_GameObject: {fileID: 688380986}
598 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
599 | --- !u!4 &688380990
600 | Transform:
601 | m_ObjectHideFlags: 0
602 | m_PrefabParentObject: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
603 | m_PrefabInternal: {fileID: 643371833}
604 | m_GameObject: {fileID: 688380986}
605 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
606 | m_LocalPosition: {x: 0, y: 0, z: 0}
607 | m_LocalScale: {x: 1, y: 1, z: 1}
608 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
609 | m_Children: []
610 | m_Father: {fileID: 0}
611 | m_RootOrder: 9
612 | --- !u!1 &700192993
613 | GameObject:
614 | m_ObjectHideFlags: 0
615 | m_PrefabParentObject: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
616 | m_PrefabInternal: {fileID: 279266551}
617 | serializedVersion: 4
618 | m_Component:
619 | - 4: {fileID: 700192997}
620 | - 33: {fileID: 700192996}
621 | - 23: {fileID: 700192995}
622 | - 114: {fileID: 700192994}
623 | m_Layer: 0
624 | m_Name: Cube (6)
625 | m_TagString: Untagged
626 | m_Icon: {fileID: 0}
627 | m_NavMeshLayer: 0
628 | m_StaticEditorFlags: 0
629 | m_IsActive: 1
630 | --- !u!114 &700192994
631 | MonoBehaviour:
632 | m_ObjectHideFlags: 0
633 | m_PrefabParentObject: {fileID: 11423220, guid: 245ff2907b0b1874e97286ae25b62a13,
634 | type: 2}
635 | m_PrefabInternal: {fileID: 279266551}
636 | m_GameObject: {fileID: 700192993}
637 | m_Enabled: 1
638 | m_EditorHideFlags: 0
639 | m_Script: {fileID: 11500000, guid: 98289c2953bfaa045bc9e021c97b79ec, type: 3}
640 | m_Name:
641 | m_EditorClassIdentifier:
642 | --- !u!23 &700192995
643 | MeshRenderer:
644 | m_ObjectHideFlags: 0
645 | m_PrefabParentObject: {fileID: 2342206, guid: 245ff2907b0b1874e97286ae25b62a13,
646 | type: 2}
647 | m_PrefabInternal: {fileID: 279266551}
648 | m_GameObject: {fileID: 700192993}
649 | m_Enabled: 1
650 | m_CastShadows: 1
651 | m_ReceiveShadows: 1
652 | m_Materials:
653 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
654 | m_SubsetIndices:
655 | m_StaticBatchRoot: {fileID: 0}
656 | m_UseLightProbes: 1
657 | m_ReflectionProbeUsage: 1
658 | m_ProbeAnchor: {fileID: 0}
659 | m_ScaleInLightmap: 1
660 | m_PreserveUVs: 1
661 | m_IgnoreNormalsForChartDetection: 0
662 | m_ImportantGI: 0
663 | m_MinimumChartSize: 4
664 | m_AutoUVMaxDistance: 0.5
665 | m_AutoUVMaxAngle: 89
666 | m_LightmapParameters: {fileID: 0}
667 | m_SortingLayerID: 0
668 | m_SortingOrder: 0
669 | --- !u!33 &700192996
670 | MeshFilter:
671 | m_ObjectHideFlags: 0
672 | m_PrefabParentObject: {fileID: 3342462, guid: 245ff2907b0b1874e97286ae25b62a13,
673 | type: 2}
674 | m_PrefabInternal: {fileID: 279266551}
675 | m_GameObject: {fileID: 700192993}
676 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
677 | --- !u!4 &700192997
678 | Transform:
679 | m_ObjectHideFlags: 0
680 | m_PrefabParentObject: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
681 | m_PrefabInternal: {fileID: 279266551}
682 | m_GameObject: {fileID: 700192993}
683 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
684 | m_LocalPosition: {x: 0, y: 0, z: 0}
685 | m_LocalScale: {x: 1, y: 1, z: 1}
686 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
687 | m_Children: []
688 | m_Father: {fileID: 0}
689 | m_RootOrder: 8
690 | --- !u!1001 &731079106
691 | Prefab:
692 | m_ObjectHideFlags: 0
693 | serializedVersion: 2
694 | m_Modification:
695 | m_TransformParent: {fileID: 0}
696 | m_Modifications:
697 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
698 | propertyPath: m_LocalPosition.x
699 | value: 0
700 | objectReference: {fileID: 0}
701 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
702 | propertyPath: m_LocalPosition.y
703 | value: 0
704 | objectReference: {fileID: 0}
705 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
706 | propertyPath: m_LocalPosition.z
707 | value: 0
708 | objectReference: {fileID: 0}
709 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
710 | propertyPath: m_LocalRotation.x
711 | value: 0
712 | objectReference: {fileID: 0}
713 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
714 | propertyPath: m_LocalRotation.y
715 | value: 0
716 | objectReference: {fileID: 0}
717 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
718 | propertyPath: m_LocalRotation.z
719 | value: 0
720 | objectReference: {fileID: 0}
721 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
722 | propertyPath: m_LocalRotation.w
723 | value: 1
724 | objectReference: {fileID: 0}
725 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
726 | propertyPath: m_RootOrder
727 | value: 4
728 | objectReference: {fileID: 0}
729 | - target: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
730 | propertyPath: m_Name
731 | value: Cube (2)
732 | objectReference: {fileID: 0}
733 | m_RemovedComponents: []
734 | m_ParentPrefab: {fileID: 100100000, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
735 | m_RootGameObject: {fileID: 590662132}
736 | m_IsPrefabParent: 0
737 | --- !u!1 &988446500
738 | GameObject:
739 | m_ObjectHideFlags: 0
740 | m_PrefabParentObject: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
741 | m_PrefabInternal: {fileID: 1595590369}
742 | serializedVersion: 4
743 | m_Component:
744 | - 4: {fileID: 988446504}
745 | - 33: {fileID: 988446503}
746 | - 23: {fileID: 988446502}
747 | - 114: {fileID: 988446501}
748 | m_Layer: 0
749 | m_Name: Cube
750 | m_TagString: Untagged
751 | m_Icon: {fileID: 0}
752 | m_NavMeshLayer: 0
753 | m_StaticEditorFlags: 0
754 | m_IsActive: 1
755 | --- !u!114 &988446501
756 | MonoBehaviour:
757 | m_ObjectHideFlags: 0
758 | m_PrefabParentObject: {fileID: 11423220, guid: 245ff2907b0b1874e97286ae25b62a13,
759 | type: 2}
760 | m_PrefabInternal: {fileID: 1595590369}
761 | m_GameObject: {fileID: 988446500}
762 | m_Enabled: 1
763 | m_EditorHideFlags: 0
764 | m_Script: {fileID: 11500000, guid: 98289c2953bfaa045bc9e021c97b79ec, type: 3}
765 | m_Name:
766 | m_EditorClassIdentifier:
767 | --- !u!23 &988446502
768 | MeshRenderer:
769 | m_ObjectHideFlags: 0
770 | m_PrefabParentObject: {fileID: 2342206, guid: 245ff2907b0b1874e97286ae25b62a13,
771 | type: 2}
772 | m_PrefabInternal: {fileID: 1595590369}
773 | m_GameObject: {fileID: 988446500}
774 | m_Enabled: 1
775 | m_CastShadows: 1
776 | m_ReceiveShadows: 1
777 | m_Materials:
778 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
779 | m_SubsetIndices:
780 | m_StaticBatchRoot: {fileID: 0}
781 | m_UseLightProbes: 1
782 | m_ReflectionProbeUsage: 1
783 | m_ProbeAnchor: {fileID: 0}
784 | m_ScaleInLightmap: 1
785 | m_PreserveUVs: 1
786 | m_IgnoreNormalsForChartDetection: 0
787 | m_ImportantGI: 0
788 | m_MinimumChartSize: 4
789 | m_AutoUVMaxDistance: 0.5
790 | m_AutoUVMaxAngle: 89
791 | m_LightmapParameters: {fileID: 0}
792 | m_SortingLayerID: 0
793 | m_SortingOrder: 0
794 | --- !u!33 &988446503
795 | MeshFilter:
796 | m_ObjectHideFlags: 0
797 | m_PrefabParentObject: {fileID: 3342462, guid: 245ff2907b0b1874e97286ae25b62a13,
798 | type: 2}
799 | m_PrefabInternal: {fileID: 1595590369}
800 | m_GameObject: {fileID: 988446500}
801 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
802 | --- !u!4 &988446504
803 | Transform:
804 | m_ObjectHideFlags: 0
805 | m_PrefabParentObject: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
806 | m_PrefabInternal: {fileID: 1595590369}
807 | m_GameObject: {fileID: 988446500}
808 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
809 | m_LocalPosition: {x: 0, y: 0, z: 0}
810 | m_LocalScale: {x: 1, y: 1, z: 1}
811 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
812 | m_Children: []
813 | m_Father: {fileID: 0}
814 | m_RootOrder: 2
815 | --- !u!1 &1022666670
816 | GameObject:
817 | m_ObjectHideFlags: 0
818 | m_PrefabParentObject: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
819 | m_PrefabInternal: {fileID: 2076102233}
820 | serializedVersion: 4
821 | m_Component:
822 | - 4: {fileID: 1022666674}
823 | - 33: {fileID: 1022666673}
824 | - 23: {fileID: 1022666672}
825 | - 114: {fileID: 1022666671}
826 | m_Layer: 0
827 | m_Name: Cube (8)
828 | m_TagString: Untagged
829 | m_Icon: {fileID: 0}
830 | m_NavMeshLayer: 0
831 | m_StaticEditorFlags: 0
832 | m_IsActive: 1
833 | --- !u!114 &1022666671
834 | MonoBehaviour:
835 | m_ObjectHideFlags: 0
836 | m_PrefabParentObject: {fileID: 11423220, guid: 245ff2907b0b1874e97286ae25b62a13,
837 | type: 2}
838 | m_PrefabInternal: {fileID: 2076102233}
839 | m_GameObject: {fileID: 1022666670}
840 | m_Enabled: 1
841 | m_EditorHideFlags: 0
842 | m_Script: {fileID: 11500000, guid: 98289c2953bfaa045bc9e021c97b79ec, type: 3}
843 | m_Name:
844 | m_EditorClassIdentifier:
845 | --- !u!23 &1022666672
846 | MeshRenderer:
847 | m_ObjectHideFlags: 0
848 | m_PrefabParentObject: {fileID: 2342206, guid: 245ff2907b0b1874e97286ae25b62a13,
849 | type: 2}
850 | m_PrefabInternal: {fileID: 2076102233}
851 | m_GameObject: {fileID: 1022666670}
852 | m_Enabled: 1
853 | m_CastShadows: 1
854 | m_ReceiveShadows: 1
855 | m_Materials:
856 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
857 | m_SubsetIndices:
858 | m_StaticBatchRoot: {fileID: 0}
859 | m_UseLightProbes: 1
860 | m_ReflectionProbeUsage: 1
861 | m_ProbeAnchor: {fileID: 0}
862 | m_ScaleInLightmap: 1
863 | m_PreserveUVs: 1
864 | m_IgnoreNormalsForChartDetection: 0
865 | m_ImportantGI: 0
866 | m_MinimumChartSize: 4
867 | m_AutoUVMaxDistance: 0.5
868 | m_AutoUVMaxAngle: 89
869 | m_LightmapParameters: {fileID: 0}
870 | m_SortingLayerID: 0
871 | m_SortingOrder: 0
872 | --- !u!33 &1022666673
873 | MeshFilter:
874 | m_ObjectHideFlags: 0
875 | m_PrefabParentObject: {fileID: 3342462, guid: 245ff2907b0b1874e97286ae25b62a13,
876 | type: 2}
877 | m_PrefabInternal: {fileID: 2076102233}
878 | m_GameObject: {fileID: 1022666670}
879 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
880 | --- !u!4 &1022666674
881 | Transform:
882 | m_ObjectHideFlags: 0
883 | m_PrefabParentObject: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
884 | m_PrefabInternal: {fileID: 2076102233}
885 | m_GameObject: {fileID: 1022666670}
886 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
887 | m_LocalPosition: {x: 0, y: 0, z: 0}
888 | m_LocalScale: {x: 1, y: 1, z: 1}
889 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
890 | m_Children: []
891 | m_Father: {fileID: 0}
892 | m_RootOrder: 10
893 | --- !u!1001 &1595590369
894 | Prefab:
895 | m_ObjectHideFlags: 0
896 | serializedVersion: 2
897 | m_Modification:
898 | m_TransformParent: {fileID: 0}
899 | m_Modifications:
900 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
901 | propertyPath: m_LocalPosition.x
902 | value: 0
903 | objectReference: {fileID: 0}
904 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
905 | propertyPath: m_LocalPosition.y
906 | value: 0
907 | objectReference: {fileID: 0}
908 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
909 | propertyPath: m_LocalPosition.z
910 | value: 0
911 | objectReference: {fileID: 0}
912 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
913 | propertyPath: m_LocalRotation.x
914 | value: 0
915 | objectReference: {fileID: 0}
916 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
917 | propertyPath: m_LocalRotation.y
918 | value: 0
919 | objectReference: {fileID: 0}
920 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
921 | propertyPath: m_LocalRotation.z
922 | value: 0
923 | objectReference: {fileID: 0}
924 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
925 | propertyPath: m_LocalRotation.w
926 | value: 1
927 | objectReference: {fileID: 0}
928 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
929 | propertyPath: m_RootOrder
930 | value: 2
931 | objectReference: {fileID: 0}
932 | m_RemovedComponents: []
933 | m_ParentPrefab: {fileID: 100100000, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
934 | m_RootGameObject: {fileID: 988446500}
935 | m_IsPrefabParent: 0
936 | --- !u!1 &1680300080
937 | GameObject:
938 | m_ObjectHideFlags: 0
939 | m_PrefabParentObject: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
940 | m_PrefabInternal: {fileID: 1925504489}
941 | serializedVersion: 4
942 | m_Component:
943 | - 4: {fileID: 1680300084}
944 | - 33: {fileID: 1680300083}
945 | - 23: {fileID: 1680300082}
946 | - 114: {fileID: 1680300081}
947 | m_Layer: 0
948 | m_Name: Cube (5)
949 | m_TagString: Untagged
950 | m_Icon: {fileID: 0}
951 | m_NavMeshLayer: 0
952 | m_StaticEditorFlags: 0
953 | m_IsActive: 1
954 | --- !u!114 &1680300081
955 | MonoBehaviour:
956 | m_ObjectHideFlags: 0
957 | m_PrefabParentObject: {fileID: 11423220, guid: 245ff2907b0b1874e97286ae25b62a13,
958 | type: 2}
959 | m_PrefabInternal: {fileID: 1925504489}
960 | m_GameObject: {fileID: 1680300080}
961 | m_Enabled: 1
962 | m_EditorHideFlags: 0
963 | m_Script: {fileID: 11500000, guid: 98289c2953bfaa045bc9e021c97b79ec, type: 3}
964 | m_Name:
965 | m_EditorClassIdentifier:
966 | --- !u!23 &1680300082
967 | MeshRenderer:
968 | m_ObjectHideFlags: 0
969 | m_PrefabParentObject: {fileID: 2342206, guid: 245ff2907b0b1874e97286ae25b62a13,
970 | type: 2}
971 | m_PrefabInternal: {fileID: 1925504489}
972 | m_GameObject: {fileID: 1680300080}
973 | m_Enabled: 1
974 | m_CastShadows: 1
975 | m_ReceiveShadows: 1
976 | m_Materials:
977 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
978 | m_SubsetIndices:
979 | m_StaticBatchRoot: {fileID: 0}
980 | m_UseLightProbes: 1
981 | m_ReflectionProbeUsage: 1
982 | m_ProbeAnchor: {fileID: 0}
983 | m_ScaleInLightmap: 1
984 | m_PreserveUVs: 1
985 | m_IgnoreNormalsForChartDetection: 0
986 | m_ImportantGI: 0
987 | m_MinimumChartSize: 4
988 | m_AutoUVMaxDistance: 0.5
989 | m_AutoUVMaxAngle: 89
990 | m_LightmapParameters: {fileID: 0}
991 | m_SortingLayerID: 0
992 | m_SortingOrder: 0
993 | --- !u!33 &1680300083
994 | MeshFilter:
995 | m_ObjectHideFlags: 0
996 | m_PrefabParentObject: {fileID: 3342462, guid: 245ff2907b0b1874e97286ae25b62a13,
997 | type: 2}
998 | m_PrefabInternal: {fileID: 1925504489}
999 | m_GameObject: {fileID: 1680300080}
1000 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
1001 | --- !u!4 &1680300084
1002 | Transform:
1003 | m_ObjectHideFlags: 0
1004 | m_PrefabParentObject: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1005 | m_PrefabInternal: {fileID: 1925504489}
1006 | m_GameObject: {fileID: 1680300080}
1007 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1008 | m_LocalPosition: {x: 0, y: 0, z: 0}
1009 | m_LocalScale: {x: 1, y: 1, z: 1}
1010 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1011 | m_Children: []
1012 | m_Father: {fileID: 0}
1013 | m_RootOrder: 7
1014 | --- !u!1 &1778822981
1015 | GameObject:
1016 | m_ObjectHideFlags: 0
1017 | m_PrefabParentObject: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1018 | m_PrefabInternal: {fileID: 296427004}
1019 | serializedVersion: 4
1020 | m_Component:
1021 | - 4: {fileID: 1778822985}
1022 | - 33: {fileID: 1778822984}
1023 | - 23: {fileID: 1778822983}
1024 | - 114: {fileID: 1778822982}
1025 | m_Layer: 0
1026 | m_Name: Cube (3)
1027 | m_TagString: Untagged
1028 | m_Icon: {fileID: 0}
1029 | m_NavMeshLayer: 0
1030 | m_StaticEditorFlags: 0
1031 | m_IsActive: 1
1032 | --- !u!114 &1778822982
1033 | MonoBehaviour:
1034 | m_ObjectHideFlags: 0
1035 | m_PrefabParentObject: {fileID: 11423220, guid: 245ff2907b0b1874e97286ae25b62a13,
1036 | type: 2}
1037 | m_PrefabInternal: {fileID: 296427004}
1038 | m_GameObject: {fileID: 1778822981}
1039 | m_Enabled: 1
1040 | m_EditorHideFlags: 0
1041 | m_Script: {fileID: 11500000, guid: 98289c2953bfaa045bc9e021c97b79ec, type: 3}
1042 | m_Name:
1043 | m_EditorClassIdentifier:
1044 | --- !u!23 &1778822983
1045 | MeshRenderer:
1046 | m_ObjectHideFlags: 0
1047 | m_PrefabParentObject: {fileID: 2342206, guid: 245ff2907b0b1874e97286ae25b62a13,
1048 | type: 2}
1049 | m_PrefabInternal: {fileID: 296427004}
1050 | m_GameObject: {fileID: 1778822981}
1051 | m_Enabled: 1
1052 | m_CastShadows: 1
1053 | m_ReceiveShadows: 1
1054 | m_Materials:
1055 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
1056 | m_SubsetIndices:
1057 | m_StaticBatchRoot: {fileID: 0}
1058 | m_UseLightProbes: 1
1059 | m_ReflectionProbeUsage: 1
1060 | m_ProbeAnchor: {fileID: 0}
1061 | m_ScaleInLightmap: 1
1062 | m_PreserveUVs: 1
1063 | m_IgnoreNormalsForChartDetection: 0
1064 | m_ImportantGI: 0
1065 | m_MinimumChartSize: 4
1066 | m_AutoUVMaxDistance: 0.5
1067 | m_AutoUVMaxAngle: 89
1068 | m_LightmapParameters: {fileID: 0}
1069 | m_SortingLayerID: 0
1070 | m_SortingOrder: 0
1071 | --- !u!33 &1778822984
1072 | MeshFilter:
1073 | m_ObjectHideFlags: 0
1074 | m_PrefabParentObject: {fileID: 3342462, guid: 245ff2907b0b1874e97286ae25b62a13,
1075 | type: 2}
1076 | m_PrefabInternal: {fileID: 296427004}
1077 | m_GameObject: {fileID: 1778822981}
1078 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
1079 | --- !u!4 &1778822985
1080 | Transform:
1081 | m_ObjectHideFlags: 0
1082 | m_PrefabParentObject: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1083 | m_PrefabInternal: {fileID: 296427004}
1084 | m_GameObject: {fileID: 1778822981}
1085 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1086 | m_LocalPosition: {x: 0, y: 0, z: 0}
1087 | m_LocalScale: {x: 1, y: 1, z: 1}
1088 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1089 | m_Children: []
1090 | m_Father: {fileID: 0}
1091 | m_RootOrder: 5
1092 | --- !u!1001 &1925504489
1093 | Prefab:
1094 | m_ObjectHideFlags: 0
1095 | serializedVersion: 2
1096 | m_Modification:
1097 | m_TransformParent: {fileID: 0}
1098 | m_Modifications:
1099 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1100 | propertyPath: m_LocalPosition.x
1101 | value: 0
1102 | objectReference: {fileID: 0}
1103 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1104 | propertyPath: m_LocalPosition.y
1105 | value: 0
1106 | objectReference: {fileID: 0}
1107 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1108 | propertyPath: m_LocalPosition.z
1109 | value: 0
1110 | objectReference: {fileID: 0}
1111 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1112 | propertyPath: m_LocalRotation.x
1113 | value: 0
1114 | objectReference: {fileID: 0}
1115 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1116 | propertyPath: m_LocalRotation.y
1117 | value: 0
1118 | objectReference: {fileID: 0}
1119 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1120 | propertyPath: m_LocalRotation.z
1121 | value: 0
1122 | objectReference: {fileID: 0}
1123 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1124 | propertyPath: m_LocalRotation.w
1125 | value: 1
1126 | objectReference: {fileID: 0}
1127 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1128 | propertyPath: m_RootOrder
1129 | value: 7
1130 | objectReference: {fileID: 0}
1131 | - target: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1132 | propertyPath: m_Name
1133 | value: Cube (5)
1134 | objectReference: {fileID: 0}
1135 | m_RemovedComponents: []
1136 | m_ParentPrefab: {fileID: 100100000, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1137 | m_RootGameObject: {fileID: 1680300080}
1138 | m_IsPrefabParent: 0
1139 | --- !u!1001 &2051217410
1140 | Prefab:
1141 | m_ObjectHideFlags: 0
1142 | serializedVersion: 2
1143 | m_Modification:
1144 | m_TransformParent: {fileID: 0}
1145 | m_Modifications:
1146 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1147 | propertyPath: m_LocalPosition.x
1148 | value: 0
1149 | objectReference: {fileID: 0}
1150 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1151 | propertyPath: m_LocalPosition.y
1152 | value: 0
1153 | objectReference: {fileID: 0}
1154 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1155 | propertyPath: m_LocalPosition.z
1156 | value: 0
1157 | objectReference: {fileID: 0}
1158 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1159 | propertyPath: m_LocalRotation.x
1160 | value: 0
1161 | objectReference: {fileID: 0}
1162 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1163 | propertyPath: m_LocalRotation.y
1164 | value: 0
1165 | objectReference: {fileID: 0}
1166 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1167 | propertyPath: m_LocalRotation.z
1168 | value: 0
1169 | objectReference: {fileID: 0}
1170 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1171 | propertyPath: m_LocalRotation.w
1172 | value: 1
1173 | objectReference: {fileID: 0}
1174 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1175 | propertyPath: m_RootOrder
1176 | value: 11
1177 | objectReference: {fileID: 0}
1178 | - target: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1179 | propertyPath: m_Name
1180 | value: Cube (9)
1181 | objectReference: {fileID: 0}
1182 | m_RemovedComponents: []
1183 | m_ParentPrefab: {fileID: 100100000, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1184 | m_RootGameObject: {fileID: 67709925}
1185 | m_IsPrefabParent: 0
1186 | --- !u!1001 &2076102233
1187 | Prefab:
1188 | m_ObjectHideFlags: 0
1189 | serializedVersion: 2
1190 | m_Modification:
1191 | m_TransformParent: {fileID: 0}
1192 | m_Modifications:
1193 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1194 | propertyPath: m_LocalPosition.x
1195 | value: 0
1196 | objectReference: {fileID: 0}
1197 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1198 | propertyPath: m_LocalPosition.y
1199 | value: 0
1200 | objectReference: {fileID: 0}
1201 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1202 | propertyPath: m_LocalPosition.z
1203 | value: 0
1204 | objectReference: {fileID: 0}
1205 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1206 | propertyPath: m_LocalRotation.x
1207 | value: 0
1208 | objectReference: {fileID: 0}
1209 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1210 | propertyPath: m_LocalRotation.y
1211 | value: 0
1212 | objectReference: {fileID: 0}
1213 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1214 | propertyPath: m_LocalRotation.z
1215 | value: 0
1216 | objectReference: {fileID: 0}
1217 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1218 | propertyPath: m_LocalRotation.w
1219 | value: 1
1220 | objectReference: {fileID: 0}
1221 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1222 | propertyPath: m_RootOrder
1223 | value: 10
1224 | objectReference: {fileID: 0}
1225 | - target: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1226 | propertyPath: m_Name
1227 | value: Cube (8)
1228 | objectReference: {fileID: 0}
1229 | m_RemovedComponents: []
1230 | m_ParentPrefab: {fileID: 100100000, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1231 | m_RootGameObject: {fileID: 1022666670}
1232 | m_IsPrefabParent: 0
1233 | --- !u!1 &2106389370
1234 | GameObject:
1235 | m_ObjectHideFlags: 0
1236 | m_PrefabParentObject: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1237 | m_PrefabInternal: {fileID: 2146224844}
1238 | serializedVersion: 4
1239 | m_Component:
1240 | - 4: {fileID: 2106389374}
1241 | - 33: {fileID: 2106389373}
1242 | - 23: {fileID: 2106389372}
1243 | - 114: {fileID: 2106389371}
1244 | m_Layer: 0
1245 | m_Name: Cube (1)
1246 | m_TagString: Untagged
1247 | m_Icon: {fileID: 0}
1248 | m_NavMeshLayer: 0
1249 | m_StaticEditorFlags: 0
1250 | m_IsActive: 1
1251 | --- !u!114 &2106389371
1252 | MonoBehaviour:
1253 | m_ObjectHideFlags: 0
1254 | m_PrefabParentObject: {fileID: 11423220, guid: 245ff2907b0b1874e97286ae25b62a13,
1255 | type: 2}
1256 | m_PrefabInternal: {fileID: 2146224844}
1257 | m_GameObject: {fileID: 2106389370}
1258 | m_Enabled: 1
1259 | m_EditorHideFlags: 0
1260 | m_Script: {fileID: 11500000, guid: 98289c2953bfaa045bc9e021c97b79ec, type: 3}
1261 | m_Name:
1262 | m_EditorClassIdentifier:
1263 | --- !u!23 &2106389372
1264 | MeshRenderer:
1265 | m_ObjectHideFlags: 0
1266 | m_PrefabParentObject: {fileID: 2342206, guid: 245ff2907b0b1874e97286ae25b62a13,
1267 | type: 2}
1268 | m_PrefabInternal: {fileID: 2146224844}
1269 | m_GameObject: {fileID: 2106389370}
1270 | m_Enabled: 1
1271 | m_CastShadows: 1
1272 | m_ReceiveShadows: 1
1273 | m_Materials:
1274 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
1275 | m_SubsetIndices:
1276 | m_StaticBatchRoot: {fileID: 0}
1277 | m_UseLightProbes: 1
1278 | m_ReflectionProbeUsage: 1
1279 | m_ProbeAnchor: {fileID: 0}
1280 | m_ScaleInLightmap: 1
1281 | m_PreserveUVs: 1
1282 | m_IgnoreNormalsForChartDetection: 0
1283 | m_ImportantGI: 0
1284 | m_MinimumChartSize: 4
1285 | m_AutoUVMaxDistance: 0.5
1286 | m_AutoUVMaxAngle: 89
1287 | m_LightmapParameters: {fileID: 0}
1288 | m_SortingLayerID: 0
1289 | m_SortingOrder: 0
1290 | --- !u!33 &2106389373
1291 | MeshFilter:
1292 | m_ObjectHideFlags: 0
1293 | m_PrefabParentObject: {fileID: 3342462, guid: 245ff2907b0b1874e97286ae25b62a13,
1294 | type: 2}
1295 | m_PrefabInternal: {fileID: 2146224844}
1296 | m_GameObject: {fileID: 2106389370}
1297 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
1298 | --- !u!4 &2106389374
1299 | Transform:
1300 | m_ObjectHideFlags: 0
1301 | m_PrefabParentObject: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1302 | m_PrefabInternal: {fileID: 2146224844}
1303 | m_GameObject: {fileID: 2106389370}
1304 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1305 | m_LocalPosition: {x: 0, y: 0, z: 0}
1306 | m_LocalScale: {x: 1, y: 1, z: 1}
1307 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1308 | m_Children: []
1309 | m_Father: {fileID: 0}
1310 | m_RootOrder: 3
1311 | --- !u!1 &2113358541
1312 | GameObject:
1313 | m_ObjectHideFlags: 0
1314 | m_PrefabParentObject: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1315 | m_PrefabInternal: {fileID: 2139429358}
1316 | serializedVersion: 4
1317 | m_Component:
1318 | - 4: {fileID: 2113358545}
1319 | - 33: {fileID: 2113358544}
1320 | - 23: {fileID: 2113358543}
1321 | - 114: {fileID: 2113358542}
1322 | m_Layer: 0
1323 | m_Name: Cube (4)
1324 | m_TagString: Untagged
1325 | m_Icon: {fileID: 0}
1326 | m_NavMeshLayer: 0
1327 | m_StaticEditorFlags: 0
1328 | m_IsActive: 1
1329 | --- !u!114 &2113358542
1330 | MonoBehaviour:
1331 | m_ObjectHideFlags: 0
1332 | m_PrefabParentObject: {fileID: 11423220, guid: 245ff2907b0b1874e97286ae25b62a13,
1333 | type: 2}
1334 | m_PrefabInternal: {fileID: 2139429358}
1335 | m_GameObject: {fileID: 2113358541}
1336 | m_Enabled: 1
1337 | m_EditorHideFlags: 0
1338 | m_Script: {fileID: 11500000, guid: 98289c2953bfaa045bc9e021c97b79ec, type: 3}
1339 | m_Name:
1340 | m_EditorClassIdentifier:
1341 | --- !u!23 &2113358543
1342 | MeshRenderer:
1343 | m_ObjectHideFlags: 0
1344 | m_PrefabParentObject: {fileID: 2342206, guid: 245ff2907b0b1874e97286ae25b62a13,
1345 | type: 2}
1346 | m_PrefabInternal: {fileID: 2139429358}
1347 | m_GameObject: {fileID: 2113358541}
1348 | m_Enabled: 1
1349 | m_CastShadows: 1
1350 | m_ReceiveShadows: 1
1351 | m_Materials:
1352 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
1353 | m_SubsetIndices:
1354 | m_StaticBatchRoot: {fileID: 0}
1355 | m_UseLightProbes: 1
1356 | m_ReflectionProbeUsage: 1
1357 | m_ProbeAnchor: {fileID: 0}
1358 | m_ScaleInLightmap: 1
1359 | m_PreserveUVs: 1
1360 | m_IgnoreNormalsForChartDetection: 0
1361 | m_ImportantGI: 0
1362 | m_MinimumChartSize: 4
1363 | m_AutoUVMaxDistance: 0.5
1364 | m_AutoUVMaxAngle: 89
1365 | m_LightmapParameters: {fileID: 0}
1366 | m_SortingLayerID: 0
1367 | m_SortingOrder: 0
1368 | --- !u!33 &2113358544
1369 | MeshFilter:
1370 | m_ObjectHideFlags: 0
1371 | m_PrefabParentObject: {fileID: 3342462, guid: 245ff2907b0b1874e97286ae25b62a13,
1372 | type: 2}
1373 | m_PrefabInternal: {fileID: 2139429358}
1374 | m_GameObject: {fileID: 2113358541}
1375 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
1376 | --- !u!4 &2113358545
1377 | Transform:
1378 | m_ObjectHideFlags: 0
1379 | m_PrefabParentObject: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1380 | m_PrefabInternal: {fileID: 2139429358}
1381 | m_GameObject: {fileID: 2113358541}
1382 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1383 | m_LocalPosition: {x: 0, y: 0, z: 0}
1384 | m_LocalScale: {x: 1, y: 1, z: 1}
1385 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1386 | m_Children: []
1387 | m_Father: {fileID: 0}
1388 | m_RootOrder: 6
1389 | --- !u!1001 &2139429358
1390 | Prefab:
1391 | m_ObjectHideFlags: 0
1392 | serializedVersion: 2
1393 | m_Modification:
1394 | m_TransformParent: {fileID: 0}
1395 | m_Modifications:
1396 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1397 | propertyPath: m_LocalPosition.x
1398 | value: 0
1399 | objectReference: {fileID: 0}
1400 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1401 | propertyPath: m_LocalPosition.y
1402 | value: 0
1403 | objectReference: {fileID: 0}
1404 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1405 | propertyPath: m_LocalPosition.z
1406 | value: 0
1407 | objectReference: {fileID: 0}
1408 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1409 | propertyPath: m_LocalRotation.x
1410 | value: 0
1411 | objectReference: {fileID: 0}
1412 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1413 | propertyPath: m_LocalRotation.y
1414 | value: 0
1415 | objectReference: {fileID: 0}
1416 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1417 | propertyPath: m_LocalRotation.z
1418 | value: 0
1419 | objectReference: {fileID: 0}
1420 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1421 | propertyPath: m_LocalRotation.w
1422 | value: 1
1423 | objectReference: {fileID: 0}
1424 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1425 | propertyPath: m_RootOrder
1426 | value: 6
1427 | objectReference: {fileID: 0}
1428 | - target: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1429 | propertyPath: m_Name
1430 | value: Cube (4)
1431 | objectReference: {fileID: 0}
1432 | m_RemovedComponents: []
1433 | m_ParentPrefab: {fileID: 100100000, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1434 | m_RootGameObject: {fileID: 2113358541}
1435 | m_IsPrefabParent: 0
1436 | --- !u!1001 &2146224844
1437 | Prefab:
1438 | m_ObjectHideFlags: 0
1439 | serializedVersion: 2
1440 | m_Modification:
1441 | m_TransformParent: {fileID: 0}
1442 | m_Modifications:
1443 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1444 | propertyPath: m_LocalPosition.x
1445 | value: 0
1446 | objectReference: {fileID: 0}
1447 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1448 | propertyPath: m_LocalPosition.y
1449 | value: 0
1450 | objectReference: {fileID: 0}
1451 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1452 | propertyPath: m_LocalPosition.z
1453 | value: 0
1454 | objectReference: {fileID: 0}
1455 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1456 | propertyPath: m_LocalRotation.x
1457 | value: 0
1458 | objectReference: {fileID: 0}
1459 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1460 | propertyPath: m_LocalRotation.y
1461 | value: 0
1462 | objectReference: {fileID: 0}
1463 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1464 | propertyPath: m_LocalRotation.z
1465 | value: 0
1466 | objectReference: {fileID: 0}
1467 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1468 | propertyPath: m_LocalRotation.w
1469 | value: 1
1470 | objectReference: {fileID: 0}
1471 | - target: {fileID: 427018, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1472 | propertyPath: m_RootOrder
1473 | value: 3
1474 | objectReference: {fileID: 0}
1475 | - target: {fileID: 138072, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1476 | propertyPath: m_Name
1477 | value: Cube (1)
1478 | objectReference: {fileID: 0}
1479 | m_RemovedComponents: []
1480 | m_ParentPrefab: {fileID: 100100000, guid: 245ff2907b0b1874e97286ae25b62a13, type: 2}
1481 | m_RootGameObject: {fileID: 2106389370}
1482 | m_IsPrefabParent: 0
1483 |
--------------------------------------------------------------------------------
/Assets/Sample/SampleScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a487c41c5b6e27340b38112a02e7ba33
3 | timeCreated: 1486888089
4 | licenseType: Pro
5 | DefaultImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Misc/screenshot.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagt/unity3d-runtime-debug-draw/392b9f53c5a123f00fab118dce2b0bbd359e537b/Misc/screenshot.gif
--------------------------------------------------------------------------------
/ProjectSettings/ProjectSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!129 &1
4 | PlayerSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 8
7 | AndroidProfiler: 0
8 | defaultScreenOrientation: 4
9 | targetDevice: 2
10 | useOnDemandResources: 0
11 | accelerometerFrequency: 60
12 | companyName: DefaultCompany
13 | productName: unity3d-runtime-debug-draw
14 | defaultCursor: {fileID: 0}
15 | cursorHotspot: {x: 0, y: 0}
16 | m_ShowUnitySplashScreen: 1
17 | m_VirtualRealitySplashScreen: {fileID: 0}
18 | defaultScreenWidth: 1024
19 | defaultScreenHeight: 768
20 | defaultScreenWidthWeb: 960
21 | defaultScreenHeightWeb: 600
22 | m_RenderingPath: 1
23 | m_MobileRenderingPath: 1
24 | m_ActiveColorSpace: 0
25 | m_MTRendering: 1
26 | m_MobileMTRendering: 0
27 | m_Stereoscopic3D: 0
28 | iosShowActivityIndicatorOnLoading: -1
29 | androidShowActivityIndicatorOnLoading: -1
30 | iosAppInBackgroundBehavior: 0
31 | displayResolutionDialog: 1
32 | iosAllowHTTPDownload: 1
33 | allowedAutorotateToPortrait: 1
34 | allowedAutorotateToPortraitUpsideDown: 1
35 | allowedAutorotateToLandscapeRight: 1
36 | allowedAutorotateToLandscapeLeft: 1
37 | useOSAutorotation: 1
38 | use32BitDisplayBuffer: 1
39 | disableDepthAndStencilBuffers: 0
40 | defaultIsFullScreen: 1
41 | defaultIsNativeResolution: 1
42 | runInBackground: 0
43 | captureSingleScreen: 0
44 | Override IPod Music: 0
45 | Prepare IOS For Recording: 0
46 | submitAnalytics: 1
47 | usePlayerLog: 1
48 | bakeCollisionMeshes: 0
49 | forceSingleInstance: 0
50 | resizableWindow: 0
51 | useMacAppStoreValidation: 0
52 | gpuSkinning: 0
53 | xboxPIXTextureCapture: 0
54 | xboxEnableAvatar: 0
55 | xboxEnableKinect: 0
56 | xboxEnableKinectAutoTracking: 0
57 | xboxEnableFitness: 0
58 | visibleInBackground: 0
59 | allowFullscreenSwitch: 1
60 | macFullscreenMode: 2
61 | d3d9FullscreenMode: 1
62 | d3d11FullscreenMode: 1
63 | xboxSpeechDB: 0
64 | xboxEnableHeadOrientation: 0
65 | xboxEnableGuest: 0
66 | xboxEnablePIXSampling: 0
67 | n3dsDisableStereoscopicView: 0
68 | n3dsEnableSharedListOpt: 1
69 | n3dsEnableVSync: 0
70 | uiUse16BitDepthBuffer: 0
71 | ignoreAlphaClear: 0
72 | xboxOneResolution: 0
73 | ps3SplashScreen: {fileID: 0}
74 | videoMemoryForVertexBuffers: 0
75 | psp2PowerMode: 0
76 | psp2AcquireBGM: 1
77 | wiiUTVResolution: 0
78 | wiiUGamePadMSAA: 1
79 | wiiUSupportsNunchuk: 0
80 | wiiUSupportsClassicController: 0
81 | wiiUSupportsBalanceBoard: 0
82 | wiiUSupportsMotionPlus: 0
83 | wiiUSupportsProController: 0
84 | wiiUAllowScreenCapture: 1
85 | wiiUControllerCount: 0
86 | m_SupportedAspectRatios:
87 | 4:3: 1
88 | 5:4: 1
89 | 16:10: 1
90 | 16:9: 1
91 | Others: 1
92 | bundleIdentifier: com.Company.ProductName
93 | bundleVersion: 1.0
94 | preloadedAssets: []
95 | metroEnableIndependentInputSource: 0
96 | metroEnableLowLatencyPresentationAPI: 0
97 | xboxOneDisableKinectGpuReservation: 0
98 | virtualRealitySupported: 0
99 | productGUID: 2a84edbf12fa4954dbecd35870946ed6
100 | AndroidBundleVersionCode: 1
101 | AndroidMinSdkVersion: 9
102 | AndroidPreferredInstallLocation: 1
103 | aotOptions:
104 | apiCompatibilityLevel: 2
105 | stripEngineCode: 1
106 | iPhoneStrippingLevel: 0
107 | iPhoneScriptCallOptimization: 0
108 | iPhoneBuildNumber: 0
109 | ForceInternetPermission: 0
110 | ForceSDCardPermission: 0
111 | CreateWallpaper: 0
112 | APKExpansionFiles: 0
113 | preloadShaders: 0
114 | StripUnusedMeshComponents: 0
115 | VertexChannelCompressionMask:
116 | serializedVersion: 2
117 | m_Bits: 238
118 | iPhoneSdkVersion: 988
119 | iPhoneTargetOSVersion: 22
120 | tvOSSdkVersion: 0
121 | tvOSTargetOSVersion: 900
122 | uIPrerenderedIcon: 0
123 | uIRequiresPersistentWiFi: 0
124 | uIRequiresFullScreen: 1
125 | uIStatusBarHidden: 1
126 | uIExitOnSuspend: 0
127 | uIStatusBarStyle: 0
128 | iPhoneSplashScreen: {fileID: 0}
129 | iPhoneHighResSplashScreen: {fileID: 0}
130 | iPhoneTallHighResSplashScreen: {fileID: 0}
131 | iPhone47inSplashScreen: {fileID: 0}
132 | iPhone55inPortraitSplashScreen: {fileID: 0}
133 | iPhone55inLandscapeSplashScreen: {fileID: 0}
134 | iPadPortraitSplashScreen: {fileID: 0}
135 | iPadHighResPortraitSplashScreen: {fileID: 0}
136 | iPadLandscapeSplashScreen: {fileID: 0}
137 | iPadHighResLandscapeSplashScreen: {fileID: 0}
138 | appleTVSplashScreen: {fileID: 0}
139 | tvOSSmallIconLayers: []
140 | tvOSLargeIconLayers: []
141 | tvOSTopShelfImageLayers: []
142 | iOSLaunchScreenType: 0
143 | iOSLaunchScreenPortrait: {fileID: 0}
144 | iOSLaunchScreenLandscape: {fileID: 0}
145 | iOSLaunchScreenBackgroundColor:
146 | serializedVersion: 2
147 | rgba: 0
148 | iOSLaunchScreenFillPct: 100
149 | iOSLaunchScreenSize: 100
150 | iOSLaunchScreenCustomXibPath:
151 | iOSLaunchScreeniPadType: 0
152 | iOSLaunchScreeniPadImage: {fileID: 0}
153 | iOSLaunchScreeniPadBackgroundColor:
154 | serializedVersion: 2
155 | rgba: 0
156 | iOSLaunchScreeniPadFillPct: 100
157 | iOSLaunchScreeniPadSize: 100
158 | iOSLaunchScreeniPadCustomXibPath:
159 | iOSDeviceRequirements: []
160 | AndroidTargetDevice: 0
161 | AndroidSplashScreenScale: 0
162 | androidSplashScreen: {fileID: 0}
163 | AndroidKeystoreName:
164 | AndroidKeyaliasName:
165 | AndroidTVCompatibility: 1
166 | AndroidIsGame: 1
167 | androidEnableBanner: 1
168 | m_AndroidBanners:
169 | - width: 320
170 | height: 180
171 | banner: {fileID: 0}
172 | androidGamepadSupportLevel: 0
173 | resolutionDialogBanner: {fileID: 0}
174 | m_BuildTargetIcons:
175 | - m_BuildTarget:
176 | m_Icons:
177 | - serializedVersion: 2
178 | m_Icon: {fileID: 0}
179 | m_Width: 128
180 | m_Height: 128
181 | m_BuildTargetBatching: []
182 | m_BuildTargetGraphicsAPIs: []
183 | webPlayerTemplate: APPLICATION:Default
184 | m_TemplateCustomTags: {}
185 | wiiUTitleID: 0005000011000000
186 | wiiUGroupID: 00010000
187 | wiiUCommonSaveSize: 4096
188 | wiiUAccountSaveSize: 2048
189 | wiiUOlvAccessKey: 0
190 | wiiUTinCode: 0
191 | wiiUJoinGameId: 0
192 | wiiUJoinGameModeMask: 0000000000000000
193 | wiiUCommonBossSize: 0
194 | wiiUAccountBossSize: 0
195 | wiiUAddOnUniqueIDs: []
196 | wiiUMainThreadStackSize: 3072
197 | wiiULoaderThreadStackSize: 1024
198 | wiiUSystemHeapSize: 128
199 | wiiUTVStartupScreen: {fileID: 0}
200 | wiiUGamePadStartupScreen: {fileID: 0}
201 | wiiUDrcBufferDisabled: 0
202 | wiiUProfilerLibPath:
203 | actionOnDotNetUnhandledException: 1
204 | enableInternalProfiler: 0
205 | logObjCUncaughtExceptions: 1
206 | enableCrashReportAPI: 0
207 | locationUsageDescription:
208 | XboxTitleId:
209 | XboxImageXexPath:
210 | XboxSpaPath:
211 | XboxGenerateSpa: 0
212 | XboxDeployKinectResources: 0
213 | XboxSplashScreen: {fileID: 0}
214 | xboxEnableSpeech: 0
215 | xboxAdditionalTitleMemorySize: 0
216 | xboxDeployKinectHeadOrientation: 0
217 | xboxDeployKinectHeadPosition: 0
218 | ps3TitleConfigPath:
219 | ps3DLCConfigPath:
220 | ps3ThumbnailPath:
221 | ps3BackgroundPath:
222 | ps3SoundPath:
223 | ps3NPAgeRating: 12
224 | ps3TrophyCommId:
225 | ps3NpCommunicationPassphrase:
226 | ps3TrophyPackagePath:
227 | ps3BootCheckMaxSaveGameSizeKB: 128
228 | ps3TrophyCommSig:
229 | ps3SaveGameSlots: 1
230 | ps3TrialMode: 0
231 | ps3VideoMemoryForAudio: 0
232 | ps3EnableVerboseMemoryStats: 0
233 | ps3UseSPUForUmbra: 0
234 | ps3EnableMoveSupport: 1
235 | ps3DisableDolbyEncoding: 0
236 | ps4NPAgeRating: 12
237 | ps4NPTitleSecret:
238 | ps4NPTrophyPackPath:
239 | ps4ParentalLevel: 1
240 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
241 | ps4Category: 0
242 | ps4MasterVersion: 01.00
243 | ps4AppVersion: 01.00
244 | ps4AppType: 0
245 | ps4ParamSfxPath:
246 | ps4VideoOutPixelFormat: 0
247 | ps4VideoOutResolution: 4
248 | ps4PronunciationXMLPath:
249 | ps4PronunciationSIGPath:
250 | ps4BackgroundImagePath:
251 | ps4StartupImagePath:
252 | ps4SaveDataImagePath:
253 | ps4SdkOverride:
254 | ps4BGMPath:
255 | ps4ShareFilePath:
256 | ps4ShareOverlayImagePath:
257 | ps4PrivacyGuardImagePath:
258 | ps4NPtitleDatPath:
259 | ps4RemotePlayKeyAssignment: -1
260 | ps4RemotePlayKeyMappingDir:
261 | ps4EnterButtonAssignment: 1
262 | ps4ApplicationParam1: 0
263 | ps4ApplicationParam2: 0
264 | ps4ApplicationParam3: 0
265 | ps4ApplicationParam4: 0
266 | ps4DownloadDataSize: 0
267 | ps4GarlicHeapSize: 2048
268 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
269 | ps4UseDebugIl2cppLibs: 0
270 | ps4pnSessions: 1
271 | ps4pnPresence: 1
272 | ps4pnFriends: 1
273 | ps4pnGameCustomData: 1
274 | playerPrefsSupport: 0
275 | ps4ReprojectionSupport: 0
276 | ps4UseAudio3dBackend: 0
277 | ps4SocialScreenEnabled: 0
278 | ps4Audio3dVirtualSpeakerCount: 14
279 | ps4attribCpuUsage: 0
280 | ps4PatchPkgPath:
281 | ps4PatchLatestPkgPath:
282 | ps4PatchChangeinfoPath:
283 | ps4attribUserManagement: 0
284 | ps4attribMoveSupport: 0
285 | ps4attrib3DSupport: 0
286 | ps4attribShareSupport: 0
287 | ps4IncludedModules: []
288 | monoEnv:
289 | psp2Splashimage: {fileID: 0}
290 | psp2NPTrophyPackPath:
291 | psp2NPSupportGBMorGJP: 0
292 | psp2NPAgeRating: 12
293 | psp2NPTitleDatPath:
294 | psp2NPCommsID:
295 | psp2NPCommunicationsID:
296 | psp2NPCommsPassphrase:
297 | psp2NPCommsSig:
298 | psp2ParamSfxPath:
299 | psp2ManualPath:
300 | psp2LiveAreaGatePath:
301 | psp2LiveAreaBackroundPath:
302 | psp2LiveAreaPath:
303 | psp2LiveAreaTrialPath:
304 | psp2PatchChangeInfoPath:
305 | psp2PatchOriginalPackage:
306 | psp2PackagePassword: F69AzBlax3CF3EDNhm3soLBPh71Yexui
307 | psp2KeystoneFile:
308 | psp2MemoryExpansionMode: 0
309 | psp2DRMType: 0
310 | psp2StorageType: 0
311 | psp2MediaCapacity: 0
312 | psp2DLCConfigPath:
313 | psp2ThumbnailPath:
314 | psp2BackgroundPath:
315 | psp2SoundPath:
316 | psp2TrophyCommId:
317 | psp2TrophyPackagePath:
318 | psp2PackagedResourcesPath:
319 | psp2SaveDataQuota: 10240
320 | psp2ParentalLevel: 1
321 | psp2ShortTitle: Not Set
322 | psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF
323 | psp2Category: 0
324 | psp2MasterVersion: 01.00
325 | psp2AppVersion: 01.00
326 | psp2TVBootMode: 0
327 | psp2EnterButtonAssignment: 2
328 | psp2TVDisableEmu: 0
329 | psp2AllowTwitterDialog: 1
330 | psp2Upgradable: 0
331 | psp2HealthWarning: 0
332 | psp2UseLibLocation: 0
333 | psp2InfoBarOnStartup: 0
334 | psp2InfoBarColor: 0
335 | psp2UseDebugIl2cppLibs: 0
336 | psmSplashimage: {fileID: 0}
337 | spritePackerPolicy:
338 | scriptingDefineSymbols:
339 | 1: _DEBUG
340 | metroPackageName: unity3d-runtime-debug-draw
341 | metroPackageVersion:
342 | metroCertificatePath:
343 | metroCertificatePassword:
344 | metroCertificateSubject:
345 | metroCertificateIssuer:
346 | metroCertificateNotAfter: 0000000000000000
347 | metroApplicationDescription: unity3d-runtime-debug-draw
348 | wsaImages: {}
349 | metroTileShortName:
350 | metroCommandLineArgsFile:
351 | metroTileShowName: 0
352 | metroMediumTileShowName: 0
353 | metroLargeTileShowName: 0
354 | metroWideTileShowName: 0
355 | metroDefaultTileSize: 1
356 | metroTileForegroundText: 1
357 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
358 | metroSplashScreenBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628,
359 | a: 1}
360 | metroSplashScreenUseBackgroundColor: 1
361 | platformCapabilities: {}
362 | metroFTAName:
363 | metroFTAFileTypes: []
364 | metroProtocolName:
365 | metroCompilationOverrides: 1
366 | blackberryDeviceAddress:
367 | blackberryDevicePassword:
368 | blackberryTokenPath:
369 | blackberryTokenExires:
370 | blackberryTokenAuthor:
371 | blackberryTokenAuthorId:
372 | blackberryCskPassword:
373 | blackberrySaveLogPath:
374 | blackberrySharedPermissions: 0
375 | blackberryCameraPermissions: 0
376 | blackberryGPSPermissions: 0
377 | blackberryDeviceIDPermissions: 0
378 | blackberryMicrophonePermissions: 0
379 | blackberryGamepadSupport: 0
380 | blackberryBuildId: 0
381 | blackberryLandscapeSplashScreen: {fileID: 0}
382 | blackberryPortraitSplashScreen: {fileID: 0}
383 | blackberrySquareSplashScreen: {fileID: 0}
384 | tizenProductDescription:
385 | tizenProductURL:
386 | tizenSigningProfileName:
387 | tizenGPSPermissions: 0
388 | tizenMicrophonePermissions: 0
389 | n3dsUseExtSaveData: 0
390 | n3dsCompressStaticMem: 1
391 | n3dsExtSaveDataNumber: 0x12345
392 | n3dsStackSize: 131072
393 | n3dsTargetPlatform: 2
394 | n3dsRegion: 7
395 | n3dsMediaSize: 0
396 | n3dsLogoStyle: 3
397 | n3dsTitle: GameName
398 | n3dsProductCode:
399 | n3dsApplicationId: 0xFF3FF
400 | stvDeviceAddress:
401 | stvProductDescription:
402 | stvProductAuthor:
403 | stvProductAuthorEmail:
404 | stvProductLink:
405 | stvProductCategory: 0
406 | XboxOneProductId:
407 | XboxOneUpdateKey:
408 | XboxOneSandboxId:
409 | XboxOneContentId:
410 | XboxOneTitleId:
411 | XboxOneSCId:
412 | XboxOneGameOsOverridePath:
413 | XboxOnePackagingOverridePath:
414 | XboxOneAppManifestOverridePath:
415 | XboxOnePackageEncryption: 0
416 | XboxOnePackageUpdateGranularity: 2
417 | XboxOneDescription:
418 | XboxOneIsContentPackage: 0
419 | XboxOneEnableGPUVariability: 0
420 | XboxOneSockets: {}
421 | XboxOneSplashScreen: {fileID: 0}
422 | XboxOneAllowedProductIds: []
423 | XboxOnePersistentLocalStorageSize: 0
424 | intPropertyNames:
425 | - Standalone::ScriptingBackend
426 | - WebPlayer::ScriptingBackend
427 | Standalone::ScriptingBackend: 0
428 | WebPlayer::ScriptingBackend: 0
429 | boolPropertyNames:
430 | - XboxOne::enus
431 | XboxOne::enus: 1
432 | stringPropertyNames: []
433 | cloudProjectId:
434 | projectName:
435 | organizationId:
436 | cloudEnabled: 0
437 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | # Unity3d Runtime Debug Draw
2 |
3 | Single file debuging DrawLine/DrawText/etc that works in both Scene/Game view, also works in built PC/mobile builds.
4 |
5 | 
6 |
7 | ## Features
8 |
9 | * Draw debug lines in built players.
10 | * Additional goodies like draw text, attach texts and else.
11 | * Good old single file library.
12 | * Calls can be easily compiled away in release builds.
13 |
14 | ## Install
15 |
16 | Download [RuntimeDebugDraw](Assets/RuntimeDebugDraw.cs) and drop it into your project and you're done. Remember to read the header comments or it might work as intended.
17 |
18 | ## License
19 |
20 | Public Domain
21 |
22 | ## TODOs/Bugs/Known Issues
23 |
24 | * Only tested on Unity 5.3 for now.
25 | * Performance has room for improvement.
26 | * Doesn't work well with camera post processing.
27 | * Draw CapsuleCollider/Mesh/etc.
28 |
--------------------------------------------------------------------------------