├── README.md
├── Gradient.png
├── Sample.unity.meta
├── UILineRenderer.cs.meta
├── LICENSE
├── Gradient.png.meta
├── UILineRenderer.cs
└── Sample.unity
/README.md:
--------------------------------------------------------------------------------
1 | Use the .unitypackage file for easy importing into your project
2 |
--------------------------------------------------------------------------------
/Gradient.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Radishmouse22/UILineRenderer/HEAD/Gradient.png
--------------------------------------------------------------------------------
/Sample.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9fc0d4010bbf28b4594072e72b8655ab
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/UILineRenderer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5b33b2e663e78774c9f0c9af55018725
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Radishmouse22
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Gradient.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 980e274b7ed2de945bdefcc1d0423472
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 12
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | flipGreenChannel: 0
24 | isReadable: 0
25 | streamingMipmaps: 0
26 | streamingMipmapsPriority: 0
27 | vTOnly: 0
28 | ignoreMipmapLimit: 0
29 | grayScaleToAlpha: 0
30 | generateCubemap: 6
31 | cubemapConvolution: 0
32 | seamlessCubemap: 0
33 | textureFormat: 1
34 | maxTextureSize: 2048
35 | textureSettings:
36 | serializedVersion: 2
37 | filterMode: 1
38 | aniso: 1
39 | mipBias: 0
40 | wrapU: 1
41 | wrapV: 1
42 | wrapW: 0
43 | nPOTScale: 0
44 | lightmap: 0
45 | compressionQuality: 50
46 | spriteMode: 1
47 | spriteExtrude: 1
48 | spriteMeshType: 1
49 | alignment: 0
50 | spritePivot: {x: 0.5, y: 0.5}
51 | spritePixelsToUnits: 100
52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
53 | spriteGenerateFallbackPhysicsShape: 1
54 | alphaUsage: 1
55 | alphaIsTransparency: 1
56 | spriteTessellationDetail: -1
57 | textureType: 8
58 | textureShape: 1
59 | singleChannelComponent: 0
60 | flipbookRows: 1
61 | flipbookColumns: 1
62 | maxTextureSizeSet: 0
63 | compressionQualitySet: 0
64 | textureFormatSet: 0
65 | ignorePngGamma: 0
66 | applyGammaDecoding: 0
67 | swizzle: 50462976
68 | cookieLightType: 0
69 | platformSettings:
70 | - serializedVersion: 3
71 | buildTarget: DefaultTexturePlatform
72 | maxTextureSize: 2048
73 | resizeAlgorithm: 0
74 | textureFormat: -1
75 | textureCompression: 1
76 | compressionQuality: 50
77 | crunchedCompression: 0
78 | allowsAlphaSplitting: 0
79 | overridden: 0
80 | ignorePlatformSupport: 0
81 | androidETC2FallbackOverride: 0
82 | forceMaximumCompressionQuality_BC6H_BC7: 0
83 | - serializedVersion: 3
84 | buildTarget: Standalone
85 | maxTextureSize: 2048
86 | resizeAlgorithm: 0
87 | textureFormat: -1
88 | textureCompression: 1
89 | compressionQuality: 50
90 | crunchedCompression: 0
91 | allowsAlphaSplitting: 0
92 | overridden: 0
93 | ignorePlatformSupport: 0
94 | androidETC2FallbackOverride: 0
95 | forceMaximumCompressionQuality_BC6H_BC7: 0
96 | - serializedVersion: 3
97 | buildTarget: Server
98 | maxTextureSize: 2048
99 | resizeAlgorithm: 0
100 | textureFormat: -1
101 | textureCompression: 1
102 | compressionQuality: 50
103 | crunchedCompression: 0
104 | allowsAlphaSplitting: 0
105 | overridden: 0
106 | ignorePlatformSupport: 0
107 | androidETC2FallbackOverride: 0
108 | forceMaximumCompressionQuality_BC6H_BC7: 0
109 | spriteSheet:
110 | serializedVersion: 2
111 | sprites: []
112 | outline: []
113 | physicsShape: []
114 | bones: []
115 | spriteID: 5e97eb03825dee720800000000000000
116 | internalID: 0
117 | vertices: []
118 | indices:
119 | edges: []
120 | weights: []
121 | secondaryTextures: []
122 | nameFileIdTable: {}
123 | mipmapLimitGroupName:
124 | pSDRemoveMatte: 0
125 | userData:
126 | assetBundleName:
127 | assetBundleVariant:
128 |
--------------------------------------------------------------------------------
/UILineRenderer.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEngine.UI;
3 |
4 | namespace Radishmouse
5 | {
6 | [RequireComponent(typeof(CanvasRenderer))]
7 | public class UILineRenderer : MaskableGraphic
8 | {
9 | public Vector2[] points;
10 |
11 | public float thickness = 10f;
12 | public bool center = true;
13 |
14 | protected override void OnPopulateMesh(VertexHelper vh)
15 | {
16 | vh.Clear();
17 |
18 | if (points.Length < 2)
19 | return;
20 |
21 | for (int i = 0; i < points.Length-1; i++)
22 | {
23 | // Create a line segment between the next two points
24 | CreateLineSegment(points[i], points[i+1], vh);
25 |
26 | int index = i * 5;
27 |
28 | // Add the line segment to the triangles array
29 | vh.AddTriangle(index, index+1, index+3);
30 | vh.AddTriangle(index+3, index+2, index);
31 |
32 | // These two triangles create the beveled edges
33 | // between line segments using the end point of
34 | // the last line segment and the start points of this one
35 | if (i != 0)
36 | {
37 | vh.AddTriangle(index, index-1, index-3);
38 | vh.AddTriangle(index+1, index-1, index-2);
39 | }
40 | }
41 | }
42 |
43 | ///
44 | /// Creates a rect from two points that acts as a line segment
45 | ///
46 | /// The starting point of the segment
47 | /// The endint point of the segment
48 | /// The vertex helper that the segment is added to
49 | private void CreateLineSegment(Vector3 point1, Vector3 point2, VertexHelper vh)
50 | {
51 | Vector3 offset = center ? (rectTransform.sizeDelta / 2) : Vector2.zero;
52 |
53 | // Create vertex template
54 | UIVertex vertex = UIVertex.simpleVert;
55 | vertex.color = color;
56 |
57 | // Create the start of the segment
58 | Quaternion point1Rotation = Quaternion.Euler(0, 0, RotatePointTowards(point1, point2) + 90);
59 | vertex.position = point1Rotation * new Vector3(-thickness / 2, 0);
60 | vertex.position += point1 - offset;
61 | vh.AddVert(vertex);
62 | vertex.position = point1Rotation * new Vector3(thickness / 2, 0);
63 | vertex.position += point1 - offset;
64 | vh.AddVert(vertex);
65 |
66 | // Create the end of the segment
67 | Quaternion point2Rotation = Quaternion.Euler(0, 0, RotatePointTowards(point2, point1) - 90);
68 | vertex.position = point2Rotation * new Vector3(-thickness / 2, 0);
69 | vertex.position += point2 - offset;
70 | vh.AddVert(vertex);
71 | vertex.position = point2Rotation * new Vector3(thickness / 2, 0);
72 | vertex.position += point2 - offset;
73 | vh.AddVert(vertex);
74 |
75 | // Also add the end point
76 | vertex.position = point2 - offset;
77 | vh.AddVert(vertex);
78 | }
79 |
80 | ///
81 | /// Gets the angle that a vertex needs to rotate to face target vertex
82 | ///
83 | /// The vertex being rotated
84 | /// The vertex to rotate towards
85 | /// The angle required to rotate vertex towards target
86 | private float RotatePointTowards(Vector2 vertex, Vector2 target)
87 | {
88 | return (float)(Mathf.Atan2(target.y - vertex.y, target.x - vertex.x) * (180 / Mathf.PI));
89 | }
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/Sample.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | OcclusionCullingSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_OcclusionBakeSettings:
8 | smallestOccluder: 5
9 | smallestHole: 0.25
10 | backfaceThreshold: 100
11 | m_SceneGUID: 00000000000000000000000000000000
12 | m_OcclusionCullingData: {fileID: 0}
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 9
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 0
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
30 | m_HaloStrength: 0.5
31 | m_FlareStrength: 1
32 | m_FlareFadeSpeed: 3
33 | m_HaloTexture: {fileID: 0}
34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
35 | m_DefaultReflectionMode: 0
36 | m_DefaultReflectionResolution: 128
37 | m_ReflectionBounces: 1
38 | m_ReflectionIntensity: 1
39 | m_CustomReflection: {fileID: 0}
40 | m_Sun: {fileID: 705507994}
41 | m_IndirectSpecularColor: {r: 0.44657874, g: 0.49641275, b: 0.5748172, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 12
47 | m_GIWorkflowMode: 1
48 | m_GISettings:
49 | serializedVersion: 2
50 | m_BounceScale: 1
51 | m_IndirectOutputScale: 1
52 | m_AlbedoBoost: 1
53 | m_EnvironmentLightingMode: 0
54 | m_EnableBakedLightmaps: 1
55 | m_EnableRealtimeLightmaps: 0
56 | m_LightmapEditorSettings:
57 | serializedVersion: 12
58 | m_Resolution: 2
59 | m_BakeResolution: 40
60 | m_AtlasSize: 1024
61 | m_AO: 0
62 | m_AOMaxDistance: 1
63 | m_CompAOExponent: 1
64 | m_CompAOExponentDirect: 0
65 | m_ExtractAmbientOcclusion: 0
66 | m_Padding: 2
67 | m_LightmapParameters: {fileID: 0}
68 | m_LightmapsBakeMode: 1
69 | m_TextureCompression: 1
70 | m_FinalGather: 0
71 | m_FinalGatherFiltering: 1
72 | m_FinalGatherRayCount: 256
73 | m_ReflectionCompression: 2
74 | m_MixedBakeMode: 2
75 | m_BakeBackend: 1
76 | m_PVRSampling: 1
77 | m_PVRDirectSampleCount: 32
78 | m_PVRSampleCount: 500
79 | m_PVRBounces: 2
80 | m_PVREnvironmentSampleCount: 500
81 | m_PVREnvironmentReferencePointCount: 2048
82 | m_PVRFilteringMode: 2
83 | m_PVRDenoiserTypeDirect: 0
84 | m_PVRDenoiserTypeIndirect: 0
85 | m_PVRDenoiserTypeAO: 0
86 | m_PVRFilterTypeDirect: 0
87 | m_PVRFilterTypeIndirect: 0
88 | m_PVRFilterTypeAO: 0
89 | m_PVREnvironmentMIS: 0
90 | m_PVRCulling: 1
91 | m_PVRFilteringGaussRadiusDirect: 1
92 | m_PVRFilteringGaussRadiusIndirect: 5
93 | m_PVRFilteringGaussRadiusAO: 2
94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
96 | m_PVRFilteringAtrousPositionSigmaAO: 1
97 | m_ExportTrainingData: 0
98 | m_TrainingDataDestination: TrainingData
99 | m_LightProbeSampleCountMultiplier: 4
100 | m_LightingDataAsset: {fileID: 0}
101 | m_LightingSettings: {fileID: 0}
102 | --- !u!196 &4
103 | NavMeshSettings:
104 | serializedVersion: 2
105 | m_ObjectHideFlags: 0
106 | m_BuildSettings:
107 | serializedVersion: 3
108 | agentTypeID: 0
109 | agentRadius: 0.5
110 | agentHeight: 2
111 | agentSlope: 45
112 | agentClimb: 0.4
113 | ledgeDropHeight: 0
114 | maxJumpAcrossDistance: 0
115 | minRegionArea: 2
116 | manualCellSize: 0
117 | cellSize: 0.16666667
118 | manualTileSize: 0
119 | tileSize: 256
120 | buildHeightMesh: 0
121 | maxJobWorkers: 0
122 | preserveTilesOutsideBounds: 0
123 | debug:
124 | m_Flags: 0
125 | m_NavMeshData: {fileID: 0}
126 | --- !u!1 &246206081
127 | GameObject:
128 | m_ObjectHideFlags: 0
129 | m_CorrespondingSourceObject: {fileID: 0}
130 | m_PrefabInstance: {fileID: 0}
131 | m_PrefabAsset: {fileID: 0}
132 | serializedVersion: 6
133 | m_Component:
134 | - component: {fileID: 246206082}
135 | - component: {fileID: 246206084}
136 | - component: {fileID: 246206083}
137 | m_Layer: 5
138 | m_Name: LineRenderer
139 | m_TagString: Untagged
140 | m_Icon: {fileID: 0}
141 | m_NavMeshLayer: 0
142 | m_StaticEditorFlags: 0
143 | m_IsActive: 1
144 | --- !u!224 &246206082
145 | RectTransform:
146 | m_ObjectHideFlags: 0
147 | m_CorrespondingSourceObject: {fileID: 0}
148 | m_PrefabInstance: {fileID: 0}
149 | m_PrefabAsset: {fileID: 0}
150 | m_GameObject: {fileID: 246206081}
151 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
152 | m_LocalPosition: {x: 0, y: 0, z: 0}
153 | m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
154 | m_ConstrainProportionsScale: 1
155 | m_Children: []
156 | m_Father: {fileID: 387643621}
157 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
158 | m_AnchorMin: {x: 0.5, y: 0.5}
159 | m_AnchorMax: {x: 0.5, y: 0.5}
160 | m_AnchoredPosition: {x: 0, y: 0}
161 | m_SizeDelta: {x: 1000, y: 300}
162 | m_Pivot: {x: 0.5, y: 0.5}
163 | --- !u!114 &246206083
164 | MonoBehaviour:
165 | m_ObjectHideFlags: 0
166 | m_CorrespondingSourceObject: {fileID: 0}
167 | m_PrefabInstance: {fileID: 0}
168 | m_PrefabAsset: {fileID: 0}
169 | m_GameObject: {fileID: 246206081}
170 | m_Enabled: 1
171 | m_EditorHideFlags: 0
172 | m_Script: {fileID: 11500000, guid: 5b33b2e663e78774c9f0c9af55018725, type: 3}
173 | m_Name:
174 | m_EditorClassIdentifier:
175 | m_Material: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
176 | m_Color: {r: 1, g: 1, b: 1, a: 1}
177 | m_RaycastTarget: 1
178 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
179 | points:
180 | - {x: 0, y: 0}
181 | - {x: 58.7, y: 138.4}
182 | - {x: 125.1, y: 80.6}
183 | - {x: 238.9, y: 300}
184 | - {x: 354, y: 100}
185 | - {x: 512.2, y: 70}
186 | - {x: 716.1, y: 192.5}
187 | - {x: 938.8, y: 3.85}
188 | - {x: 1000, y: 133}
189 | thickness: 20
190 | center: 1
191 | --- !u!222 &246206084
192 | CanvasRenderer:
193 | m_ObjectHideFlags: 0
194 | m_CorrespondingSourceObject: {fileID: 0}
195 | m_PrefabInstance: {fileID: 0}
196 | m_PrefabAsset: {fileID: 0}
197 | m_GameObject: {fileID: 246206081}
198 | m_CullTransparentMesh: 1
199 | --- !u!1 &387643617
200 | GameObject:
201 | m_ObjectHideFlags: 0
202 | m_CorrespondingSourceObject: {fileID: 0}
203 | m_PrefabInstance: {fileID: 0}
204 | m_PrefabAsset: {fileID: 0}
205 | serializedVersion: 6
206 | m_Component:
207 | - component: {fileID: 387643621}
208 | - component: {fileID: 387643620}
209 | - component: {fileID: 387643619}
210 | - component: {fileID: 387643618}
211 | m_Layer: 5
212 | m_Name: Canvas
213 | m_TagString: Untagged
214 | m_Icon: {fileID: 0}
215 | m_NavMeshLayer: 0
216 | m_StaticEditorFlags: 0
217 | m_IsActive: 1
218 | --- !u!114 &387643618
219 | MonoBehaviour:
220 | m_ObjectHideFlags: 0
221 | m_CorrespondingSourceObject: {fileID: 0}
222 | m_PrefabInstance: {fileID: 0}
223 | m_PrefabAsset: {fileID: 0}
224 | m_GameObject: {fileID: 387643617}
225 | m_Enabled: 1
226 | m_EditorHideFlags: 0
227 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
228 | m_Name:
229 | m_EditorClassIdentifier:
230 | m_IgnoreReversedGraphics: 1
231 | m_BlockingObjects: 0
232 | m_BlockingMask:
233 | serializedVersion: 2
234 | m_Bits: 4294967295
235 | --- !u!114 &387643619
236 | MonoBehaviour:
237 | m_ObjectHideFlags: 0
238 | m_CorrespondingSourceObject: {fileID: 0}
239 | m_PrefabInstance: {fileID: 0}
240 | m_PrefabAsset: {fileID: 0}
241 | m_GameObject: {fileID: 387643617}
242 | m_Enabled: 1
243 | m_EditorHideFlags: 0
244 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
245 | m_Name:
246 | m_EditorClassIdentifier:
247 | m_UiScaleMode: 1
248 | m_ReferencePixelsPerUnit: 100
249 | m_ScaleFactor: 1
250 | m_ReferenceResolution: {x: 1920, y: 1080}
251 | m_ScreenMatchMode: 0
252 | m_MatchWidthOrHeight: 0
253 | m_PhysicalUnit: 3
254 | m_FallbackScreenDPI: 96
255 | m_DefaultSpriteDPI: 96
256 | m_DynamicPixelsPerUnit: 1
257 | m_PresetInfoIsWorld: 0
258 | --- !u!223 &387643620
259 | Canvas:
260 | m_ObjectHideFlags: 0
261 | m_CorrespondingSourceObject: {fileID: 0}
262 | m_PrefabInstance: {fileID: 0}
263 | m_PrefabAsset: {fileID: 0}
264 | m_GameObject: {fileID: 387643617}
265 | m_Enabled: 1
266 | serializedVersion: 3
267 | m_RenderMode: 0
268 | m_Camera: {fileID: 0}
269 | m_PlaneDistance: 100
270 | m_PixelPerfect: 0
271 | m_ReceivesEvents: 1
272 | m_OverrideSorting: 0
273 | m_OverridePixelPerfect: 0
274 | m_SortingBucketNormalizedSize: 0
275 | m_VertexColorAlwaysGammaSpace: 0
276 | m_AdditionalShaderChannelsFlag: 0
277 | m_UpdateRectTransformForStandalone: 0
278 | m_SortingLayerID: 0
279 | m_SortingOrder: 0
280 | m_TargetDisplay: 0
281 | --- !u!224 &387643621
282 | RectTransform:
283 | m_ObjectHideFlags: 0
284 | m_CorrespondingSourceObject: {fileID: 0}
285 | m_PrefabInstance: {fileID: 0}
286 | m_PrefabAsset: {fileID: 0}
287 | m_GameObject: {fileID: 387643617}
288 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
289 | m_LocalPosition: {x: 0, y: 0, z: 0}
290 | m_LocalScale: {x: 0, y: 0, z: 0}
291 | m_ConstrainProportionsScale: 0
292 | m_Children:
293 | - {fileID: 1231462426}
294 | - {fileID: 246206082}
295 | m_Father: {fileID: 0}
296 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
297 | m_AnchorMin: {x: 0, y: 0}
298 | m_AnchorMax: {x: 0, y: 0}
299 | m_AnchoredPosition: {x: 0, y: 0}
300 | m_SizeDelta: {x: 0, y: 0}
301 | m_Pivot: {x: 0, y: 0}
302 | --- !u!1 &705507993
303 | GameObject:
304 | m_ObjectHideFlags: 0
305 | m_CorrespondingSourceObject: {fileID: 0}
306 | m_PrefabInstance: {fileID: 0}
307 | m_PrefabAsset: {fileID: 0}
308 | serializedVersion: 6
309 | m_Component:
310 | - component: {fileID: 705507995}
311 | - component: {fileID: 705507994}
312 | m_Layer: 0
313 | m_Name: Directional Light
314 | m_TagString: Untagged
315 | m_Icon: {fileID: 0}
316 | m_NavMeshLayer: 0
317 | m_StaticEditorFlags: 0
318 | m_IsActive: 1
319 | --- !u!108 &705507994
320 | Light:
321 | m_ObjectHideFlags: 0
322 | m_CorrespondingSourceObject: {fileID: 0}
323 | m_PrefabInstance: {fileID: 0}
324 | m_PrefabAsset: {fileID: 0}
325 | m_GameObject: {fileID: 705507993}
326 | m_Enabled: 1
327 | serializedVersion: 10
328 | m_Type: 1
329 | m_Shape: 0
330 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
331 | m_Intensity: 1
332 | m_Range: 10
333 | m_SpotAngle: 30
334 | m_InnerSpotAngle: 21.80208
335 | m_CookieSize: 10
336 | m_Shadows:
337 | m_Type: 2
338 | m_Resolution: -1
339 | m_CustomResolution: -1
340 | m_Strength: 1
341 | m_Bias: 0.05
342 | m_NormalBias: 0.4
343 | m_NearPlane: 0.2
344 | m_CullingMatrixOverride:
345 | e00: 1
346 | e01: 0
347 | e02: 0
348 | e03: 0
349 | e10: 0
350 | e11: 1
351 | e12: 0
352 | e13: 0
353 | e20: 0
354 | e21: 0
355 | e22: 1
356 | e23: 0
357 | e30: 0
358 | e31: 0
359 | e32: 0
360 | e33: 1
361 | m_UseCullingMatrixOverride: 0
362 | m_Cookie: {fileID: 0}
363 | m_DrawHalo: 0
364 | m_Flare: {fileID: 0}
365 | m_RenderMode: 0
366 | m_CullingMask:
367 | serializedVersion: 2
368 | m_Bits: 4294967295
369 | m_RenderingLayerMask: 1
370 | m_Lightmapping: 1
371 | m_LightShadowCasterMode: 0
372 | m_AreaSize: {x: 1, y: 1}
373 | m_BounceIntensity: 1
374 | m_ColorTemperature: 6570
375 | m_UseColorTemperature: 0
376 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
377 | m_UseBoundingSphereOverride: 0
378 | m_UseViewFrustumForShadowCasterCull: 1
379 | m_ShadowRadius: 0
380 | m_ShadowAngle: 0
381 | --- !u!4 &705507995
382 | Transform:
383 | m_ObjectHideFlags: 0
384 | m_CorrespondingSourceObject: {fileID: 0}
385 | m_PrefabInstance: {fileID: 0}
386 | m_PrefabAsset: {fileID: 0}
387 | m_GameObject: {fileID: 705507993}
388 | serializedVersion: 2
389 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
390 | m_LocalPosition: {x: 0, y: 3, z: 0}
391 | m_LocalScale: {x: 1, y: 1, z: 1}
392 | m_ConstrainProportionsScale: 0
393 | m_Children: []
394 | m_Father: {fileID: 0}
395 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
396 | --- !u!1 &963194225
397 | GameObject:
398 | m_ObjectHideFlags: 0
399 | m_CorrespondingSourceObject: {fileID: 0}
400 | m_PrefabInstance: {fileID: 0}
401 | m_PrefabAsset: {fileID: 0}
402 | serializedVersion: 6
403 | m_Component:
404 | - component: {fileID: 963194228}
405 | - component: {fileID: 963194227}
406 | - component: {fileID: 963194226}
407 | m_Layer: 0
408 | m_Name: Main Camera
409 | m_TagString: MainCamera
410 | m_Icon: {fileID: 0}
411 | m_NavMeshLayer: 0
412 | m_StaticEditorFlags: 0
413 | m_IsActive: 1
414 | --- !u!81 &963194226
415 | AudioListener:
416 | m_ObjectHideFlags: 0
417 | m_CorrespondingSourceObject: {fileID: 0}
418 | m_PrefabInstance: {fileID: 0}
419 | m_PrefabAsset: {fileID: 0}
420 | m_GameObject: {fileID: 963194225}
421 | m_Enabled: 1
422 | --- !u!20 &963194227
423 | Camera:
424 | m_ObjectHideFlags: 0
425 | m_CorrespondingSourceObject: {fileID: 0}
426 | m_PrefabInstance: {fileID: 0}
427 | m_PrefabAsset: {fileID: 0}
428 | m_GameObject: {fileID: 963194225}
429 | m_Enabled: 1
430 | serializedVersion: 2
431 | m_ClearFlags: 1
432 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
433 | m_projectionMatrixMode: 1
434 | m_GateFitMode: 2
435 | m_FOVAxisMode: 0
436 | m_Iso: 200
437 | m_ShutterSpeed: 0.005
438 | m_Aperture: 16
439 | m_FocusDistance: 10
440 | m_FocalLength: 50
441 | m_BladeCount: 5
442 | m_Curvature: {x: 2, y: 11}
443 | m_BarrelClipping: 0.25
444 | m_Anamorphism: 0
445 | m_SensorSize: {x: 36, y: 24}
446 | m_LensShift: {x: 0, y: 0}
447 | m_NormalizedViewPortRect:
448 | serializedVersion: 2
449 | x: 0
450 | y: 0
451 | width: 1
452 | height: 1
453 | near clip plane: 0.3
454 | far clip plane: 1000
455 | field of view: 60
456 | orthographic: 0
457 | orthographic size: 5
458 | m_Depth: -1
459 | m_CullingMask:
460 | serializedVersion: 2
461 | m_Bits: 4294967295
462 | m_RenderingPath: -1
463 | m_TargetTexture: {fileID: 0}
464 | m_TargetDisplay: 0
465 | m_TargetEye: 3
466 | m_HDR: 1
467 | m_AllowMSAA: 1
468 | m_AllowDynamicResolution: 0
469 | m_ForceIntoRT: 0
470 | m_OcclusionCulling: 1
471 | m_StereoConvergence: 10
472 | m_StereoSeparation: 0.022
473 | --- !u!4 &963194228
474 | Transform:
475 | m_ObjectHideFlags: 0
476 | m_CorrespondingSourceObject: {fileID: 0}
477 | m_PrefabInstance: {fileID: 0}
478 | m_PrefabAsset: {fileID: 0}
479 | m_GameObject: {fileID: 963194225}
480 | serializedVersion: 2
481 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
482 | m_LocalPosition: {x: 0, y: 1, z: -10}
483 | m_LocalScale: {x: 1, y: 1, z: 1}
484 | m_ConstrainProportionsScale: 0
485 | m_Children: []
486 | m_Father: {fileID: 0}
487 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
488 | --- !u!1 &1231462425
489 | GameObject:
490 | m_ObjectHideFlags: 0
491 | m_CorrespondingSourceObject: {fileID: 0}
492 | m_PrefabInstance: {fileID: 0}
493 | m_PrefabAsset: {fileID: 0}
494 | serializedVersion: 6
495 | m_Component:
496 | - component: {fileID: 1231462426}
497 | - component: {fileID: 1231462428}
498 | - component: {fileID: 1231462427}
499 | m_Layer: 5
500 | m_Name: Background
501 | m_TagString: Untagged
502 | m_Icon: {fileID: 0}
503 | m_NavMeshLayer: 0
504 | m_StaticEditorFlags: 0
505 | m_IsActive: 1
506 | --- !u!224 &1231462426
507 | RectTransform:
508 | m_ObjectHideFlags: 0
509 | m_CorrespondingSourceObject: {fileID: 0}
510 | m_PrefabInstance: {fileID: 0}
511 | m_PrefabAsset: {fileID: 0}
512 | m_GameObject: {fileID: 1231462425}
513 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
514 | m_LocalPosition: {x: 0, y: 0, z: 0}
515 | m_LocalScale: {x: 1, y: 1, z: 1}
516 | m_ConstrainProportionsScale: 1
517 | m_Children: []
518 | m_Father: {fileID: 387643621}
519 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
520 | m_AnchorMin: {x: 0, y: 0}
521 | m_AnchorMax: {x: 1, y: 1}
522 | m_AnchoredPosition: {x: 0, y: 0}
523 | m_SizeDelta: {x: 0, y: 0}
524 | m_Pivot: {x: 0.5, y: 0.5}
525 | --- !u!114 &1231462427
526 | MonoBehaviour:
527 | m_ObjectHideFlags: 0
528 | m_CorrespondingSourceObject: {fileID: 0}
529 | m_PrefabInstance: {fileID: 0}
530 | m_PrefabAsset: {fileID: 0}
531 | m_GameObject: {fileID: 1231462425}
532 | m_Enabled: 1
533 | m_EditorHideFlags: 0
534 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
535 | m_Name:
536 | m_EditorClassIdentifier:
537 | m_Material: {fileID: 0}
538 | m_Color: {r: 1, g: 1, b: 1, a: 1}
539 | m_RaycastTarget: 1
540 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
541 | m_Maskable: 1
542 | m_OnCullStateChanged:
543 | m_PersistentCalls:
544 | m_Calls: []
545 | m_Sprite: {fileID: 21300000, guid: 980e274b7ed2de945bdefcc1d0423472, type: 3}
546 | m_Type: 0
547 | m_PreserveAspect: 0
548 | m_FillCenter: 1
549 | m_FillMethod: 4
550 | m_FillAmount: 1
551 | m_FillClockwise: 1
552 | m_FillOrigin: 0
553 | m_UseSpriteMesh: 0
554 | m_PixelsPerUnitMultiplier: 1
555 | --- !u!222 &1231462428
556 | CanvasRenderer:
557 | m_ObjectHideFlags: 0
558 | m_CorrespondingSourceObject: {fileID: 0}
559 | m_PrefabInstance: {fileID: 0}
560 | m_PrefabAsset: {fileID: 0}
561 | m_GameObject: {fileID: 1231462425}
562 | m_CullTransparentMesh: 1
563 | --- !u!1 &1721653935
564 | GameObject:
565 | m_ObjectHideFlags: 0
566 | m_CorrespondingSourceObject: {fileID: 0}
567 | m_PrefabInstance: {fileID: 0}
568 | m_PrefabAsset: {fileID: 0}
569 | serializedVersion: 6
570 | m_Component:
571 | - component: {fileID: 1721653938}
572 | - component: {fileID: 1721653937}
573 | - component: {fileID: 1721653936}
574 | m_Layer: 0
575 | m_Name: EventSystem
576 | m_TagString: Untagged
577 | m_Icon: {fileID: 0}
578 | m_NavMeshLayer: 0
579 | m_StaticEditorFlags: 0
580 | m_IsActive: 1
581 | --- !u!114 &1721653936
582 | MonoBehaviour:
583 | m_ObjectHideFlags: 0
584 | m_CorrespondingSourceObject: {fileID: 0}
585 | m_PrefabInstance: {fileID: 0}
586 | m_PrefabAsset: {fileID: 0}
587 | m_GameObject: {fileID: 1721653935}
588 | m_Enabled: 1
589 | m_EditorHideFlags: 0
590 | m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
591 | m_Name:
592 | m_EditorClassIdentifier:
593 | m_SendPointerHoverToParent: 1
594 | m_HorizontalAxis: Horizontal
595 | m_VerticalAxis: Vertical
596 | m_SubmitButton: Submit
597 | m_CancelButton: Cancel
598 | m_InputActionsPerSecond: 10
599 | m_RepeatDelay: 0.5
600 | m_ForceModuleActive: 0
601 | --- !u!114 &1721653937
602 | MonoBehaviour:
603 | m_ObjectHideFlags: 0
604 | m_CorrespondingSourceObject: {fileID: 0}
605 | m_PrefabInstance: {fileID: 0}
606 | m_PrefabAsset: {fileID: 0}
607 | m_GameObject: {fileID: 1721653935}
608 | m_Enabled: 1
609 | m_EditorHideFlags: 0
610 | m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
611 | m_Name:
612 | m_EditorClassIdentifier:
613 | m_FirstSelected: {fileID: 0}
614 | m_sendNavigationEvents: 1
615 | m_DragThreshold: 10
616 | --- !u!4 &1721653938
617 | Transform:
618 | m_ObjectHideFlags: 0
619 | m_CorrespondingSourceObject: {fileID: 0}
620 | m_PrefabInstance: {fileID: 0}
621 | m_PrefabAsset: {fileID: 0}
622 | m_GameObject: {fileID: 1721653935}
623 | serializedVersion: 2
624 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
625 | m_LocalPosition: {x: 0, y: 0, z: 0}
626 | m_LocalScale: {x: 1, y: 1, z: 1}
627 | m_ConstrainProportionsScale: 0
628 | m_Children: []
629 | m_Father: {fileID: 0}
630 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
631 | --- !u!1660057539 &9223372036854775807
632 | SceneRoots:
633 | m_ObjectHideFlags: 0
634 | m_Roots:
635 | - {fileID: 963194228}
636 | - {fileID: 705507995}
637 | - {fileID: 387643621}
638 | - {fileID: 1721653938}
639 |
--------------------------------------------------------------------------------