├── .gitignore
├── Assembly-CSharp.csproj
├── Assets
├── Advanced INI Parser.meta
├── Advanced INI Parser
│ ├── Example code, how to save and load game data.pdf
│ ├── Example code, how to save and load game data.pdf.meta
│ ├── How to use.pdf
│ ├── How to use.pdf.meta
│ ├── INIParser.cs
│ └── INIParser.cs.meta
├── Materials.meta
├── Materials
│ ├── MyCanvasMat.mat
│ └── MyCanvasMat.mat.meta
├── Scripts.meta
├── Scripts
│ ├── ControlPanelAssignment.cs
│ ├── ControlPanelAssignment.cs.meta
│ ├── Destroy.cs
│ ├── Destroy.cs.meta
│ ├── ISerialCommunication.cs
│ ├── ISerialCommunication.cs.meta
│ ├── Loom.cs
│ ├── Loom.cs.meta
│ ├── RunSerial.cs
│ ├── RunSerial.cs.meta
│ ├── SerialCommunication.cs
│ ├── SerialCommunication.cs.meta
│ ├── SerialCommunicationFacade.cs
│ ├── SerialCommunicationFacade.cs.meta
│ ├── TestFor.cs
│ ├── TestFor.cs.meta
│ ├── UdpServer.cs
│ └── UdpServer.cs.meta
├── myXML.meta
├── myXML
│ ├── settings.xml
│ └── settings.xml.meta
├── test.unity
└── test.unity.meta
├── LidarDataVisualization.sln
├── Packages
└── manifest.json
├── ProjectSettings
├── AudioManager.asset
├── ClusterInputManager.asset
├── DynamicsManager.asset
├── EditorBuildSettings.asset
├── EditorSettings.asset
├── GraphicsSettings.asset
├── InputManager.asset
├── NavMeshAreas.asset
├── NetworkManager.asset
├── Physics2DSettings.asset
├── PresetManager.asset
├── ProjectSettings.asset
├── ProjectVersion.txt
├── QualitySettings.asset
├── TagManager.asset
├── TimeManager.asset
└── UnityConnectSettings.asset
├── README.md
├── obj
└── Debug
│ ├── Assembly-CSharp.csproj.CopyComplete
│ └── Assembly-CSharp.csproj.FileListAbsolute.txt
└── testYDLidar.sln
/.gitignore:
--------------------------------------------------------------------------------
1 | .vs
2 | Library/
3 | Temp/
--------------------------------------------------------------------------------
/Assembly-CSharp.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 4
5 |
6 |
7 | Debug
8 | AnyCPU
9 | 10.0.20506
10 | 2.0
11 |
12 |
13 | {F05CD3FF-B3AF-6247-139E-B8132673E075}
14 | Library
15 | Properties
16 | Assembly-CSharp
17 | v3.5
18 | 512
19 | .
20 |
21 |
22 | true
23 | full
24 | false
25 | Temp\bin\Debug\
26 | DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_2_11;UNITY_2018_2;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_TEXTURE_STREAMING;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_VIDEO;ENABLE_PACKMAN;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_2_0;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_VSTU
27 | prompt
28 | 4
29 | 0169
30 | False
31 |
32 |
33 | pdbonly
34 | true
35 | Temp\bin\Release\
36 | prompt
37 | 4
38 | 0169
39 | False
40 |
41 |
42 | true
43 | true
44 | false
45 | false
46 | false
47 |
48 |
49 | {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
50 | Unity/VSTU
51 | Game:1
52 | StandaloneWindows64:19
53 | 2018.2.11f1
54 |
55 |
56 |
57 | C:\Program Files\Unity\Hub\Editor\2018.2.11f1\Editor\Data\Managed/UnityEngine/UnityEngine.dll
58 |
59 |
60 | C:\Program Files\Unity\Hub\Editor\2018.2.11f1\Editor\Data\Managed/UnityEditor.dll
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 | D:/yoki/git/yRnD/Unity/LidarDataVisualization/Library/ScriptAssemblies/UnityEditor.StandardEvents.dll
77 |
78 |
79 | D:/yoki/git/yRnD/Unity/LidarDataVisualization/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll
80 |
81 |
82 | D:/yoki/git/yRnD/Unity/LidarDataVisualization/Library/ScriptAssemblies/Unity.PackageManagerUI.Editor.dll
83 |
84 |
85 | D:/yoki/git/yRnD/Unity/LidarDataVisualization/Library/ScriptAssemblies/Unity.TextMeshPro.dll
86 |
87 |
88 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll
89 |
90 |
91 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll
92 |
93 |
94 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll
95 |
96 |
97 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll
98 |
99 |
100 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll
101 |
102 |
103 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll
104 |
105 |
106 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.BaselibModule.dll
107 |
108 |
109 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll
110 |
111 |
112 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.CloudWebServicesModule.dll
113 |
114 |
115 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll
116 |
117 |
118 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll
119 |
120 |
121 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll
122 |
123 |
124 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll
125 |
126 |
127 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll
128 |
129 |
130 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.FacebookModule.dll
131 |
132 |
133 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.FileSystemHttpModule.dll
134 |
135 |
136 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll
137 |
138 |
139 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll
140 |
141 |
142 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll
143 |
144 |
145 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll
146 |
147 |
148 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll
149 |
150 |
151 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll
152 |
153 |
154 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll
155 |
156 |
157 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll
158 |
159 |
160 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll
161 |
162 |
163 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticlesLegacyModule.dll
164 |
165 |
166 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll
167 |
168 |
169 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll
170 |
171 |
172 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll
173 |
174 |
175 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll
176 |
177 |
178 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll
179 |
180 |
181 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll
182 |
183 |
184 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll
185 |
186 |
187 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll
188 |
189 |
190 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll
191 |
192 |
193 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.StyleSheetsModule.dll
194 |
195 |
196 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll
197 |
198 |
199 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll
200 |
201 |
202 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll
203 |
204 |
205 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll
206 |
207 |
208 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll
209 |
210 |
211 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll
212 |
213 |
214 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.TimelineModule.dll
215 |
216 |
217 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll
218 |
219 |
220 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll
221 |
222 |
223 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll
224 |
225 |
226 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll
227 |
228 |
229 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll
230 |
231 |
232 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll
233 |
234 |
235 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll
236 |
237 |
238 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll
239 |
240 |
241 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll
242 |
243 |
244 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll
245 |
246 |
247 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll
248 |
249 |
250 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll
251 |
252 |
253 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll
254 |
255 |
256 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll
257 |
258 |
259 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll
260 |
261 |
262 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll
263 |
264 |
265 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/Managed/Unity.Locator.dll
266 |
267 |
268 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll
269 |
270 |
271 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/UnityExtensions/Unity/Timeline/RuntimeEditor/UnityEngine.Timeline.dll
272 |
273 |
274 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll
275 |
276 |
277 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/PlaybackEngines/VuforiaSupport/Managed/Runtime/Vuforia.UnityExtensions.dll
278 |
279 |
280 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/UnityExtensions/Unity/UnityGoogleAudioSpatializer/RuntimeEditor/UnityEngine.GoogleAudioSpatializer.dll
281 |
282 |
283 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/UnityExtensions/Unity/UnityHoloLens/RuntimeEditor/UnityEngine.HoloLens.dll
284 |
285 |
286 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/UnityExtensions/Unity/UnitySpatialTracking/RuntimeEditor/UnityEngine.SpatialTracking.dll
287 |
288 |
289 | C:/Users/yoki.yao/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.analytics@2.0.16/UnityEngine.Analytics.dll
290 |
291 |
292 | C:/Users/yoki.yao/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.standardevents@1.0.13/UnityEngine.StandardEvents.dll
293 |
294 |
295 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/mscorlib.dll
296 |
297 |
298 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.dll
299 |
300 |
301 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.Core.dll
302 |
303 |
304 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.Runtime.Serialization.dll
305 |
306 |
307 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.Xml.dll
308 |
309 |
310 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.Xml.Linq.dll
311 |
312 |
313 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/UnityScript.dll
314 |
315 |
316 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/UnityScript.Lang.dll
317 |
318 |
319 | C:/Program Files/Unity/Hub/Editor/2018.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/Boo.Lang.dll
320 |
321 |
322 |
323 |
324 |
331 |
--------------------------------------------------------------------------------
/Assets/Advanced INI Parser.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: aa2316fccf9de724bb33d1d086e1c19d
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Advanced INI Parser/Example code, how to save and load game data.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glegoo/unity-lidar-tuio/d179555772503ebb07168d0ebd98b4a24e3569cc/Assets/Advanced INI Parser/Example code, how to save and load game data.pdf
--------------------------------------------------------------------------------
/Assets/Advanced INI Parser/Example code, how to save and load game data.pdf.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b3723d992df31b742af5c40eaeaec89d
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Advanced INI Parser/How to use.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glegoo/unity-lidar-tuio/d179555772503ebb07168d0ebd98b4a24e3569cc/Assets/Advanced INI Parser/How to use.pdf
--------------------------------------------------------------------------------
/Assets/Advanced INI Parser/How to use.pdf.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9697693e4b60dff458dc8e90d74fdca2
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Advanced INI Parser/INIParser.cs:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Version: 1.0
3 | Project Boon
4 | *******************************/
5 |
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Globalization;
9 | using System.IO;
10 | using System.Text;
11 | using UnityEngine;
12 |
13 | public class INIParser
14 | {
15 | #region "Declarations"
16 |
17 | // *** Error: In case there're errors, this will changed to some value other than 1 ***
18 | // Error codes:
19 | // 1: Null TextAsset
20 | public int error = 0;
21 |
22 | // *** Lock for thread-safe access to file and local cache ***
23 | private object m_Lock = new object();
24 |
25 | // *** File name ***
26 | private string m_FileName = null;
27 | public string FileName
28 | {
29 | get
30 | {
31 | return m_FileName;
32 | }
33 | }
34 |
35 | // ** String represent Ini
36 | private string m_iniString = null;
37 | public string iniString
38 | {
39 | get
40 | {
41 | return m_iniString;
42 | }
43 | }
44 |
45 | // *** Automatic flushing flag ***
46 | private bool m_AutoFlush = false;
47 |
48 | // *** Local cache ***
49 | private Dictionary> m_Sections = new Dictionary>();
50 | private Dictionary> m_Modified = new Dictionary>();
51 |
52 | // *** Local cache modified flag ***
53 | private bool m_CacheModified = false;
54 |
55 | #endregion
56 |
57 | #region "Methods"
58 |
59 | // *** Open ini file by path ***
60 | public void Open(string path)
61 | {
62 | m_FileName = path;
63 |
64 | if (File.Exists(m_FileName))
65 | {
66 | m_iniString = File.ReadAllText(m_FileName);
67 | }
68 | else
69 | {
70 | //If file does not exist, create one
71 | var temp = File.Create(m_FileName);
72 | temp.Close();
73 | m_iniString = "";
74 | }
75 |
76 | Initialize(m_iniString, false);
77 | }
78 |
79 | // *** Open ini file by TextAsset: All changes is saved to local storage ***
80 | public void Open(TextAsset name)
81 | {
82 | if (name == null)
83 | {
84 | // In case null asset, treat as opened an empty file
85 | error = 1;
86 | m_iniString = "";
87 | m_FileName = null;
88 | Initialize(m_iniString, false);
89 | }
90 | else
91 | {
92 | m_FileName = Application.persistentDataPath + name.name;
93 |
94 | //*** Find the TextAsset in the local storage first ***
95 | if (File.Exists(m_FileName))
96 | {
97 | m_iniString = File.ReadAllText(m_FileName);
98 | }
99 | else m_iniString = name.text;
100 | Initialize(m_iniString, false);
101 | }
102 | }
103 |
104 | // *** Open ini file from string ***
105 | public void OpenFromString(string str)
106 | {
107 | m_FileName = null;
108 | Initialize(str, false);
109 | }
110 |
111 | // *** Get the string content of ini file ***
112 | public override string ToString()
113 | {
114 | return m_iniString;
115 | }
116 |
117 | private void Initialize(string iniString, bool AutoFlush)
118 | {
119 | m_iniString = iniString;
120 | m_AutoFlush = AutoFlush;
121 | Refresh();
122 | }
123 |
124 | // *** Close, save all changes to ini file ***
125 | public void Close()
126 | {
127 | lock (m_Lock)
128 | {
129 | PerformFlush();
130 |
131 | //Clean up memory
132 | m_FileName = null;
133 | m_iniString = null;
134 | }
135 | }
136 |
137 | // *** Parse section name ***
138 | private string ParseSectionName(string Line)
139 | {
140 | if (!Line.StartsWith("[")) return null;
141 | if (!Line.EndsWith("]")) return null;
142 | if (Line.Length < 3) return null;
143 | return Line.Substring(1, Line.Length - 2);
144 | }
145 |
146 | // *** Parse key+value pair ***
147 | private bool ParseKeyValuePair(string Line, ref string Key, ref string Value)
148 | {
149 | // *** Check for key+value pair ***
150 | int i;
151 | if ((i = Line.IndexOf('=')) <= 0) return false;
152 |
153 | int j = Line.Length - i - 1;
154 | Key = Line.Substring(0, i).Trim();
155 | if (Key.Length <= 0) return false;
156 |
157 | Value = (j > 0) ? (Line.Substring(i + 1, j).Trim()) : ("");
158 | return true;
159 | }
160 |
161 | // *** If a line is neither SectionName nor key+value pair, it's a comment ***
162 | private bool isComment(string Line)
163 | {
164 | string tmpKey = null, tmpValue = null;
165 | if (ParseSectionName(Line) != null) return false;
166 | if (ParseKeyValuePair(Line, ref tmpKey, ref tmpValue)) return false;
167 | return true;
168 | }
169 |
170 | // *** Read file contents into local cache ***
171 | private void Refresh()
172 | {
173 | lock (m_Lock)
174 | {
175 | StringReader sr = null;
176 | try
177 | {
178 | // *** Clear local cache ***
179 | m_Sections.Clear();
180 | m_Modified.Clear();
181 |
182 | // *** String Reader ***
183 | sr = new StringReader(m_iniString);
184 |
185 |
186 | // *** Read up the file content ***
187 | Dictionary CurrentSection = null;
188 | string s;
189 | string SectionName;
190 | string Key = null;
191 | string Value = null;
192 | while ((s = sr.ReadLine()) != null)
193 | {
194 | s = s.Trim();
195 |
196 | // *** Check for section names ***
197 | SectionName = ParseSectionName(s);
198 | if (SectionName != null)
199 | {
200 | // *** Only first occurrence of a section is loaded ***
201 | if (m_Sections.ContainsKey(SectionName))
202 | {
203 | CurrentSection = null;
204 | }
205 | else
206 | {
207 | CurrentSection = new Dictionary();
208 | m_Sections.Add(SectionName, CurrentSection);
209 | }
210 | }
211 | else if (CurrentSection != null)
212 | {
213 | // *** Check for key+value pair ***
214 | if (ParseKeyValuePair(s, ref Key, ref Value))
215 | {
216 | // *** Only first occurrence of a key is loaded ***
217 | if (!CurrentSection.ContainsKey(Key))
218 | {
219 | CurrentSection.Add(Key, Value);
220 | }
221 | }
222 | }
223 | }
224 | }
225 | finally
226 | {
227 | // *** Cleanup: close file ***
228 | if (sr != null) sr.Close();
229 | sr = null;
230 | }
231 | }
232 | }
233 |
234 | private void PerformFlush()
235 | {
236 | // *** If local cache was not modified, exit ***
237 | if (!m_CacheModified) return;
238 | m_CacheModified = false;
239 |
240 | // *** Copy content of original iniString to temporary string, replace modified values ***
241 | StringWriter sw = new StringWriter();
242 |
243 | try
244 | {
245 | Dictionary CurrentSection = null;
246 | Dictionary CurrentSection2 = null;
247 | StringReader sr = null;
248 | try
249 | {
250 | // *** Open the original file ***
251 | sr = new StringReader(m_iniString);
252 |
253 | // *** Read the file original content, replace changes with local cache values ***
254 | string s;
255 | string SectionName;
256 | string Key = null;
257 | string Value = null;
258 | bool Unmodified;
259 | bool Reading = true;
260 |
261 | bool Deleted = false;
262 | string Key2 = null;
263 | string Value2 = null;
264 |
265 | StringBuilder sb_temp;
266 |
267 | while (Reading)
268 | {
269 | s = sr.ReadLine();
270 | Reading = (s != null);
271 |
272 | // *** Check for end of iniString ***
273 | if (Reading)
274 | {
275 | Unmodified = true;
276 | s = s.Trim();
277 | SectionName = ParseSectionName(s);
278 | }
279 | else
280 | {
281 | Unmodified = false;
282 | SectionName = null;
283 | }
284 |
285 | // *** Check for section names ***
286 | if ((SectionName != null) || (!Reading))
287 | {
288 | if (CurrentSection != null)
289 | {
290 | // *** Write all remaining modified values before leaving a section ****
291 | if (CurrentSection.Count > 0)
292 | {
293 | // *** Optional: All blank lines before new values and sections are removed ****
294 | sb_temp = sw.GetStringBuilder();
295 | while ((sb_temp[sb_temp.Length - 1] == '\n') || (sb_temp[sb_temp.Length - 1] == '\r'))
296 | {
297 | sb_temp.Length = sb_temp.Length - 1;
298 | }
299 | sw.WriteLine();
300 |
301 | foreach (string fkey in CurrentSection.Keys)
302 | {
303 | if (CurrentSection.TryGetValue(fkey, out Value))
304 | {
305 | sw.Write(fkey);
306 | sw.Write('=');
307 | sw.WriteLine(Value);
308 | }
309 | }
310 | sw.WriteLine();
311 | CurrentSection.Clear();
312 | }
313 | }
314 |
315 | if (Reading)
316 | {
317 | // *** Check if current section is in local modified cache ***
318 | if (!m_Modified.TryGetValue(SectionName, out CurrentSection))
319 | {
320 | CurrentSection = null;
321 | }
322 | }
323 | }
324 | else if (CurrentSection != null)
325 | {
326 | // *** Check for key+value pair ***
327 | if (ParseKeyValuePair(s, ref Key, ref Value))
328 | {
329 | if (CurrentSection.TryGetValue(Key, out Value))
330 | {
331 | // *** Write modified value to temporary file ***
332 | Unmodified = false;
333 | CurrentSection.Remove(Key);
334 |
335 | sw.Write(Key);
336 | sw.Write('=');
337 | sw.WriteLine(Value);
338 | }
339 | }
340 | }
341 |
342 | // ** Check if the section/key in current line has been deleted ***
343 | if (Unmodified)
344 | {
345 | if (SectionName != null)
346 | {
347 | if (!m_Sections.ContainsKey(SectionName))
348 | {
349 | Deleted = true;
350 | CurrentSection2 = null;
351 | }
352 | else
353 | {
354 | Deleted = false;
355 | m_Sections.TryGetValue(SectionName, out CurrentSection2);
356 | }
357 |
358 | }
359 | else if (CurrentSection2 != null)
360 | {
361 | if (ParseKeyValuePair(s, ref Key2, ref Value2))
362 | {
363 | if (!CurrentSection2.ContainsKey(Key2)) Deleted = true;
364 | else Deleted = false;
365 | }
366 | }
367 | }
368 |
369 |
370 | // *** Write unmodified lines from the original iniString ***
371 | if (Unmodified)
372 | {
373 | if (isComment(s)) sw.WriteLine(s);
374 | else if (!Deleted) sw.WriteLine(s);
375 | }
376 | }
377 |
378 | // *** Close string reader ***
379 | sr.Close();
380 | sr = null;
381 | }
382 | finally
383 | {
384 | // *** Cleanup: close string reader ***
385 | if (sr != null) sr.Close();
386 | sr = null;
387 | }
388 |
389 | // *** Cycle on all remaining modified values ***
390 | foreach (KeyValuePair> SectionPair in m_Modified)
391 | {
392 | CurrentSection = SectionPair.Value;
393 | if (CurrentSection.Count > 0)
394 | {
395 | sw.WriteLine();
396 |
397 | // *** Write the section name ***
398 | sw.Write('[');
399 | sw.Write(SectionPair.Key);
400 | sw.WriteLine(']');
401 |
402 | // *** Cycle on all key+value pairs in the section ***
403 | foreach (KeyValuePair ValuePair in CurrentSection)
404 | {
405 | // *** Write the key+value pair ***
406 | sw.Write(ValuePair.Key);
407 | sw.Write('=');
408 | sw.WriteLine(ValuePair.Value);
409 | }
410 | CurrentSection.Clear();
411 | }
412 | }
413 | m_Modified.Clear();
414 |
415 | // *** Get result to iniString ***
416 | m_iniString = sw.ToString();
417 | sw.Close();
418 | sw = null;
419 |
420 | // ** Write iniString to file ***
421 | if (m_FileName != null)
422 | {
423 | File.WriteAllText(m_FileName, m_iniString);
424 | }
425 | }
426 | finally
427 | {
428 | // *** Cleanup: close string writer ***
429 | if (sw != null) sw.Close();
430 | sw = null;
431 | }
432 | }
433 |
434 | // *** Check if the section exists ***
435 | public bool IsSectionExists(string SectionName)
436 | {
437 | return m_Sections.ContainsKey(SectionName);
438 | }
439 |
440 | // *** Check if the key exists ***
441 | public bool IsKeyExists(string SectionName, string Key)
442 | {
443 | Dictionary Section;
444 |
445 | // *** Check if the section exists ***
446 | if (m_Sections.ContainsKey(SectionName))
447 | {
448 | m_Sections.TryGetValue(SectionName, out Section);
449 |
450 | // If the key exists
451 | return Section.ContainsKey(Key);
452 | }
453 | else return false;
454 | }
455 |
456 | // *** Delete a section in local cache ***
457 | public void SectionDelete(string SectionName)
458 | {
459 | // *** Delete section if exists ***
460 | if (IsSectionExists(SectionName))
461 | {
462 | lock (m_Lock)
463 | {
464 | m_CacheModified = true;
465 | m_Sections.Remove(SectionName);
466 |
467 | //Also delete in modified cache if exist
468 | m_Modified.Remove(SectionName);
469 |
470 | // *** Automatic flushing : immediately write any modification to the file ***
471 | if (m_AutoFlush) PerformFlush();
472 | }
473 | }
474 | }
475 |
476 | // *** Delete a key in local cache ***
477 | public void KeyDelete(string SectionName, string Key)
478 | {
479 | Dictionary Section;
480 |
481 | //Delete key if exists
482 | if (IsKeyExists(SectionName, Key))
483 | {
484 | lock (m_Lock)
485 | {
486 | m_CacheModified = true;
487 | m_Sections.TryGetValue(SectionName, out Section);
488 | Section.Remove(Key);
489 |
490 | //Also delete in modified cache if exist
491 | if (m_Modified.TryGetValue(SectionName, out Section)) Section.Remove(SectionName);
492 |
493 | // *** Automatic flushing : immediately write any modification to the file ***
494 | if (m_AutoFlush) PerformFlush();
495 | }
496 | }
497 |
498 | }
499 |
500 | // *** Read a value from local cache ***
501 | public string ReadValue(string SectionName, string Key, string DefaultValue)
502 | {
503 | lock (m_Lock)
504 | {
505 | // *** Check if the section exists ***
506 | Dictionary Section;
507 | if (!m_Sections.TryGetValue(SectionName, out Section)) return DefaultValue;
508 |
509 | // *** Check if the key exists ***
510 | string Value;
511 | if (!Section.TryGetValue(Key, out Value)) return DefaultValue;
512 |
513 | // *** Return the found value ***
514 | return Value;
515 | }
516 | }
517 |
518 | // *** Insert or modify a value in local cache ***
519 | public void WriteValue(string SectionName, string Key, string Value)
520 | {
521 | lock (m_Lock)
522 | {
523 | // *** Flag local cache modification ***
524 | m_CacheModified = true;
525 |
526 | // *** Check if the section exists ***
527 | Dictionary Section;
528 | if (!m_Sections.TryGetValue(SectionName, out Section))
529 | {
530 | // *** If it doesn't, add it ***
531 | Section = new Dictionary();
532 | m_Sections.Add(SectionName, Section);
533 | }
534 |
535 | // *** Modify the value ***
536 | if (Section.ContainsKey(Key)) Section.Remove(Key);
537 | Section.Add(Key, Value);
538 |
539 | // *** Add the modified value to local modified values cache ***
540 | if (!m_Modified.TryGetValue(SectionName, out Section))
541 | {
542 | Section = new Dictionary();
543 | m_Modified.Add(SectionName, Section);
544 | }
545 |
546 | if (Section.ContainsKey(Key)) Section.Remove(Key);
547 | Section.Add(Key, Value);
548 |
549 | // *** Automatic flushing : immediately write any modification to the file ***
550 | if (m_AutoFlush) PerformFlush();
551 | }
552 | }
553 |
554 | // *** Encode byte array ***
555 | private string EncodeByteArray(byte[] Value)
556 | {
557 | if (Value == null) return null;
558 |
559 | StringBuilder sb = new StringBuilder();
560 | foreach (byte b in Value)
561 | {
562 | string hex = Convert.ToString(b, 16);
563 | int l = hex.Length;
564 | if (l > 2)
565 | {
566 | sb.Append(hex.Substring(l - 2, 2));
567 | }
568 | else
569 | {
570 | if (l < 2) sb.Append("0");
571 | sb.Append(hex);
572 | }
573 | }
574 | return sb.ToString();
575 | }
576 |
577 | // *** Decode byte array ***
578 | private byte[] DecodeByteArray(string Value)
579 | {
580 | if (Value == null) return null;
581 |
582 | int l = Value.Length;
583 | if (l < 2) return new byte[] { };
584 |
585 | l /= 2;
586 | byte[] Result = new byte[l];
587 | for (int i = 0; i < l; i++) Result[i] = Convert.ToByte(Value.Substring(i * 2, 2), 16);
588 | return Result;
589 | }
590 |
591 | // *** Getters for various types ***
592 | public bool ReadValue(string SectionName, string Key, bool DefaultValue)
593 | {
594 | string StringValue = ReadValue(SectionName, Key, DefaultValue.ToString(System.Globalization.CultureInfo.InvariantCulture));
595 | int Value;
596 | if (int.TryParse(StringValue, out Value)) return (Value != 0);
597 | return DefaultValue;
598 | }
599 |
600 | public int ReadValue(string SectionName, string Key, int DefaultValue)
601 | {
602 | string StringValue = ReadValue(SectionName, Key, DefaultValue.ToString(CultureInfo.InvariantCulture));
603 | int Value;
604 | if (int.TryParse(StringValue, NumberStyles.Any, CultureInfo.InvariantCulture, out Value)) return Value;
605 | return DefaultValue;
606 | }
607 |
608 | public long ReadValue(string SectionName, string Key, long DefaultValue)
609 | {
610 | string StringValue = ReadValue(SectionName, Key, DefaultValue.ToString(CultureInfo.InvariantCulture));
611 | long Value;
612 | if (long.TryParse(StringValue, NumberStyles.Any, CultureInfo.InvariantCulture, out Value)) return Value;
613 | return DefaultValue;
614 | }
615 |
616 | public double ReadValue(string SectionName, string Key, double DefaultValue)
617 | {
618 | string StringValue = ReadValue(SectionName, Key, DefaultValue.ToString(CultureInfo.InvariantCulture));
619 | double Value;
620 | if (double.TryParse(StringValue, NumberStyles.Any, CultureInfo.InvariantCulture, out Value)) return Value;
621 | return DefaultValue;
622 | }
623 |
624 | public byte[] ReadValue(string SectionName, string Key, byte[] DefaultValue)
625 | {
626 | string StringValue = ReadValue(SectionName, Key, EncodeByteArray(DefaultValue));
627 | try
628 | {
629 | return DecodeByteArray(StringValue);
630 | }
631 | catch (FormatException)
632 | {
633 | return DefaultValue;
634 | }
635 | }
636 |
637 | public DateTime ReadValue(string SectionName, string Key, DateTime DefaultValue)
638 | {
639 | string StringValue = ReadValue(SectionName, Key, DefaultValue.ToString(CultureInfo.InvariantCulture));
640 | DateTime Value;
641 | if (DateTime.TryParse(StringValue, CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.NoCurrentDateDefault | DateTimeStyles.AssumeLocal, out Value)) return Value;
642 | return DefaultValue;
643 | }
644 |
645 | // *** Setters for various types ***
646 | public void WriteValue(string SectionName, string Key, bool Value)
647 | {
648 | WriteValue(SectionName, Key, (Value) ? ("1") : ("0"));
649 | }
650 |
651 | public void WriteValue(string SectionName, string Key, int Value)
652 | {
653 | WriteValue(SectionName, Key, Value.ToString(CultureInfo.InvariantCulture));
654 | }
655 |
656 | public void WriteValue(string SectionName, string Key, long Value)
657 | {
658 | WriteValue(SectionName, Key, Value.ToString(CultureInfo.InvariantCulture));
659 | }
660 |
661 | public void WriteValue(string SectionName, string Key, double Value)
662 | {
663 | WriteValue(SectionName, Key, Value.ToString(CultureInfo.InvariantCulture));
664 | }
665 |
666 | public void WriteValue(string SectionName, string Key, byte[] Value)
667 | {
668 | WriteValue(SectionName, Key, EncodeByteArray(Value));
669 | }
670 |
671 | public void WriteValue(string SectionName, string Key, DateTime Value)
672 | {
673 | WriteValue(SectionName, Key, Value.ToString(CultureInfo.InvariantCulture));
674 | }
675 |
676 | #endregion
677 | }
678 |
679 |
680 |
--------------------------------------------------------------------------------
/Assets/Advanced INI Parser/INIParser.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 11fe57842d0ce30478249f770ab1bf06
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Materials.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7660d1f6f65285b49a3662baf470522d
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Materials/MyCanvasMat.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_CorrespondingSourceObject: {fileID: 0}
8 | m_PrefabInternal: {fileID: 0}
9 | m_Name: MyCanvasMat
10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
11 | m_ShaderKeywords:
12 | m_LightmapFlags: 4
13 | m_EnableInstancingVariants: 0
14 | m_DoubleSidedGI: 0
15 | m_CustomRenderQueue: -1
16 | stringTagMap: {}
17 | disabledShaderPasses: []
18 | m_SavedProperties:
19 | serializedVersion: 3
20 | m_TexEnvs:
21 | - _BumpMap:
22 | m_Texture: {fileID: 0}
23 | m_Scale: {x: 1, y: 1}
24 | m_Offset: {x: 0, y: 0}
25 | - _DetailAlbedoMap:
26 | m_Texture: {fileID: 0}
27 | m_Scale: {x: 1, y: 1}
28 | m_Offset: {x: 0, y: 0}
29 | - _DetailMask:
30 | m_Texture: {fileID: 0}
31 | m_Scale: {x: 1, y: 1}
32 | m_Offset: {x: 0, y: 0}
33 | - _DetailNormalMap:
34 | m_Texture: {fileID: 0}
35 | m_Scale: {x: 1, y: 1}
36 | m_Offset: {x: 0, y: 0}
37 | - _EmissionMap:
38 | m_Texture: {fileID: 0}
39 | m_Scale: {x: 1, y: 1}
40 | m_Offset: {x: 0, y: 0}
41 | - _MainTex:
42 | m_Texture: {fileID: 0}
43 | m_Scale: {x: 1, y: 1}
44 | m_Offset: {x: 0, y: 0}
45 | - _MetallicGlossMap:
46 | m_Texture: {fileID: 0}
47 | m_Scale: {x: 1, y: 1}
48 | m_Offset: {x: 0, y: 0}
49 | - _OcclusionMap:
50 | m_Texture: {fileID: 0}
51 | m_Scale: {x: 1, y: 1}
52 | m_Offset: {x: 0, y: 0}
53 | - _ParallaxMap:
54 | m_Texture: {fileID: 0}
55 | m_Scale: {x: 1, y: 1}
56 | m_Offset: {x: 0, y: 0}
57 | m_Floats:
58 | - _BumpScale: 1
59 | - _Cutoff: 0.5
60 | - _DetailNormalMapScale: 1
61 | - _DstBlend: 0
62 | - _GlossMapScale: 1
63 | - _Glossiness: 0.5
64 | - _GlossyReflections: 1
65 | - _Metallic: 0
66 | - _Mode: 0
67 | - _OcclusionStrength: 1
68 | - _Parallax: 0.02
69 | - _SmoothnessTextureChannel: 0
70 | - _SpecularHighlights: 1
71 | - _SrcBlend: 1
72 | - _UVSec: 0
73 | - _ZWrite: 1
74 | m_Colors:
75 | - _Color: {r: 0, g: 0.6182554, b: 0.764151, a: 0.48235294}
76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
77 |
--------------------------------------------------------------------------------
/Assets/Materials/MyCanvasMat.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ff20ecd447754ab4ab43763753d0dfb8
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: eae2fbae6776d5743a49e685e8bc1b1e
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scripts/ControlPanelAssignment.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 | using UnityEngine.SceneManagement;
6 | namespace Assets.SerialPortUtility.Scripts
7 | {
8 | public class ControlPanelAssignment : MonoBehaviour
9 | {
10 |
11 | public SerialCommunicationFacade scf;
12 | public RunSerial rs;
13 | public GameObject inputfields;
14 | public GameObject textfields;
15 | public GameObject updatebutton;
16 | public GameObject reloadbutton;
17 |
18 |
19 | public Text particleSize;
20 | public Text zoomTimes;
21 | public Text sensorAngle;
22 | public Text sensorOffsetX;
23 | public Text sensorOffsetY;
24 | public Text ratioMM;
25 | public Text ratioPX;
26 | //public Text neededAreaWidth;
27 | //public Text neededAreaHeight;
28 | //public Text neededAreaOffsetX;
29 | //public Text neededAreaOffsetY;
30 | public Text gridSizeX;
31 | public Text gridSizeY;
32 | public Text xmlPath;
33 | public Text portName;
34 |
35 | public InputField particleSizeInput;
36 | public InputField zoomTimesInput;
37 | public InputField sensorAngleInput;
38 | public InputField sensorOffsetXInput;
39 | public InputField sensorOffsetYInput;
40 | public InputField ratioMMInput;
41 | public InputField ratioPXInput;
42 | public InputField neededAreaWidthInput;
43 | public InputField neededAreaHeightInput;
44 | public InputField neededAreaOffsetXInput;
45 | public InputField neededAreaOffsetYInput;
46 | public InputField gridSizeXInput;
47 | public InputField gridSizeYInput;
48 | public InputField xmlPathInput;
49 | public InputField portNameInput;
50 |
51 |
52 |
53 | bool isShown;
54 |
55 |
56 |
57 |
58 | void Awake()
59 | {
60 | if (PlayerPrefs.HasKey(particleSize.ToString())) particleSizeInput.text = PlayerPrefs.GetFloat(particleSize.ToString()).ToString();
61 | if (PlayerPrefs.HasKey(zoomTimes.ToString())) zoomTimesInput.text = PlayerPrefs.GetFloat(zoomTimes.ToString()).ToString();
62 | if (PlayerPrefs.HasKey(sensorAngle.ToString())) sensorAngleInput.text = PlayerPrefs.GetFloat(sensorAngle.ToString()).ToString();
63 | if (PlayerPrefs.HasKey(sensorOffsetX.ToString())) sensorOffsetXInput.text = PlayerPrefs.GetFloat(sensorOffsetX.ToString()).ToString();
64 | if (PlayerPrefs.HasKey(sensorOffsetY.ToString())) sensorOffsetYInput.text = PlayerPrefs.GetFloat(sensorOffsetY.ToString()).ToString();
65 | if (PlayerPrefs.HasKey(ratioMM.ToString())) ratioMMInput.text = PlayerPrefs.GetFloat(ratioMM.ToString()).ToString();
66 | if (PlayerPrefs.HasKey(ratioPX.ToString())) ratioPXInput.text = PlayerPrefs.GetFloat(ratioPX.ToString()).ToString();
67 | //if (PlayerPrefs.HasKey(neededAreaWidth.ToString())) neededAreaWidthInput.text = PlayerPrefs.GetFloat(neededAreaWidth.ToString()).ToString();
68 | //if (PlayerPrefs.HasKey(neededAreaHeight.ToString())) neededAreaHeightInput.text = PlayerPrefs.GetFloat(neededAreaHeight.ToString()).ToString();
69 | //if (PlayerPrefs.HasKey(neededAreaOffsetX.ToString())) neededAreaOffsetXInput.text = PlayerPrefs.GetFloat(neededAreaOffsetX.ToString()).ToString();
70 | //if (PlayerPrefs.HasKey(neededAreaOffsetY.ToString())) neededAreaOffsetYInput.text = PlayerPrefs.GetFloat(neededAreaOffsetY.ToString()).ToString();
71 | if (PlayerPrefs.HasKey(gridSizeX.ToString())) gridSizeXInput.text = PlayerPrefs.GetFloat(gridSizeX.ToString()).ToString();
72 | if (PlayerPrefs.HasKey(gridSizeY.ToString())) gridSizeYInput.text = PlayerPrefs.GetFloat(gridSizeY.ToString()).ToString();
73 | if (PlayerPrefs.HasKey(xmlPath.ToString())) xmlPathInput.text = PlayerPrefs.GetString(xmlPath.ToString()).ToString();
74 | if (PlayerPrefs.HasKey(portName.ToString())) portNameInput.text = PlayerPrefs.GetString(portName.ToString()).ToString();
75 |
76 | //assignment
77 | scf.particleSize = float.Parse(particleSizeInput.text);
78 | scf.zoomTimes = float.Parse(zoomTimesInput.text);
79 | scf.sensorAngle = float.Parse(sensorAngleInput.text);
80 | scf.sensorOffsetX = float.Parse(sensorOffsetXInput.text);
81 | scf.sensorOffsetY = float.Parse(sensorOffsetYInput.text);
82 | scf.ratioMM = float.Parse(ratioMMInput.text);
83 | scf.ratioPX = float.Parse(ratioPXInput.text);
84 | //scf.neededAreaWidth = float.Parse(neededAreaWidthInput.text);
85 | //scf.neededAreaHeight = float.Parse(neededAreaHeightInput.text);
86 | //scf.neededAreaOffsetX = float.Parse(neededAreaOffsetXInput.text);
87 | //scf.neededAreaOffsetY = float.Parse(neededAreaOffsetYInput.text);
88 | scf.gridSizeX = int.Parse(gridSizeXInput.text);
89 | scf.gridSizeY = int.Parse(gridSizeYInput.text);
90 | scf.xmlPath = xmlPathInput.text.ToString();
91 |
92 | rs.portName = portNameInput.text.ToString();
93 |
94 | //save playerPref
95 | PlayerPrefs.SetFloat(particleSize.ToString(), float.Parse(particleSizeInput.text));
96 | PlayerPrefs.SetFloat(zoomTimes.ToString(), float.Parse(zoomTimesInput.text));
97 | PlayerPrefs.SetFloat(sensorAngle.ToString(), float.Parse(sensorAngleInput.text));
98 | PlayerPrefs.SetFloat(sensorOffsetX.ToString(), float.Parse(sensorOffsetXInput.text));
99 | PlayerPrefs.SetFloat(sensorOffsetY.ToString(), float.Parse(sensorOffsetYInput.text));
100 | PlayerPrefs.SetFloat(ratioMM.ToString(), float.Parse(ratioMMInput.text));
101 | PlayerPrefs.SetFloat(ratioPX.ToString(), float.Parse(ratioPXInput.text));
102 | //PlayerPrefs.SetFloat(neededAreaWidth.ToString(), float.Parse(neededAreaWidthInput.text));
103 | //PlayerPrefs.SetFloat(neededAreaHeight.ToString(), float.Parse(neededAreaHeightInput.text));
104 | //PlayerPrefs.SetFloat(neededAreaOffsetX.ToString(), float.Parse(neededAreaOffsetXInput.text));
105 | //PlayerPrefs.SetFloat(neededAreaOffsetY.ToString(), float.Parse(neededAreaOffsetYInput.text));
106 | PlayerPrefs.SetFloat(gridSizeX.ToString(), int.Parse(gridSizeXInput.text));
107 | PlayerPrefs.SetFloat(gridSizeY.ToString(), int.Parse(gridSizeYInput.text));
108 | PlayerPrefs.SetString(xmlPath.ToString(), xmlPathInput.text.ToString());
109 | PlayerPrefs.SetString(portName.ToString(), portNameInput.text.ToString());
110 |
111 | isShown = false;
112 | inputfields.SetActive(isShown);
113 | textfields.SetActive(isShown);
114 | updatebutton.SetActive(isShown);
115 | reloadbutton.SetActive(isShown);
116 | }
117 |
118 | public void UpdatePlayerPref()
119 | {
120 | //assignment
121 | scf.particleSize = float.Parse(particleSizeInput.text);
122 | scf.zoomTimes = float.Parse(zoomTimesInput.text);
123 | scf.sensorAngle = float.Parse(sensorAngleInput.text);
124 | scf.sensorOffsetX = float.Parse(sensorOffsetXInput.text);
125 | scf.sensorOffsetY = float.Parse(sensorOffsetYInput.text);
126 | scf.ratioMM = float.Parse(ratioMMInput.text);
127 | scf.ratioPX = float.Parse(ratioPXInput.text);
128 | //scf.neededAreaWidth = float.Parse(neededAreaWidthInput.text);
129 | //scf.neededAreaHeight = float.Parse(neededAreaHeightInput.text);
130 | //scf.neededAreaOffsetX = float.Parse(neededAreaOffsetXInput.text);
131 | //scf.neededAreaOffsetY = float.Parse(neededAreaOffsetYInput.text);
132 | scf.gridSizeX = int.Parse(gridSizeXInput.text);
133 | scf.gridSizeY = int.Parse(gridSizeYInput.text);
134 | scf.xmlPath = xmlPathInput.text.ToString();
135 | scf.UpdateDataWPlayerPref();
136 | rs.portName = portNameInput.text.ToString();
137 |
138 | //save playerPref
139 | PlayerPrefs.SetFloat(particleSize.ToString(), float.Parse(particleSizeInput.text));
140 | PlayerPrefs.SetFloat(zoomTimes.ToString(), float.Parse(zoomTimesInput.text));
141 | PlayerPrefs.SetFloat(sensorAngle.ToString(), float.Parse(sensorAngleInput.text));
142 | PlayerPrefs.SetFloat(sensorOffsetX.ToString(), float.Parse(sensorOffsetXInput.text));
143 | PlayerPrefs.SetFloat(sensorOffsetY.ToString(), float.Parse(sensorOffsetYInput.text));
144 | PlayerPrefs.SetFloat(ratioMM.ToString(), float.Parse(ratioMMInput.text));
145 | PlayerPrefs.SetFloat(ratioPX.ToString(), float.Parse(ratioPXInput.text));
146 | //PlayerPrefs.SetFloat(neededAreaWidth.ToString(), float.Parse(neededAreaWidthInput.text));
147 | //PlayerPrefs.SetFloat(neededAreaHeight.ToString(), float.Parse(neededAreaHeightInput.text));
148 | //PlayerPrefs.SetFloat(neededAreaOffsetX.ToString(), float.Parse(neededAreaOffsetXInput.text));
149 | //PlayerPrefs.SetFloat(neededAreaOffsetY.ToString(), float.Parse(neededAreaOffsetYInput.text));
150 | PlayerPrefs.SetFloat(gridSizeX.ToString(), int.Parse(gridSizeXInput.text));
151 | PlayerPrefs.SetFloat(gridSizeY.ToString(), int.Parse(gridSizeYInput.text));
152 | PlayerPrefs.SetString(xmlPath.ToString(), xmlPathInput.text.ToString());
153 | PlayerPrefs.SetString(portName.ToString(), portNameInput.text.ToString());
154 | }
155 |
156 |
157 | private void Update()
158 | {
159 | if (Input.GetKeyDown("d"))
160 | {
161 |
162 | isShown = !isShown;
163 | inputfields.SetActive(isShown);
164 | textfields.SetActive(isShown);
165 | updatebutton.SetActive(isShown);
166 | reloadbutton.SetActive(isShown);
167 |
168 | }
169 |
170 | }
171 |
172 | public void ReloadScene()
173 | {
174 | UpdatePlayerPref();
175 | rs.DisconnectLidar();
176 | SceneManager.LoadScene(SceneManager.GetActiveScene().name);
177 |
178 | }
179 |
180 | }
181 | }
--------------------------------------------------------------------------------
/Assets/Scripts/ControlPanelAssignment.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b4d4a6901feff664988f851a690d917b
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Scripts/Destroy.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class Destroy : MonoBehaviour {
6 |
7 | // Use this for initialization
8 | void Start () {
9 | Destroy(this);
10 | }
11 |
12 | // Update is called once per frame
13 | void Update () {
14 | Destroy(this);
15 | //if (Time.deltaTime > 0.2f)
16 | //{
17 | // Destroy(this);
18 | //}
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Assets/Scripts/Destroy.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7c7b1e1d5e41d4648800f29071e57427
3 | timeCreated: 1550636063
4 | licenseType: Free
5 | MonoImporter:
6 | externalObjects: {}
7 | serializedVersion: 2
8 | defaultReferences: []
9 | executionOrder: 0
10 | icon: {instanceID: 0}
11 | userData:
12 | assetBundleName:
13 | assetBundleVariant:
14 |
--------------------------------------------------------------------------------
/Assets/Scripts/ISerialCommunication.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Assets.SerialPortUtility.Interfaces
7 | {
8 | public interface ISerialCommunication
9 | {
10 | void Connect(int baudrate, string portName);
11 |
12 | void Disconnect();
13 | void SendMessage(byte[] byteArray);
14 | }
15 | }
--------------------------------------------------------------------------------
/Assets/Scripts/ISerialCommunication.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a301fa5a8eddf4341a7dfb815bded63b
3 | timeCreated: 1550631073
4 | licenseType: Free
5 | MonoImporter:
6 | externalObjects: {}
7 | serializedVersion: 2
8 | defaultReferences: []
9 | executionOrder: 0
10 | icon: {instanceID: 0}
11 | userData:
12 | assetBundleName:
13 | assetBundleVariant:
14 |
--------------------------------------------------------------------------------
/Assets/Scripts/Loom.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using System;
5 | using System.Threading;
6 | using System.Linq;
7 |
8 | ///
9 | /// 解决开启的线程不能执行其他程序的脚本
10 | ///
11 |
12 | public class Loom : MonoBehaviour
13 | {
14 | public static int maxThreads = 8;
15 | static int numThreads;
16 |
17 | private static Loom _current;
18 | private int _count;
19 | public static Loom Current
20 | {
21 | get
22 | {
23 | Initialize();
24 | return _current;
25 | }
26 | }
27 |
28 | void Awake()
29 | {
30 | _current = this;
31 | initialized = true;
32 | }
33 |
34 | static bool initialized;
35 |
36 | static void Initialize()
37 | {
38 | if (!initialized)
39 | {
40 |
41 | if (!Application.isPlaying)
42 | return;
43 | initialized = true;
44 | var g = new GameObject("Loom");
45 | _current = g.AddComponent();
46 | }
47 |
48 | }
49 |
50 | private List _actions = new List();
51 | public struct DelayedQueueItem
52 | {
53 | public float time;
54 | public Action action;
55 | }
56 | private List _delayed = new List();
57 |
58 | List _currentDelayed = new List();
59 |
60 | public static void QueueOnMainThread(Action action)
61 | {
62 | QueueOnMainThread(action, 0f);
63 | }
64 | public static void QueueOnMainThread(Action action, float time)
65 | {
66 | if (time != 0)
67 | {
68 | lock (Current._delayed)
69 | {
70 | Current._delayed.Add(new DelayedQueueItem { time = Time.time + time, action = action });
71 | }
72 | }
73 | else
74 | {
75 | lock (Current._actions)
76 | {
77 | Current._actions.Add(action);
78 | }
79 | }
80 | }
81 |
82 | public static Thread RunAsync(Action a)
83 | {
84 | Initialize();
85 | while (numThreads >= maxThreads)
86 | {
87 | Thread.Sleep(1);
88 | }
89 | Interlocked.Increment(ref numThreads);
90 | ThreadPool.QueueUserWorkItem(RunAction, a);
91 | return null;
92 | }
93 |
94 | private static void RunAction(object action)
95 | {
96 | try
97 | {
98 | ((Action)action)();
99 | }
100 | catch
101 | {
102 | }
103 | finally
104 | {
105 | Interlocked.Decrement(ref numThreads);
106 | }
107 |
108 | }
109 |
110 |
111 | void OnDisable()
112 | {
113 | if (_current == this)
114 | {
115 |
116 | _current = null;
117 | }
118 | }
119 |
120 |
121 |
122 | // Use this for initialization
123 | void Start()
124 | {
125 |
126 | }
127 |
128 | List _currentActions = new List();
129 |
130 | // Update is called once per frame
131 | void Update()
132 | {
133 | lock (_actions)
134 | {
135 | _currentActions.Clear();
136 | _currentActions.AddRange(_actions);
137 | _actions.Clear();
138 | }
139 | foreach (var a in _currentActions)
140 | {
141 | a();
142 | }
143 | lock (_delayed)
144 | {
145 | _currentDelayed.Clear();
146 | _currentDelayed.AddRange(_delayed.Where(d => d.time <= Time.time));
147 | foreach (var item in _currentDelayed)
148 | _delayed.Remove(item);
149 | }
150 | foreach (var delayed in _currentDelayed)
151 | {
152 | delayed.action();
153 | }
154 |
155 | // 在另外一个出错脚本中把下面代码复制过去
156 | //Loom.RunAsync(() =>
157 | //{
158 | // Loom.QueueOnMainThread(() =>
159 | // {
160 | //把你需要执行的函数写到这里
161 |
162 | // });
163 | //});
164 |
165 |
166 | }
167 | }
--------------------------------------------------------------------------------
/Assets/Scripts/Loom.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f98c174ce20cfca43b92b635f7e7090b
3 | timeCreated: 1550652369
4 | licenseType: Free
5 | MonoImporter:
6 | externalObjects: {}
7 | serializedVersion: 2
8 | defaultReferences: []
9 | executionOrder: 0
10 | icon: {instanceID: 0}
11 | userData:
12 | assetBundleName:
13 | assetBundleVariant:
14 |
--------------------------------------------------------------------------------
/Assets/Scripts/RunSerial.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using UnityEngine;
5 |
6 | namespace Assets.SerialPortUtility.Scripts
7 | {
8 | public class RunSerial : MonoBehaviour
9 | {
10 |
11 | SerialCommunicationFacade facade;
12 | public string portName = "COM3";
13 | private int baudRate = 230400;
14 | byte[] sendMsg;
15 | int index = 0;
16 |
17 | //UI 用於顯示
18 | public GameObject img;
19 | public GameObject canvas;
20 |
21 | List imgs = new List();
22 | int MaxLength = 5000;
23 |
24 | List angless;
25 |
26 |
27 |
28 | private void Awake()
29 | {
30 |
31 |
32 | }
33 | void Start()
34 | {
35 | facade = this.GetComponent();
36 | facade.Connect(baudRate, portName);
37 | sendMsg = strToToHexByte("A560");
38 | facade.SendMessage(sendMsg);
39 | }
40 |
41 | Vector2 GetPos(float angle, float distance)
42 | {
43 | Vector2 pos;
44 | pos = new Vector2(distance * Mathf.Sin(angle), distance * Mathf.Cos(angle));
45 | return pos;
46 | }
47 |
48 | void Update()
49 | {
50 | //Loom.RunAsync(() =>
51 | //{
52 | // Loom.QueueOnMainThread(() =>
53 | // {
54 | // if (SerialCommunicationFacade.isSaveAll)
55 | // {
56 | // print("ken test");
57 | // SerialCommunicationFacade.isSaveAll = false;
58 | // //Unity在Dictionary中刪除修改元素時出現InvalidOperationException: out of sync 出現這個錯誤
59 | // foreach (var item in SerialCommunicationFacade.angleAndDistances)
60 | // {
61 | // imgs[index].transform.localPosition = GetPos(item.Key, item.Value);
62 | // print(item.Key +" ~~~~~~~~~~~~~~~~~~~~~~~~~~ " + item.Value);
63 | // index++;
64 | // }
65 | // index = 0;
66 | // //angless = new List(SerialCommunicationFacade.angleAndDistances.Keys);
67 | // //for (int i = 0; i < angless.Count; i++)
68 | // //{
69 | // //float distance = SerialCommunicationFacade.angleAndDistances[angless[i]];
70 | // //BuildObj(angless[i], distance);
71 | // //}
72 | // SerialCommunicationFacade.angleAndDistances.Clear();
73 | // //angless.Clear();
74 |
75 | // //SerialCommunicationFacade.angles.Clear();
76 | // //SerialCommunicationFacade.distances.Clear();
77 | // }
78 | // });
79 | //});
80 |
81 | }
82 |
83 |
84 |
85 |
86 | private void OnApplicationQuit()
87 | {
88 |
89 | sendMsg = strToToHexByte("A565");
90 | facade.SendMessage(sendMsg);
91 | facade.Disconnect();
92 | }
93 |
94 | public void DisconnectLidar()
95 | {
96 | sendMsg = strToToHexByte("A565");
97 | facade.SendMessage(sendMsg);
98 | facade.Disconnect();
99 |
100 | }
101 | ///
102 | /// 字符串轉16進制字節數組
103 | ///
104 | ///
105 | ///
106 | public static byte[] strToToHexByte(string hexString)
107 | {
108 | hexString = hexString.Replace(" ", "");
109 | if ((hexString.Length % 2) != 0)
110 | hexString += " ";
111 | byte[] returnBytes = new byte[hexString.Length / 2];
112 | for (int i = 0; i < returnBytes.Length; i++)
113 | returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
114 | return returnBytes;
115 | }
116 |
117 |
118 | ///
119 | /// 字節數組轉16進制字符串
120 | ///
121 | ///
122 | ///
123 | public static string byteToHexStr(byte[] bytes)
124 | {
125 | string returnStr = "";
126 | if (bytes != null)
127 | {
128 | for (int i = 0; i < bytes.Length; i++)
129 | {
130 | returnStr += bytes[i].ToString("X2");
131 | }
132 | }
133 | return returnStr;
134 | }
135 | }
136 |
137 | }
--------------------------------------------------------------------------------
/Assets/Scripts/RunSerial.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7d9afa5921611a845a1a5df75c7fe683
3 | timeCreated: 1550631175
4 | licenseType: Free
5 | MonoImporter:
6 | externalObjects: {}
7 | serializedVersion: 2
8 | defaultReferences: []
9 | executionOrder: 0
10 | icon: {instanceID: 0}
11 | userData:
12 | assetBundleName:
13 | assetBundleVariant:
14 |
--------------------------------------------------------------------------------
/Assets/Scripts/SerialCommunication.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using System.Collections;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Threading;
7 | using UnityEngine;
8 | using Assets.SerialPortUtility.Scripts;
9 | using System.IO.Ports;
10 |
11 | public delegate void SerialPortMessageEventHandler(byte[] sendData);
12 | public delegate void SerialPortSendMessageReportHandler(byte[] sendData);
13 | public class SerialCommunication
14 | {
15 | // 從串口發出消息事件
16 | public event SerialPortMessageEventHandler SerialPortMessageEvent;
17 | // 給串口發消息事件
18 | public event SerialPortSendMessageReportHandler SerialPortSendMessageReportEvent;
19 | private SerialPort serialPort;
20 | private Thread threadReceive;
21 | // 儲存接收到的消息
22 | private List buffer = new List(4096);
23 | [NonSerialized]
24 | private List listReceive = new List();
25 |
26 |
27 | private int lsnIndex = 3;
28 | public SerialCommunication(SerialPort serialPort)
29 | {
30 | this.serialPort = serialPort;
31 | }
32 | public SerialCommunication(string portName, int boudrate)
33 | {
34 | serialPort = new SerialPort(portName, boudrate);
35 | }
36 |
37 | public void OpenSerialPort()
38 | {
39 |
40 | //Debug.Log("讀取端口" + ConvertXml._instance.COM);
41 | serialPort.Open();
42 | serialPort.ReadTimeout = 1;
43 | threadReceive = new Thread(ListenSerialPort);
44 | threadReceive.IsBackground = true;
45 | threadReceive.Start();
46 |
47 | }
48 | public bool IsSerialPortIsOpen()
49 | {
50 | return serialPort.IsOpen;
51 | }
52 | public void CloseSerialPort()
53 | {
54 | if (threadReceive != null)
55 | {
56 | threadReceive.Abort();//關閉線程
57 | threadReceive = null;
58 | serialPort.Close();//關閉串口
59 | serialPort.Dispose();//將串口從內存中釋放掉,注意如果這裏不釋放則在同一次運行狀態下打不開此關閉的串口
60 |
61 | }
62 | Debug.Log("close thread");
63 | }
64 |
65 |
66 | ///
67 | /// 監聽串口,讀取串口消息
68 | ///
69 | private void ListenSerialPort()
70 | {
71 | //string recvData = "";
72 | //int flag = 0;
73 | while (serialPort != null && serialPort.IsOpen)
74 | {
75 | try
76 | {
77 | #region 原寫法
78 | //int bufferSize = serialPort.ReadBufferSize;
79 | ////
80 | //byte[] buf = new byte[bufferSize];
81 | //int count = serialPort.Read(buf, 0, bufferSize);
82 | //if (count > 9)
83 | //{
84 | // if (SerialPortMessageEvent != null && SerialPortMessageEvent.GetInvocationList().Length > 0) // If somebody is listening
85 | // {
86 | // SerialPortMessageEvent.Invoke(buf);// Invoke方法防止主線程擁堵衝突
87 | // }
88 |
89 | //}
90 | #endregion
91 |
92 | #region 使用ReadByte()的寫法 加判斷包頭和包尾
93 |
94 | byte buf = Convert.ToByte(serialPort.ReadByte());
95 | buffer.Add(buf);
96 | while (buffer.Count >= 2)
97 | {
98 | if (buffer[0] == 0xAA && buffer[1] == 0x55)
99 | {
100 | //Debug.Log("內層收到未處理消息");
101 |
102 | if (buffer.Count < 4)
103 | {
104 | break;
105 | }
106 |
107 | int numLen = buffer[3];
108 |
109 | if (buffer.Count < numLen * 2 + 10)
110 | {
111 | break;
112 | }
113 | //Debug.Log("numLen: " + numLen);
114 | Data_Process(numLen, buffer);
115 | //一條完整數據 存儲 進行處理 移除前面一條完整數據
116 |
117 | buffer.RemoveRange(0, numLen * 2 + 10);
118 |
119 | }
120 | else
121 | {
122 | buffer.RemoveAt(0);
123 | }
124 | }
125 | //Debug.Log("buffer.Count: " + buffer.Count + " " + RunSerial.byteToHexStr(buffer.ToArray()));
126 | #endregion
127 |
128 | }
129 | catch (System.Exception e)
130 | {
131 | //Debug.LogWarning(e.Message);
132 | }
133 | }
134 | }
135 |
136 |
137 | void Data_Process(int numLen, List bufferSrc)
138 | {
139 | byte[] readBuffer = null;
140 | readBuffer = new byte[numLen * 2 + 10];
141 | bufferSrc.CopyTo(0, readBuffer, 0, numLen * 2 + 10);
142 | SerialPortMessageEvent(readBuffer);// Invoke方法防止主線程擁堵衝突
143 | }
144 |
145 | #region
146 | ///
147 | /// ASCII碼轉字符:
148 | ///
149 | ///
150 | ///
151 | public static string Chr(int asciiCode)
152 | {
153 | if (asciiCode >= 0 && asciiCode <= 255)
154 | {
155 | System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
156 | byte[] byteArray = new byte[] { (byte)asciiCode };
157 | string strCharacter = asciiEncoding.GetString(byteArray);
158 | return (strCharacter);
159 | }
160 | else
161 | {
162 | throw new Exception("ASCII Code is not valid.");
163 | }
164 | }
165 |
166 |
167 | ///
168 | /// 使用事件觸發方式來實現串口數據的讀取
169 | ///
170 | ///
171 | ///
172 | void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
173 | {
174 | byte[] Resoursedata = new byte[serialPort.BytesToRead];
175 | int count = serialPort.Read(Resoursedata, 0, Resoursedata.Length);//在此就可以讀取到當前緩衝區內的數據
176 | //執行數據操作
177 | serialPort.DiscardInBuffer();//丟棄傳輸緩衝區數據
178 | serialPort.DiscardOutBuffer();//每次丟棄接收緩衝區的數據
179 | if (count > 0)
180 | {
181 | if (SerialPortMessageEvent != null && SerialPortMessageEvent.GetInvocationList().Length > 0) // If somebody is listening
182 | {
183 | SerialPortMessageEvent.Invoke(Resoursedata);// Invoke方法防止主線程擁堵衝突
184 | }
185 | }
186 | }
187 | #endregion
188 |
189 |
190 | ///
191 | /// 給串口發消息
192 | ///
193 | ///
194 | ///
195 | public bool SendMessageFromSerialPort(byte[] byteArray)
196 | {
197 | if (serialPort != null && serialPort.IsOpen == true)
198 | {
199 |
200 | serialPort.Write(byteArray, 0, byteArray.Length);
201 |
202 | if (SerialPortSendMessageReportEvent != null && SerialPortSendMessageReportEvent.GetInvocationList().Length > 0) // If somebody is listening
203 | {
204 | SerialPortSendMessageReportEvent(byteArray);
205 | }
206 | return true;
207 | }
208 | else
209 | {
210 | return false;
211 | }
212 | }
213 |
214 |
215 | }
--------------------------------------------------------------------------------
/Assets/Scripts/SerialCommunication.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2570653518f3e1a46afef9a42a6a2de7
3 | timeCreated: 1550631108
4 | licenseType: Free
5 | MonoImporter:
6 | externalObjects: {}
7 | serializedVersion: 2
8 | defaultReferences: []
9 | executionOrder: 0
10 | icon: {instanceID: 0}
11 | userData:
12 | assetBundleName:
13 | assetBundleVariant:
14 |
--------------------------------------------------------------------------------
/Assets/Scripts/SerialCommunicationFacade.cs:
--------------------------------------------------------------------------------
1 | using Assets.SerialPortUtility.Interfaces;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using UnityEngine;
7 | using UnityEngine.UI;
8 |
9 | using System.Xml.Linq;
10 |
11 | namespace Assets.SerialPortUtility.Scripts
12 | {
13 | public class SerialCommunicationFacade : MonoBehaviour, ISerialCommunication
14 | {
15 | List ids = new List();
16 |
17 | SerialCommunication serialCom;
18 | private string reciveStr;
19 | private string oldStr;
20 |
21 | float fsaAngle;
22 | float lsaAngle;
23 | float angle;//中間角
24 |
25 | public float time = 0;
26 |
27 | //UI 用於顯示
28 | public GameObject img;
29 | public GameObject canvas;
30 | List imgs = new List();
31 | public GameObject camera;
32 | public UdpServer udp;
33 |
34 | //particle system
35 | public float particleSize = 3f;
36 | int skipParticles = 2;
37 | public ParticleSystem pointCloudParticles;
38 | private ParticleSystem.Particle[] particles = new ParticleSystem.Particle[0];
39 |
40 | public float zoomTimes = 0.3f;
41 | public float sensorAngle = 0; // cable upwards - 0 degree, clockwise
42 |
43 |
44 | public float sensorOffsetX = 0; // sensor's distance in x axis to the canvas
45 | public float sensorOffsetY = 0;
46 | float myCanvasWidth = 1920;
47 | float myCanvasHeight = 1080;
48 | public float ratioMM = 100;
49 | public float ratioPX = 400;
50 | float sensorOffsetinPixelX;
51 | float sensorOffsetinPixelY;
52 |
53 | //public float neededAreaWidth = 1920;
54 | //public float neededAreaHeight = 1080;
55 | //public float neededAreaOffsetX = 0;
56 | //public float neededAreaOffsetY = 0;
57 | public int gridSizeX = 20;
58 | public int gridSizeY = 20;
59 | public string xmlPath = "Assets/myXML/settings.xml";
60 |
61 | //trigger area
62 | public GameObject[] triggerAreas;
63 | Rect[] triggerRects;
64 | RawImage[] triggerRawImage;
65 | Color32[] colors;
66 | bool[] IsInsideArea;
67 | bool[] IsInsideArea_last;
68 |
69 |
70 | public Material myCanvasMat;
71 | int canvasGridX, canvasGridY;
72 |
73 | List objs = new List();
74 |
75 | //GameObject neededArea;
76 |
77 | void Start()
78 | {
79 |
80 | myCanvasHeight = Screen.currentResolution.height;
81 | myCanvasWidth = Screen.currentResolution.width;
82 | //initialize the needed area
83 | //neededArea = new GameObject();
84 | //neededArea.AddComponent();
85 | //neededArea.transform.SetParent(GameObject.Find("Panel").transform);
86 |
87 | //neededArea.AddComponent();
88 | //neededArea.GetComponent().color = new Color32(0, 86, 147, 45);
89 |
90 | //neededArea.GetComponent().localScale = Vector3.one;
91 |
92 | //initialize the trriger area rects colors and bools
93 | triggerRects = new Rect[triggerAreas.Length];
94 | triggerRawImage = new RawImage[triggerAreas.Length];
95 | colors = new Color32[triggerAreas.Length];
96 | IsInsideArea = new bool[triggerAreas.Length];
97 | IsInsideArea_last = new bool[triggerAreas.Length];
98 |
99 | UpdateDataWPlayerPref();
100 |
101 |
102 | //print("x: " + myXY[0] + " y: " + myXY[1]);
103 |
104 |
105 |
106 | //print(triggerRects[0].width +" " + triggerRects[0].height +" "+ triggerRects[0].x +" "+ triggerRects[0].y);
107 |
108 | //repeatly calling update in 0.02f time interval
109 | InvokeRepeating("UpdateParticlesAndAreas", 1.0f, 0.02f);
110 | }
111 |
112 | public void UpdateDataWPlayerPref()
113 | {
114 | //initialize the particle system
115 | canvasGridX = Mathf.FloorToInt(myCanvasWidth) / gridSizeX;
116 | canvasGridY = Mathf.FloorToInt(myCanvasHeight) / gridSizeY;
117 |
118 | int num = canvasGridX * canvasGridY;
119 | particles = new ParticleSystem.Particle[num];
120 | for (int hor = 0; hor < canvasGridX; hor++)
121 | {
122 | for (int ver = 0; ver < canvasGridY; ver++)
123 | {
124 | int id = hor + canvasGridX * ver;
125 | //particles[id].position = new Vector2((hor - canvasGridX / 2) * 3, (ver - canvasGridY / 2) * 3);
126 | particles[id].position = new Vector2(0, 0);
127 | particles[id].startSize = particleSize;
128 | particles[id].startColor = Color.black;
129 | }
130 | }
131 |
132 | //set the particles initially
133 | pointCloudParticles.SetParticles(particles, particles.Length);
134 |
135 | //calculate the sensor offset in pixel
136 | sensorOffsetinPixelX = sensorOffsetX * ratioPX / ratioMM;
137 | sensorOffsetinPixelY = sensorOffsetY * ratioPX / ratioMM;
138 |
139 | //needed area
140 | //neededArea.GetComponent().localPosition = new Vector2(sensorOffsetinPixelX, sensorOffsetinPixelY);
141 | //neededArea.GetComponent().sizeDelta = new Vector2(neededAreaWidth, neededAreaHeight);
142 |
143 | //reading xml n assigning to the trigger area
144 | XDocument allXMLData = XDocument.Load(xmlPath);
145 | for (int m = 0; m < triggerAreas.Length; m++)
146 | {
147 | string[] center = allXMLData.Element("settings").Element("videoContainer" + m).Element("center").Value.Trim().Split(',');
148 | string width = allXMLData.Element("settings").Element("videoContainer" + m).Element("width").Value.Trim();
149 | string height = allXMLData.Element("settings").Element("videoContainer" + m).Element("height").Value.Trim();
150 | triggerAreas[m].GetComponent().localPosition = new Vector3((myCanvasWidth / 2 - (float.Parse(center[0]) + float.Parse(width) / 2)) * (-1),
151 | (myCanvasHeight / 2 - (float.Parse(center[1]) + float.Parse(height) / 2)),
152 | 0);
153 | triggerAreas[m].GetComponent().sizeDelta = new Vector3(float.Parse(width), float.Parse(height), 1);
154 | }
155 |
156 | //initialize rect
157 | for (int i = 0; i < triggerAreas.Length; i++)
158 | {
159 | triggerRects[i] = new Rect(triggerAreas[i].GetComponent().localPosition.x - triggerAreas[i].GetComponent().sizeDelta.x * 0.5f,
160 | triggerAreas[i].GetComponent().localPosition.y - triggerAreas[i].GetComponent().sizeDelta.y * 0.5f,
161 | triggerAreas[i].GetComponent().sizeDelta.x,
162 | triggerAreas[i].GetComponent().sizeDelta.y);
163 | triggerRawImage[i] = triggerAreas[i].GetComponent();
164 | triggerRawImage[i].color = new Color32(2, 130, 27, 55);
165 | IsInsideArea[i] = false;
166 | IsInsideArea_last[i] = false;
167 | }
168 |
169 |
170 |
171 | }
172 |
173 | #region things that dont need to care
174 |
175 | public void Connect(int baudrate, string portName)
176 | {
177 | serialCom = new SerialCommunication(portName, baudrate);
178 | serialCom.OpenSerialPort();// 打開串口
179 | // 綁定方法觸發,監聽讀取串口
180 | serialCom.SerialPortMessageEvent += SerialCom_SerialPortMessageEvent;
181 | // 綁定方法觸發,給串口發消息
182 | serialCom.SerialPortSendMessageReportEvent += SerialCom_SerialPortSendMessageReportEvent;
183 | }
184 | public void Disconnect()
185 | {
186 | serialCom.CloseSerialPort();
187 | Debug.Log("Serial Disconnected");
188 | }
189 | public void SendMessage(byte[] byteArray)
190 | {
191 | try
192 | {
193 | if (serialCom.IsSerialPortIsOpen() == true)
194 | {
195 |
196 | serialCom.SendMessageFromSerialPort(byteArray);
197 | //Debug.Log("Message Sended");
198 | }
199 | else
200 | {
201 | Debug.Log("Message Send Failed!");
202 | }
203 | }
204 | catch (Exception)
205 | {
206 |
207 |
208 | }
209 |
210 | }
211 |
212 | ///
213 | /// 監聽給串口發的消息
214 | ///
215 | ///
216 | private void SerialCom_SerialPortSendMessageReportEvent(byte[] sendData)
217 | {
218 | string text = RunSerial.byteToHexStr(sendData);
219 | Debug.Log("Message Send From Serial.. Message => " + text.ToString());
220 | }
221 |
222 | ///
223 | /// 串口發過來的消息
224 | ///
225 | ///
226 | private void SerialCom_SerialPortMessageEvent(byte[] sendData)
227 | {
228 | //Debug.Log("____________shoudaole _____________");
229 |
230 | reciveStr = RunSerial.byteToHexStr(sendData);
231 | //Debug.Log("Message Coming From Serial.. Message => " + reciveStr.ToString());//打印一條數據信息
232 |
233 | Data_ResponseContentProcess(sendData);
234 |
235 |
236 |
237 |
238 |
239 | //if (!reciveStr.Contains("D") || !reciveStr.Contains("m"))
240 | //{
241 | // return;
242 | //}
243 | ////Debug.Log("收到的數據:" + reciveStr.ToString());
244 | //if (reciveStr == oldStr)
245 | //{
246 | // return;
247 | //}
248 | ////AllUiManger._Instance.DealReceiveString(reciveStr.ToString());
249 | //oldStr = reciveStr;
250 |
251 | }
252 |
253 | List angles = new List();//一級解析角度
254 | List distances = new List();//所有的距離
255 | List angleCorrects = new List();//角度偏差
256 | List correctedAngles = new List();//二級解析角度
257 |
258 | List ids_positions = new List();
259 |
260 | public static bool isSaveAll = false;//距離和角度都存進去了
261 |
262 | public static Dictionary angleAndDistances = new Dictionary();
263 |
264 |
265 | ///
266 | /// 應答數據處理S
267 | ///
268 | ///數據處理
269 | ///responseData[0] AA responseData[1] 55 數據包頭
270 | ///responseData[2] 包類型
271 | ///responseData[3] 採樣數量
272 | ///responseData[4] responseData[5] 起始角
273 | ///responseData[6] responseData[7] 結束角
274 | ///responseData[8] responseData[9]校驗碼
275 | ///responseData[................] 採樣數據 兩位爲一個數據
276 | ///
277 | #endregion
278 | ///
279 | void Data_ResponseContentProcess(byte[] responseData)
280 | {
281 | //零位解析 該數據包中 LSN = 1,即 Si 的數量爲 1,S1 = 零位距離數據 ;
282 | //FSA = LSA = 零位角度數據; 其距離和角度的具體值解析參見距離和角度的解析
283 | if (responseData[2] == 0x01 && responseData[3] == 1)
284 | {
285 |
286 | //AA55 01 01 DFA0 DFA0 AB54 0000
287 | //零位距離
288 | //print("-------------------------------------------0x01 " + ids.Count);
289 | //isIdsAllSet = true;
290 | for (int restid = ids.Count; restid < particles.Length; restid++)
291 | {
292 | if (restid != canvasGridX / 2 + canvasGridY / 2 * canvasGridX)
293 | {
294 | particles[restid].position = Vector2.zero;
295 | particles[restid].startSize = 0;
296 | }
297 |
298 | }
299 |
300 | for (int aid = 0; aid < triggerAreas.Length; aid++)
301 | {
302 |
303 | colors[aid] = new Color32(2, 130, 27, 75);
304 | IsInsideArea[aid] = false;
305 | for (int pid = 0; pid < ids.Count; pid++)
306 | {
307 |
308 | if (triggerRects[aid].Contains(ids_positions[pid]))
309 | {
310 |
311 | colors[aid] = new Color32(171, 37, 1, 75);
312 | IsInsideArea[aid] = true;
313 | break;
314 | }
315 | //isContained = false;
316 |
317 | }
318 | //if (isContained)
319 | //{
320 | // //print(aid + " " + 1);
321 | // colors[aid] = new Color32(171, 37, 1, 255);
322 | // IsInsideArea[aid] = true;
323 | //}
324 |
325 | //else
326 | //{
327 | // //print(aid + " " + 0);
328 | // colors[aid] = new Color32(2, 130, 27, 255);
329 | // IsInsideArea[aid] = false;
330 | //}
331 | }
332 |
333 | ids.Clear();
334 | ids_positions.Clear();
335 |
336 | #region things dont need to care abt
337 | //print(ids.Count + " " + ids_positions.Count);
338 | string disStr = BinaryConversion(responseData[11], responseData[10]);
339 | int dis = Convert.ToInt32(disStr, 16);
340 | float Distancezero = dis / 4;
341 |
342 | //AA55 01 01 7958 7958 AB54 0000
343 | //起始角度 結束角度
344 |
345 | string fsaStr = BinaryConversion(responseData[5], responseData[4]);
346 | string lsaStr = BinaryConversion(responseData[7], responseData[6]);
347 |
348 | // Debug.Log(fsaStr);
349 |
350 | int fsa = Convert.ToInt32(fsaStr, 16);
351 | //Debug.Log(fsa);
352 | float fsaAnglezero = (fsa / 2) / 64;//起始角計算公式 右移一位除以 64
353 |
354 |
355 | string debugMsg = string.Format("零位解析 距離 = {0}, FSA = {1}, LAS = {2} ", Distancezero, fsaAnglezero, fsaAnglezero);
356 | //Debug.Log(debugMsg);
357 |
358 | }
359 |
360 | // AA55 000F FD27 F129 1252
361 | //00 000000000000000000000000000000000000000000000000000000B406
362 | //點雲數據包
363 | if (responseData[2] == 0x00)
364 | {
365 |
366 | ///print("0x00");
367 |
368 | //Debug.Log("dianyunshuju ---------------");
369 | //Debug.Log(responseData[3]);
370 | byte[] dataDis = new byte[responseData[3] * 2];
371 |
372 |
373 | Array.Copy(responseData, 10, dataDis, 0, responseData[3] * 2);
374 |
375 |
376 | //距離解析 兩位爲一個距離數據 距離開始不對,注意距離數據是去除掉前十位之後的數據
377 | for (int i = 10; i < responseData[3] * 2 + 10; i++)
378 | {
379 | string distanceStr = BinaryConversion(responseData[i + 1], responseData[i]);
380 | int dis = Convert.ToInt32(distanceStr, 16);
381 | float Distance = dis / 4;
382 | distances.Add(Distance);
383 | //Debug.Log("距離解析: 距離 Distance = " + Distance);
384 | i++;
385 | }
386 |
387 |
388 | //角度解析
389 | //一級解析 注意小端模式
390 | string fsaStr = BinaryConversion(responseData[5], responseData[4]);
391 | string lsaStr = BinaryConversion(responseData[7], responseData[6]);
392 |
393 |
394 | int fsa = Convert.ToInt32(fsaStr, 16);
395 | fsaAngle = (fsa / 2) / 64;//起始角計算公式 右移一位除以 64
396 | angles.Add(fsaAngle);
397 | //Debug.Log("角度一級解析: FSA = " + fsaAngle);
398 |
399 | int lsa = Convert.ToInt32(lsaStr, 16);
400 | lsaAngle = (lsa / 2) / 64;//起始角計算公式 右移一位除以 64
401 |
402 | if (fsaAngle > lsaAngle) lsaAngle += 360;
403 |
404 | angles.Add(lsaAngle);
405 | //Debug.Log("角度一級解析: LSA = " + lsaAngle);
406 |
407 | //中間角
408 | float diffAngle = lsaAngle - fsaAngle;
409 | for (int i = 2; i < responseData[3]; i++)
410 | {
411 |
412 | angle = diffAngle / (responseData[3] - 1) * (i - 1) + fsaAngle;
413 | angles.Insert(i - 1, angle);
414 | //Debug.Log("角度一級解析: Angle 中間角 = " + angle);
415 | }
416 |
417 | //print("1");
418 |
419 |
420 | double angleCorrect;
421 | //二級解析 偏差角
422 | foreach (var item in distances)
423 | {
424 | if (item == 0)
425 | {
426 | angleCorrect = 0;
427 |
428 | }
429 | else
430 | {
431 | float mid = 21.8f * (155.3f - item) / (155.3f * item);//
432 | angleCorrect = Mathf.Atan((float)mid);//反正切函數參數範圍(-無窮,+ 無窮) Mathf.Atan 和 Math.Atan 返回的都是弧度。此處需要得到角度
433 | angleCorrect = (180 / Math.PI) * angleCorrect;//弧度轉角度 得到偏差角度
434 | }
435 | angleCorrects.Add(angleCorrect);
436 | }
437 |
438 | //print("2");
439 | #endregion
440 | // ===========================================================================================================================
441 | for (int i = 0; i < angleCorrects.Count; i++)
442 | {
443 | float correctedAngle = angles[i] + (float)angleCorrects[i];
444 | //Debug.Log("角度二級解析: 所有角度 = " + correctedAngle);
445 | correctedAngles.Add(correctedAngle);
446 |
447 | //print(correctedAngle + " " + distances[i]);
448 |
449 | float angle = correctedAngle + 180 + sensorAngle; // cable upwards
450 | float distance = distances[i];
451 | Vector2 pos;
452 | //convert to radians
453 | float angle_in_rand = angle * Mathf.Deg2Rad;
454 |
455 | pos = new Vector2(distance * Mathf.Sin(angle_in_rand), distance * Mathf.Cos(angle_in_rand));
456 | pos.x *= -1f * ratioPX / ratioMM * zoomTimes;
457 | pos.y *= -1f * ratioPX / ratioMM * zoomTimes;
458 |
459 | int xCount = Mathf.RoundToInt(pos.x / 3);
460 | int yCount = Mathf.RoundToInt(pos.y / 3);
461 |
462 | Vector2 snapped_pos = new Vector2((float)xCount, (float)yCount);
463 |
464 | if (pos.x != 0 && pos.y != 0
465 | //&& pos.x < neededAreaWidth * 0.5f + neededAreaOffsetX && pos.x > neededAreaWidth * -0.5f + neededAreaOffsetX
466 | //&& pos.y > neededAreaHeight * -0.5f + neededAreaOffsetY && pos.y < neededAreaHeight * 0.5f + neededAreaOffsetY
467 | )
468 | {
469 | xCount = xCount + canvasGridX / 2;
470 | yCount = yCount + canvasGridY / 2;
471 | int pid = xCount + canvasGridX * yCount;
472 | if (!ids.Contains(pid))
473 | {
474 | pos.x += sensorOffsetinPixelX;
475 | pos.y += sensorOffsetinPixelY;
476 | ids_positions.Add(new Vector2(pos.x, pos.y));
477 | ids.Add(pid);
478 | }
479 | }
480 | }
481 |
482 |
483 | angleCorrects.Clear();//注意 LIST 要進行清空 否則數據出錯
484 | #region things that dont need to care abt
485 | //print("3");
486 |
487 | //Debug.Log("angleCorrects.Count,distances.Count: " + angleCorrects.Count + " " + distances.Count);
488 | //for (int i = 0; i < responseData[3]; i++)
489 | //{
490 | // angleAndDistances.Add(correctedAngles[i], distances[i]);//距離計算出的是毫米,Unity 中單位默認是米
491 | //}
492 |
493 | // print("4");
494 | isSaveAll = true;
495 | angles.Clear();
496 | distances.Clear();
497 | //angleCorrects.Clear();//注意 LIST 要進行清空 否則數據出錯
498 | correctedAngles.Clear();
499 |
500 | }
501 |
502 | }
503 |
504 | #endregion
505 | //this function runs in 0.02f interval
506 | //remember to update the data in 0x01 (when the lidar turns a round
507 | public void UpdateParticlesAndAreas()
508 | {
509 | //update needed area
510 | //neededArea.GetComponent().localPosition = new Vector2(neededAreaOffsetX + sensorOffsetX, neededAreaOffsetY + sensorOffsetY);
511 | //neededArea.GetComponent().sizeDelta = new Vector2(neededAreaWidth, neededAreaHeight);
512 |
513 | //print(ids.Count + " " + ids_positions.Count);
514 | for (int id = 0; id < ids.Count; id++)
515 | {
516 | particles[id].position = ids_positions[id];
517 | particles[id].startSize = 5;
518 | }
519 | //print(ids.Count);
520 |
521 | for (int tid = 0; tid < triggerAreas.Length; tid++)
522 | {
523 | triggerRawImage[tid].color = colors[tid];
524 |
525 | if (IsInsideArea_last[tid] != IsInsideArea[tid])
526 | {
527 | udp.SocketSend(tid + "," + Convert.ToInt32(IsInsideArea[tid]) + "/e/");
528 | IsInsideArea_last[tid] = IsInsideArea[tid];
529 | }
530 |
531 |
532 |
533 |
534 | // udp.SocketSend(tid + "," + isin +"/e/");
535 | }
536 |
537 | int centerid = canvasGridX / 2 + canvasGridY / 2 * canvasGridX;
538 | particles[centerid].startColor = Color.red;
539 | particles[centerid].startSize = 15;
540 | particles[centerid].position = new Vector2(sensorOffsetinPixelX, sensorOffsetinPixelY);
541 | pointCloudParticles.SetParticles(particles, particles.Length);
542 |
543 |
544 |
545 |
546 |
547 | //if (isFarPerspective)
548 | //{
549 | // camera.transform.position = new Vector3(myCanvasWidth * 0.5f, myCanvasHeight * 0.5f, -1600f);
550 | //}
551 | //else
552 | //{
553 | // camera.transform.position = new Vector3(myCanvasWidth * 0.5f, myCanvasHeight * 0.5f, -1000f);
554 | //}
555 |
556 | }
557 | void FixedUpdate()
558 | {
559 |
560 |
561 | //print("----------------------------------------------------fixedupdate");
562 |
563 | //Loom.RunAsync(() =>
564 | //{
565 | // Loom.QueueOnMainThread(() =>
566 | // {
567 | // time += Time.deltaTime;
568 | // if (SerialCommunicationFacade.isSaveAll)
569 | // {
570 | // isSaveAll = false;
571 | // time = 0;
572 | // var angless = new List(angleAndDistances.Keys);
573 | // for (int i = 0; i < angless.Count; i++)
574 | // {
575 | // float distance = angleAndDistances[angless[i]];
576 | // GetPos(angless[i], distance);
577 | // }
578 | // angleAndDistances.Clear();
579 | // angless.Clear();
580 | // isSaveAll = true;
581 | // }
582 | // });
583 | //});
584 | // print(1 / Time.deltaTime);
585 | }
586 |
587 | //not using this function
588 | /*
589 | void GetPos(float angle, float distance)
590 | {
591 | //print(angle +"now get pos"+ distance );
592 |
593 | Vector2 pos;
594 | //convert to radians
595 | float angle_in_rand = angle * Mathf.Deg2Rad;
596 |
597 | pos = new Vector2(distance * Mathf.Sin(angle_in_rand), distance * Mathf.Cos(angle_in_rand));
598 | pos.x *= -0.3f;
599 | pos.y *= -0.3f;
600 | //print(pos);
601 |
602 |
603 | int xCount = Mathf.RoundToInt(pos.x / 3);
604 | int yCount = Mathf.RoundToInt(pos.y / 3);
605 |
606 |
607 | Vector2 snapped_pos = new Vector2((float)xCount, (float)yCount);
608 |
609 | if (pos.x != 0 && pos.y != 0 && pos.x < 960 && pos.x > -960 && pos.y > -540 && pos.y < 540)
610 | {
611 |
612 | xCount = xCount + canvasGridX / 2;
613 | yCount = yCount + canvasGridY / 2;
614 | int pid = xCount + canvasGridX * yCount;
615 | ids.Add(pid);
616 | //print(pid);
617 | //print("pid" + pid);
618 | // print(snapped_pos + new Vector2(canvasGridX / 2, canvasGridY / 2) + " " + angle + " " + distance);
619 | particles[pid].position = new Vector3(snapped_pos.x, snapped_pos.y, 0);
620 | particles[pid].startColor = new Color32(0, 0, 0, 255);
621 | particles[pid].startSize = 1f;
622 |
623 | }
624 |
625 |
626 |
627 | }
628 | */
629 | ///
630 | /// 進制轉換以及字符串重組
631 | ///
632 | string BinaryConversion(byte one, byte two)
633 | {
634 | string returnStr;
635 | string oneStr;
636 | string twoStr;
637 |
638 | if (one < 16)
639 | {
640 | oneStr = "0" + Convert.ToString(one, 16);//十進制轉十六進制 byte 出來的直接是十進制
641 | }
642 | else
643 | {
644 | oneStr = Convert.ToString(one, 16);
645 | }
646 | if (two < 16)
647 | {
648 | twoStr = "0" + Convert.ToString(two, 16);
649 | }
650 | else
651 | {
652 | twoStr = Convert.ToString(two, 16);
653 | }
654 |
655 | returnStr = oneStr + twoStr;
656 | return returnStr;
657 |
658 | }
659 |
660 |
661 | }
662 | }
--------------------------------------------------------------------------------
/Assets/Scripts/SerialCommunicationFacade.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 07ec2b3bac337c148af7ee5ec7663d13
3 | timeCreated: 1550631154
4 | licenseType: Free
5 | MonoImporter:
6 | externalObjects: {}
7 | serializedVersion: 2
8 | defaultReferences: []
9 | executionOrder: 0
10 | icon: {instanceID: 0}
11 | userData:
12 | assetBundleName:
13 | assetBundleVariant:
14 |
--------------------------------------------------------------------------------
/Assets/Scripts/TestFor.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class TestFor : MonoBehaviour {
6 |
7 | // Use this for initialization
8 | void Start () {
9 | for (int i = 0; i < 10; i++)
10 | {
11 | for (int j = 0; j < 10; j++)
12 | {
13 | if (j > 5)
14 | {
15 | print("j" + j);
16 | break;
17 | }
18 |
19 | }
20 | }
21 | }
22 |
23 | // Update is called once per frame
24 | void Update () {
25 |
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Assets/Scripts/TestFor.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bbce684b2d1905c43a85ed674f1bfc9a
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Scripts/UdpServer.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | //引入库
4 | using System.Net;
5 | using System.Net.Sockets;
6 | using System.Text;
7 | using System.Threading;
8 |
9 | public class UdpServer : MonoBehaviour
10 | {
11 | string editString = "hello wolrd"; //编辑框文字
12 |
13 | //以下默认都是私有的成员
14 | Socket socket; //目标socket
15 | EndPoint serverEnd; //服务端
16 | IPEndPoint ipEnd; //服务端端口
17 | string recvStr; //接收的字符串
18 | string sendStr; //发送的字符串
19 | byte[] recvData = new byte[1024]; //接收的数据,必须为字节
20 | byte[] sendData = new byte[1024]; //发送的数据,必须为字节
21 | int recvLen; //接收的数据长度
22 | Thread connectThread; //连接线程
23 |
24 | //初始化
25 | void InitSocket()
26 | {
27 | //定义连接的服务器ip和端口,可以是本机ip,局域网,互联网
28 | ipEnd = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9000);
29 | //定义套接字类型,在主线程中定义
30 | socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
31 | //定义服务端
32 | IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
33 | serverEnd = (EndPoint)sender;
34 | print("waiting for sending UDP dgram");
35 |
36 | //建立初始连接,这句非常重要,第一次连接初始化了serverEnd后面才能收到消息
37 | SocketSend("hello");
38 |
39 | //开启一个线程连接,必须的,否则主线程卡死
40 | connectThread = new Thread(new ThreadStart(SocketReceive));
41 | connectThread.Start();
42 | }
43 |
44 | public void SocketSend(string sendStr)
45 | {
46 | //清空发送缓存
47 | sendData = new byte[1024];
48 | //数据类型转换
49 | sendData = Encoding.ASCII.GetBytes(sendStr);
50 | //发送给指定服务端
51 | socket.SendTo(sendData, sendData.Length, SocketFlags.None, ipEnd);
52 | print(sendStr);
53 | }
54 |
55 | //服务器接收
56 | void SocketReceive()
57 | {
58 | //进入接收循环
59 | while (true)
60 | {
61 | //对data清零
62 | recvData = new byte[1024];
63 | //获取客户端,获取服务端端数据,用引用给服务端赋值,实际上服务端已经定义好并不需要赋值
64 | recvLen = socket.ReceiveFrom(recvData, ref serverEnd);
65 | print("message from: " + serverEnd.ToString()); //打印服务端信息
66 | //输出接收到的数据
67 | recvStr = Encoding.ASCII.GetString(recvData, 0, recvLen);
68 | print(recvStr);
69 | }
70 | }
71 |
72 | //连接关闭
73 | void SocketQuit()
74 | {
75 | //关闭线程
76 | if (connectThread != null)
77 | {
78 | connectThread.Interrupt();
79 | connectThread.Abort();
80 | }
81 | //最后关闭socket
82 | if (socket != null)
83 | socket.Close();
84 | }
85 |
86 | // Use this for initialization
87 | void Start()
88 | {
89 | InitSocket(); //在这里初始化
90 | }
91 |
92 | //void OnGUI()
93 | //{
94 | // editString = GUI.TextField(new Rect(10, 10, 100, 20), editString);
95 | // if (GUI.Button(new Rect(10, 30, 60, 20), "send"))
96 | // SocketSend(editString);
97 | //}
98 |
99 | // Update is called once per frame
100 | void Update()
101 | {
102 |
103 | }
104 |
105 | void OnApplicationQuit()
106 | {
107 | SocketQuit();
108 | }
109 | }
--------------------------------------------------------------------------------
/Assets/Scripts/UdpServer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4cdc9dc67dec36749a6ef89cc2d00048
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/myXML.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f1cabfdd140992d4a8a17e732132cf98
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/myXML/settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 1
4 |
5 | wall
6 | 530.579, 260.058
7 | 274.286
8 | 143.265
9 | 3070
10 |
11 |
12 | bunny
13 | 1190.3, 668.814
14 | 519.184
15 | 281.02
16 | 3070
17 |
18 |
19 | countdown
20 | 930.412, 237.963
21 | 274.286
22 | 115.714
23 | 3070
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Assets/myXML/settings.xml.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 77632d2432dead7488dc48fe16986548
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/test.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e1b7e3579082d2e45b2b7b06172a5249
3 | timeCreated: 1550638102
4 | licenseType: Free
5 | DefaultImporter:
6 | externalObjects: {}
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/LidarDataVisualization.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{F05CD3FF-B3AF-6247-139E-B8132673E075}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Any CPU = Debug|Any CPU
9 | Release|Any CPU = Release|Any CPU
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {F05CD3FF-B3AF-6247-139E-B8132673E075}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
13 | {F05CD3FF-B3AF-6247-139E-B8132673E075}.Debug|Any CPU.Build.0 = Debug|Any CPU
14 | {F05CD3FF-B3AF-6247-139E-B8132673E075}.Release|Any CPU.ActiveCfg = Release|Any CPU
15 | {F05CD3FF-B3AF-6247-139E-B8132673E075}.Release|Any CPU.Build.0 = Release|Any CPU
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/Packages/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.ads": "2.0.8",
4 | "com.unity.analytics": "2.0.16",
5 | "com.unity.package-manager-ui": "1.9.11",
6 | "com.unity.purchasing": "2.0.3",
7 | "com.unity.textmeshpro": "1.2.4",
8 | "com.unity.modules.ai": "1.0.0",
9 | "com.unity.modules.animation": "1.0.0",
10 | "com.unity.modules.assetbundle": "1.0.0",
11 | "com.unity.modules.audio": "1.0.0",
12 | "com.unity.modules.cloth": "1.0.0",
13 | "com.unity.modules.director": "1.0.0",
14 | "com.unity.modules.imageconversion": "1.0.0",
15 | "com.unity.modules.imgui": "1.0.0",
16 | "com.unity.modules.jsonserialize": "1.0.0",
17 | "com.unity.modules.particlesystem": "1.0.0",
18 | "com.unity.modules.physics": "1.0.0",
19 | "com.unity.modules.physics2d": "1.0.0",
20 | "com.unity.modules.screencapture": "1.0.0",
21 | "com.unity.modules.terrain": "1.0.0",
22 | "com.unity.modules.terrainphysics": "1.0.0",
23 | "com.unity.modules.tilemap": "1.0.0",
24 | "com.unity.modules.ui": "1.0.0",
25 | "com.unity.modules.uielements": "1.0.0",
26 | "com.unity.modules.umbra": "1.0.0",
27 | "com.unity.modules.unityanalytics": "1.0.0",
28 | "com.unity.modules.unitywebrequest": "1.0.0",
29 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
30 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
31 | "com.unity.modules.unitywebrequesttexture": "1.0.0",
32 | "com.unity.modules.unitywebrequestwww": "1.0.0",
33 | "com.unity.modules.vehicles": "1.0.0",
34 | "com.unity.modules.video": "1.0.0",
35 | "com.unity.modules.vr": "1.0.0",
36 | "com.unity.modules.wind": "1.0.0",
37 | "com.unity.modules.xr": "1.0.0"
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/ProjectSettings/AudioManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!11 &1
4 | AudioManager:
5 | m_ObjectHideFlags: 0
6 | m_Volume: 1
7 | Rolloff Scale: 1
8 | Doppler Factor: 1
9 | Default Speaker Mode: 2
10 | m_SampleRate: 0
11 | m_DSPBufferSize: 0
12 | m_VirtualVoiceCount: 512
13 | m_RealVoiceCount: 32
14 | m_SpatializerPlugin:
15 | m_AmbisonicDecoderPlugin:
16 | m_DisableAudio: 0
17 | m_VirtualizeEffects: 1
18 |
--------------------------------------------------------------------------------
/ProjectSettings/ClusterInputManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!236 &1
4 | ClusterInputManager:
5 | m_ObjectHideFlags: 0
6 | m_Inputs: []
7 |
--------------------------------------------------------------------------------
/ProjectSettings/DynamicsManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!55 &1
4 | PhysicsManager:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 7
7 | m_Gravity: {x: 0, y: -9.81, z: 0}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_BounceThreshold: 2
10 | m_SleepThreshold: 0.005
11 | m_DefaultContactOffset: 0.01
12 | m_DefaultSolverIterations: 6
13 | m_DefaultSolverVelocityIterations: 1
14 | m_QueriesHitBackfaces: 0
15 | m_QueriesHitTriggers: 1
16 | m_EnableAdaptiveForce: 0
17 | m_ClothInterCollisionDistance: 0
18 | m_ClothInterCollisionStiffness: 0
19 | m_ContactsGeneration: 1
20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
21 | m_AutoSimulation: 1
22 | m_AutoSyncTransforms: 1
23 | m_ClothInterCollisionSettingsToggle: 0
24 | m_ContactPairsMode: 0
25 | m_BroadphaseType: 0
26 | m_WorldBounds:
27 | m_Center: {x: 0, y: 0, z: 0}
28 | m_Extent: {x: 250, y: 250, z: 250}
29 | m_WorldSubdivisions: 8
30 |
--------------------------------------------------------------------------------
/ProjectSettings/EditorBuildSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1045 &1
4 | EditorBuildSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_Scenes:
8 | - enabled: 1
9 | path: Assets/test.unity
10 | guid: e1b7e3579082d2e45b2b7b06172a5249
11 | m_configObjects: {}
12 |
--------------------------------------------------------------------------------
/ProjectSettings/EditorSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!159 &1
4 | EditorSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 7
7 | m_ExternalVersionControlSupport: Hidden Meta Files
8 | m_SerializationMode: 2
9 | m_LineEndingsForNewScripts: 2
10 | m_DefaultBehaviorMode: 0
11 | m_SpritePackerMode: 0
12 | m_SpritePackerPaddingPower: 1
13 | m_EtcTextureCompressorBehavior: 1
14 | m_EtcTextureFastCompressor: 1
15 | m_EtcTextureNormalCompressor: 2
16 | m_EtcTextureBestCompressor: 4
17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp
18 | m_ProjectGenerationRootNamespace:
19 | m_UserGeneratedProjectSuffix:
20 | m_CollabEditorSettings:
21 | inProgressEnabled: 1
22 |
--------------------------------------------------------------------------------
/ProjectSettings/GraphicsSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!30 &1
4 | GraphicsSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 12
7 | m_Deferred:
8 | m_Mode: 1
9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
10 | m_DeferredReflections:
11 | m_Mode: 1
12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
13 | m_ScreenSpaceShadows:
14 | m_Mode: 1
15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
16 | m_LegacyDeferred:
17 | m_Mode: 1
18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
19 | m_DepthNormals:
20 | m_Mode: 1
21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
22 | m_MotionVectors:
23 | m_Mode: 1
24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
25 | m_LightHalo:
26 | m_Mode: 1
27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
28 | m_LensFlare:
29 | m_Mode: 1
30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
31 | m_AlwaysIncludedShaders:
32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
38 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}
39 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}
40 | m_PreloadedShaders: []
41 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
42 | type: 0}
43 | m_CustomRenderPipeline: {fileID: 0}
44 | m_TransparencySortMode: 0
45 | m_TransparencySortAxis: {x: 0, y: 0, z: 1}
46 | m_DefaultRenderingPath: 1
47 | m_DefaultMobileRenderingPath: 1
48 | m_TierSettings: []
49 | m_LightmapStripping: 0
50 | m_FogStripping: 0
51 | m_InstancingStripping: 0
52 | m_LightmapKeepPlain: 1
53 | m_LightmapKeepDirCombined: 1
54 | m_LightmapKeepDynamicPlain: 1
55 | m_LightmapKeepDynamicDirCombined: 1
56 | m_LightmapKeepShadowMask: 1
57 | m_LightmapKeepSubtractive: 1
58 | m_FogKeepLinear: 1
59 | m_FogKeepExp: 1
60 | m_FogKeepExp2: 1
61 | m_AlbedoSwatchInfos: []
62 | m_LightsUseLinearIntensity: 0
63 | m_LightsUseColorTemperature: 0
64 |
--------------------------------------------------------------------------------
/ProjectSettings/InputManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!13 &1
4 | InputManager:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_Axes:
8 | - serializedVersion: 3
9 | m_Name: Horizontal
10 | descriptiveName:
11 | descriptiveNegativeName:
12 | negativeButton: left
13 | positiveButton: right
14 | altNegativeButton: a
15 | altPositiveButton: d
16 | gravity: 3
17 | dead: 0.001
18 | sensitivity: 3
19 | snap: 1
20 | invert: 0
21 | type: 0
22 | axis: 0
23 | joyNum: 0
24 | - serializedVersion: 3
25 | m_Name: Vertical
26 | descriptiveName:
27 | descriptiveNegativeName:
28 | negativeButton: down
29 | positiveButton: up
30 | altNegativeButton: s
31 | altPositiveButton: w
32 | gravity: 3
33 | dead: 0.001
34 | sensitivity: 3
35 | snap: 1
36 | invert: 0
37 | type: 0
38 | axis: 0
39 | joyNum: 0
40 | - serializedVersion: 3
41 | m_Name: Fire1
42 | descriptiveName:
43 | descriptiveNegativeName:
44 | negativeButton:
45 | positiveButton: left ctrl
46 | altNegativeButton:
47 | altPositiveButton: mouse 0
48 | gravity: 1000
49 | dead: 0.001
50 | sensitivity: 1000
51 | snap: 0
52 | invert: 0
53 | type: 0
54 | axis: 0
55 | joyNum: 0
56 | - serializedVersion: 3
57 | m_Name: Fire2
58 | descriptiveName:
59 | descriptiveNegativeName:
60 | negativeButton:
61 | positiveButton: left alt
62 | altNegativeButton:
63 | altPositiveButton: mouse 1
64 | gravity: 1000
65 | dead: 0.001
66 | sensitivity: 1000
67 | snap: 0
68 | invert: 0
69 | type: 0
70 | axis: 0
71 | joyNum: 0
72 | - serializedVersion: 3
73 | m_Name: Fire3
74 | descriptiveName:
75 | descriptiveNegativeName:
76 | negativeButton:
77 | positiveButton: left shift
78 | altNegativeButton:
79 | altPositiveButton: mouse 2
80 | gravity: 1000
81 | dead: 0.001
82 | sensitivity: 1000
83 | snap: 0
84 | invert: 0
85 | type: 0
86 | axis: 0
87 | joyNum: 0
88 | - serializedVersion: 3
89 | m_Name: Jump
90 | descriptiveName:
91 | descriptiveNegativeName:
92 | negativeButton:
93 | positiveButton: space
94 | altNegativeButton:
95 | altPositiveButton:
96 | gravity: 1000
97 | dead: 0.001
98 | sensitivity: 1000
99 | snap: 0
100 | invert: 0
101 | type: 0
102 | axis: 0
103 | joyNum: 0
104 | - serializedVersion: 3
105 | m_Name: Mouse X
106 | descriptiveName:
107 | descriptiveNegativeName:
108 | negativeButton:
109 | positiveButton:
110 | altNegativeButton:
111 | altPositiveButton:
112 | gravity: 0
113 | dead: 0
114 | sensitivity: 0.1
115 | snap: 0
116 | invert: 0
117 | type: 1
118 | axis: 0
119 | joyNum: 0
120 | - serializedVersion: 3
121 | m_Name: Mouse Y
122 | descriptiveName:
123 | descriptiveNegativeName:
124 | negativeButton:
125 | positiveButton:
126 | altNegativeButton:
127 | altPositiveButton:
128 | gravity: 0
129 | dead: 0
130 | sensitivity: 0.1
131 | snap: 0
132 | invert: 0
133 | type: 1
134 | axis: 1
135 | joyNum: 0
136 | - serializedVersion: 3
137 | m_Name: Mouse ScrollWheel
138 | descriptiveName:
139 | descriptiveNegativeName:
140 | negativeButton:
141 | positiveButton:
142 | altNegativeButton:
143 | altPositiveButton:
144 | gravity: 0
145 | dead: 0
146 | sensitivity: 0.1
147 | snap: 0
148 | invert: 0
149 | type: 1
150 | axis: 2
151 | joyNum: 0
152 | - serializedVersion: 3
153 | m_Name: Horizontal
154 | descriptiveName:
155 | descriptiveNegativeName:
156 | negativeButton:
157 | positiveButton:
158 | altNegativeButton:
159 | altPositiveButton:
160 | gravity: 0
161 | dead: 0.19
162 | sensitivity: 1
163 | snap: 0
164 | invert: 0
165 | type: 2
166 | axis: 0
167 | joyNum: 0
168 | - serializedVersion: 3
169 | m_Name: Vertical
170 | descriptiveName:
171 | descriptiveNegativeName:
172 | negativeButton:
173 | positiveButton:
174 | altNegativeButton:
175 | altPositiveButton:
176 | gravity: 0
177 | dead: 0.19
178 | sensitivity: 1
179 | snap: 0
180 | invert: 1
181 | type: 2
182 | axis: 1
183 | joyNum: 0
184 | - serializedVersion: 3
185 | m_Name: Fire1
186 | descriptiveName:
187 | descriptiveNegativeName:
188 | negativeButton:
189 | positiveButton: joystick button 0
190 | altNegativeButton:
191 | altPositiveButton:
192 | gravity: 1000
193 | dead: 0.001
194 | sensitivity: 1000
195 | snap: 0
196 | invert: 0
197 | type: 0
198 | axis: 0
199 | joyNum: 0
200 | - serializedVersion: 3
201 | m_Name: Fire2
202 | descriptiveName:
203 | descriptiveNegativeName:
204 | negativeButton:
205 | positiveButton: joystick button 1
206 | altNegativeButton:
207 | altPositiveButton:
208 | gravity: 1000
209 | dead: 0.001
210 | sensitivity: 1000
211 | snap: 0
212 | invert: 0
213 | type: 0
214 | axis: 0
215 | joyNum: 0
216 | - serializedVersion: 3
217 | m_Name: Fire3
218 | descriptiveName:
219 | descriptiveNegativeName:
220 | negativeButton:
221 | positiveButton: joystick button 2
222 | altNegativeButton:
223 | altPositiveButton:
224 | gravity: 1000
225 | dead: 0.001
226 | sensitivity: 1000
227 | snap: 0
228 | invert: 0
229 | type: 0
230 | axis: 0
231 | joyNum: 0
232 | - serializedVersion: 3
233 | m_Name: Jump
234 | descriptiveName:
235 | descriptiveNegativeName:
236 | negativeButton:
237 | positiveButton: joystick button 3
238 | altNegativeButton:
239 | altPositiveButton:
240 | gravity: 1000
241 | dead: 0.001
242 | sensitivity: 1000
243 | snap: 0
244 | invert: 0
245 | type: 0
246 | axis: 0
247 | joyNum: 0
248 | - serializedVersion: 3
249 | m_Name: Submit
250 | descriptiveName:
251 | descriptiveNegativeName:
252 | negativeButton:
253 | positiveButton: return
254 | altNegativeButton:
255 | altPositiveButton: joystick button 0
256 | gravity: 1000
257 | dead: 0.001
258 | sensitivity: 1000
259 | snap: 0
260 | invert: 0
261 | type: 0
262 | axis: 0
263 | joyNum: 0
264 | - serializedVersion: 3
265 | m_Name: Submit
266 | descriptiveName:
267 | descriptiveNegativeName:
268 | negativeButton:
269 | positiveButton: enter
270 | altNegativeButton:
271 | altPositiveButton: space
272 | gravity: 1000
273 | dead: 0.001
274 | sensitivity: 1000
275 | snap: 0
276 | invert: 0
277 | type: 0
278 | axis: 0
279 | joyNum: 0
280 | - serializedVersion: 3
281 | m_Name: Cancel
282 | descriptiveName:
283 | descriptiveNegativeName:
284 | negativeButton:
285 | positiveButton: escape
286 | altNegativeButton:
287 | altPositiveButton: joystick button 1
288 | gravity: 1000
289 | dead: 0.001
290 | sensitivity: 1000
291 | snap: 0
292 | invert: 0
293 | type: 0
294 | axis: 0
295 | joyNum: 0
296 |
--------------------------------------------------------------------------------
/ProjectSettings/NavMeshAreas.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!126 &1
4 | NavMeshProjectSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | areas:
8 | - name: Walkable
9 | cost: 1
10 | - name: Not Walkable
11 | cost: 1
12 | - name: Jump
13 | cost: 2
14 | - name:
15 | cost: 1
16 | - name:
17 | cost: 1
18 | - name:
19 | cost: 1
20 | - name:
21 | cost: 1
22 | - name:
23 | cost: 1
24 | - name:
25 | cost: 1
26 | - name:
27 | cost: 1
28 | - name:
29 | cost: 1
30 | - name:
31 | cost: 1
32 | - name:
33 | cost: 1
34 | - name:
35 | cost: 1
36 | - name:
37 | cost: 1
38 | - name:
39 | cost: 1
40 | - name:
41 | cost: 1
42 | - name:
43 | cost: 1
44 | - name:
45 | cost: 1
46 | - name:
47 | cost: 1
48 | - name:
49 | cost: 1
50 | - name:
51 | cost: 1
52 | - name:
53 | cost: 1
54 | - name:
55 | cost: 1
56 | - name:
57 | cost: 1
58 | - name:
59 | cost: 1
60 | - name:
61 | cost: 1
62 | - name:
63 | cost: 1
64 | - name:
65 | cost: 1
66 | - name:
67 | cost: 1
68 | - name:
69 | cost: 1
70 | - name:
71 | cost: 1
72 | m_LastAgentTypeID: -887442657
73 | m_Settings:
74 | - serializedVersion: 2
75 | agentTypeID: 0
76 | agentRadius: 0.5
77 | agentHeight: 2
78 | agentSlope: 45
79 | agentClimb: 0.75
80 | ledgeDropHeight: 0
81 | maxJumpAcrossDistance: 0
82 | minRegionArea: 2
83 | manualCellSize: 0
84 | cellSize: 0.16666667
85 | manualTileSize: 0
86 | tileSize: 256
87 | accuratePlacement: 0
88 | debug:
89 | m_Flags: 0
90 | m_SettingNames:
91 | - Humanoid
92 |
--------------------------------------------------------------------------------
/ProjectSettings/NetworkManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!149 &1
4 | NetworkManager:
5 | m_ObjectHideFlags: 0
6 | m_DebugLevel: 0
7 | m_Sendrate: 15
8 | m_AssetToPrefab: {}
9 |
--------------------------------------------------------------------------------
/ProjectSettings/Physics2DSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!19 &1
4 | Physics2DSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 3
7 | m_Gravity: {x: 0, y: -9.81}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_VelocityIterations: 8
10 | m_PositionIterations: 3
11 | m_VelocityThreshold: 1
12 | m_MaxLinearCorrection: 0.2
13 | m_MaxAngularCorrection: 8
14 | m_MaxTranslationSpeed: 100
15 | m_MaxRotationSpeed: 360
16 | m_BaumgarteScale: 0.2
17 | m_BaumgarteTimeOfImpactScale: 0.75
18 | m_TimeToSleep: 0.5
19 | m_LinearSleepTolerance: 0.01
20 | m_AngularSleepTolerance: 2
21 | m_DefaultContactOffset: 0.01
22 | m_AutoSimulation: 1
23 | m_QueriesHitTriggers: 1
24 | m_QueriesStartInColliders: 1
25 | m_ChangeStopsCallbacks: 0
26 | m_CallbacksOnDisable: 1
27 | m_AutoSyncTransforms: 1
28 | m_AlwaysShowColliders: 0
29 | m_ShowColliderSleep: 1
30 | m_ShowColliderContacts: 0
31 | m_ShowColliderAABB: 0
32 | m_ContactArrowScale: 0.2
33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
38 |
--------------------------------------------------------------------------------
/ProjectSettings/PresetManager.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glegoo/unity-lidar-tuio/d179555772503ebb07168d0ebd98b4a24e3569cc/ProjectSettings/PresetManager.asset
--------------------------------------------------------------------------------
/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: 15
7 | productGUID: d035d4cba95f7cf4c8ca8e81e9115e4d
8 | AndroidProfiler: 0
9 | AndroidFilterTouchesWhenObscured: 0
10 | AndroidEnableSustainedPerformanceMode: 0
11 | defaultScreenOrientation: 4
12 | targetDevice: 2
13 | useOnDemandResources: 0
14 | accelerometerFrequency: 60
15 | companyName: DefaultCompany
16 | productName: testYDLidar
17 | defaultCursor: {fileID: 0}
18 | cursorHotspot: {x: 0, y: 0}
19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
20 | m_ShowUnitySplashScreen: 1
21 | m_ShowUnitySplashLogo: 1
22 | m_SplashScreenOverlayOpacity: 1
23 | m_SplashScreenAnimation: 1
24 | m_SplashScreenLogoStyle: 1
25 | m_SplashScreenDrawMode: 0
26 | m_SplashScreenBackgroundAnimationZoom: 1
27 | m_SplashScreenLogoAnimationZoom: 1
28 | m_SplashScreenBackgroundLandscapeAspect: 1
29 | m_SplashScreenBackgroundPortraitAspect: 1
30 | m_SplashScreenBackgroundLandscapeUvs:
31 | serializedVersion: 2
32 | x: 0
33 | y: 0
34 | width: 1
35 | height: 1
36 | m_SplashScreenBackgroundPortraitUvs:
37 | serializedVersion: 2
38 | x: 0
39 | y: 0
40 | width: 1
41 | height: 1
42 | m_SplashScreenLogos: []
43 | m_VirtualRealitySplashScreen: {fileID: 0}
44 | m_HolographicTrackingLossScreen: {fileID: 0}
45 | defaultScreenWidth: 1024
46 | defaultScreenHeight: 768
47 | defaultScreenWidthWeb: 960
48 | defaultScreenHeightWeb: 600
49 | m_StereoRenderingPath: 0
50 | m_ActiveColorSpace: 0
51 | m_MTRendering: 1
52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000
53 | iosShowActivityIndicatorOnLoading: -1
54 | androidShowActivityIndicatorOnLoading: -1
55 | iosAppInBackgroundBehavior: 0
56 | displayResolutionDialog: 1
57 | iosAllowHTTPDownload: 1
58 | allowedAutorotateToPortrait: 1
59 | allowedAutorotateToPortraitUpsideDown: 1
60 | allowedAutorotateToLandscapeRight: 1
61 | allowedAutorotateToLandscapeLeft: 1
62 | useOSAutorotation: 1
63 | use32BitDisplayBuffer: 1
64 | preserveFramebufferAlpha: 0
65 | disableDepthAndStencilBuffers: 0
66 | androidBlitType: 0
67 | defaultIsNativeResolution: 1
68 | macRetinaSupport: 1
69 | runInBackground: 1
70 | captureSingleScreen: 0
71 | muteOtherAudioSources: 0
72 | Prepare IOS For Recording: 0
73 | Force IOS Speakers When Recording: 0
74 | deferSystemGesturesMode: 0
75 | hideHomeButton: 0
76 | submitAnalytics: 1
77 | usePlayerLog: 1
78 | bakeCollisionMeshes: 0
79 | forceSingleInstance: 0
80 | resizableWindow: 1
81 | useMacAppStoreValidation: 0
82 | macAppStoreCategory: public.app-category.games
83 | gpuSkinning: 0
84 | graphicsJobs: 0
85 | xboxPIXTextureCapture: 0
86 | xboxEnableAvatar: 0
87 | xboxEnableKinect: 0
88 | xboxEnableKinectAutoTracking: 0
89 | xboxEnableFitness: 0
90 | visibleInBackground: 1
91 | allowFullscreenSwitch: 1
92 | graphicsJobMode: 0
93 | fullscreenMode: 1
94 | xboxSpeechDB: 0
95 | xboxEnableHeadOrientation: 0
96 | xboxEnableGuest: 0
97 | xboxEnablePIXSampling: 0
98 | metalFramebufferOnly: 0
99 | n3dsDisableStereoscopicView: 0
100 | n3dsEnableSharedListOpt: 1
101 | n3dsEnableVSync: 0
102 | xboxOneResolution: 0
103 | xboxOneSResolution: 0
104 | xboxOneXResolution: 3
105 | xboxOneMonoLoggingLevel: 0
106 | xboxOneLoggingLevel: 1
107 | xboxOneDisableEsram: 0
108 | xboxOnePresentImmediateThreshold: 0
109 | switchQueueCommandMemory: 0
110 | videoMemoryForVertexBuffers: 0
111 | psp2PowerMode: 0
112 | psp2AcquireBGM: 1
113 | vulkanEnableSetSRGBWrite: 0
114 | vulkanUseSWCommandBuffers: 0
115 | m_SupportedAspectRatios:
116 | 4:3: 1
117 | 5:4: 1
118 | 16:10: 1
119 | 16:9: 1
120 | Others: 1
121 | bundleVersion: 1.0
122 | preloadedAssets: []
123 | metroInputSource: 0
124 | wsaTransparentSwapchain: 0
125 | m_HolographicPauseOnTrackingLoss: 1
126 | xboxOneDisableKinectGpuReservation: 0
127 | xboxOneEnable7thCore: 0
128 | isWsaHolographicRemotingEnabled: 0
129 | vrSettings:
130 | cardboard:
131 | depthFormat: 0
132 | enableTransitionView: 0
133 | daydream:
134 | depthFormat: 0
135 | useSustainedPerformanceMode: 0
136 | enableVideoLayer: 0
137 | useProtectedVideoMemory: 0
138 | minimumSupportedHeadTracking: 0
139 | maximumSupportedHeadTracking: 1
140 | hololens:
141 | depthFormat: 1
142 | depthBufferSharingEnabled: 0
143 | oculus:
144 | sharedDepthBuffer: 0
145 | dashSupport: 0
146 | enable360StereoCapture: 0
147 | protectGraphicsMemory: 0
148 | useHDRDisplay: 0
149 | m_ColorGamuts: 00000000
150 | targetPixelDensity: 30
151 | resolutionScalingMode: 0
152 | androidSupportedAspectRatio: 1
153 | androidMaxAspectRatio: 2.1
154 | applicationIdentifier: {}
155 | buildNumber: {}
156 | AndroidBundleVersionCode: 1
157 | AndroidMinSdkVersion: 16
158 | AndroidTargetSdkVersion: 0
159 | AndroidPreferredInstallLocation: 1
160 | aotOptions:
161 | stripEngineCode: 1
162 | iPhoneStrippingLevel: 0
163 | iPhoneScriptCallOptimization: 0
164 | ForceInternetPermission: 0
165 | ForceSDCardPermission: 0
166 | CreateWallpaper: 0
167 | APKExpansionFiles: 0
168 | keepLoadedShadersAlive: 0
169 | StripUnusedMeshComponents: 0
170 | VertexChannelCompressionMask: 214
171 | iPhoneSdkVersion: 988
172 | iOSTargetOSVersionString: 8.0
173 | tvOSSdkVersion: 0
174 | tvOSRequireExtendedGameController: 0
175 | tvOSTargetOSVersionString: 9.0
176 | uIPrerenderedIcon: 0
177 | uIRequiresPersistentWiFi: 0
178 | uIRequiresFullScreen: 1
179 | uIStatusBarHidden: 1
180 | uIExitOnSuspend: 0
181 | uIStatusBarStyle: 0
182 | iPhoneSplashScreen: {fileID: 0}
183 | iPhoneHighResSplashScreen: {fileID: 0}
184 | iPhoneTallHighResSplashScreen: {fileID: 0}
185 | iPhone47inSplashScreen: {fileID: 0}
186 | iPhone55inPortraitSplashScreen: {fileID: 0}
187 | iPhone55inLandscapeSplashScreen: {fileID: 0}
188 | iPhone58inPortraitSplashScreen: {fileID: 0}
189 | iPhone58inLandscapeSplashScreen: {fileID: 0}
190 | iPadPortraitSplashScreen: {fileID: 0}
191 | iPadHighResPortraitSplashScreen: {fileID: 0}
192 | iPadLandscapeSplashScreen: {fileID: 0}
193 | iPadHighResLandscapeSplashScreen: {fileID: 0}
194 | appleTVSplashScreen: {fileID: 0}
195 | appleTVSplashScreen2x: {fileID: 0}
196 | tvOSSmallIconLayers: []
197 | tvOSSmallIconLayers2x: []
198 | tvOSLargeIconLayers: []
199 | tvOSLargeIconLayers2x: []
200 | tvOSTopShelfImageLayers: []
201 | tvOSTopShelfImageLayers2x: []
202 | tvOSTopShelfImageWideLayers: []
203 | tvOSTopShelfImageWideLayers2x: []
204 | iOSLaunchScreenType: 0
205 | iOSLaunchScreenPortrait: {fileID: 0}
206 | iOSLaunchScreenLandscape: {fileID: 0}
207 | iOSLaunchScreenBackgroundColor:
208 | serializedVersion: 2
209 | rgba: 0
210 | iOSLaunchScreenFillPct: 100
211 | iOSLaunchScreenSize: 100
212 | iOSLaunchScreenCustomXibPath:
213 | iOSLaunchScreeniPadType: 0
214 | iOSLaunchScreeniPadImage: {fileID: 0}
215 | iOSLaunchScreeniPadBackgroundColor:
216 | serializedVersion: 2
217 | rgba: 0
218 | iOSLaunchScreeniPadFillPct: 100
219 | iOSLaunchScreeniPadSize: 100
220 | iOSLaunchScreeniPadCustomXibPath:
221 | iOSUseLaunchScreenStoryboard: 0
222 | iOSLaunchScreenCustomStoryboardPath:
223 | iOSDeviceRequirements: []
224 | iOSURLSchemes: []
225 | iOSBackgroundModes: 0
226 | iOSMetalForceHardShadows: 0
227 | metalEditorSupport: 1
228 | metalAPIValidation: 1
229 | iOSRenderExtraFrameOnPause: 0
230 | appleDeveloperTeamID:
231 | iOSManualSigningProvisioningProfileID:
232 | tvOSManualSigningProvisioningProfileID:
233 | iOSManualSigningProvisioningProfileType: 0
234 | tvOSManualSigningProvisioningProfileType: 0
235 | appleEnableAutomaticSigning: 0
236 | iOSRequireARKit: 0
237 | appleEnableProMotion: 0
238 | vulkanEditorSupport: 0
239 | clonedFromGUID: 00000000000000000000000000000000
240 | templatePackageId:
241 | templateDefaultScene:
242 | AndroidTargetArchitectures: 5
243 | AndroidSplashScreenScale: 0
244 | androidSplashScreen: {fileID: 0}
245 | AndroidKeystoreName:
246 | AndroidKeyaliasName:
247 | AndroidBuildApkPerCpuArchitecture: 0
248 | AndroidTVCompatibility: 1
249 | AndroidIsGame: 1
250 | AndroidEnableTango: 0
251 | androidEnableBanner: 1
252 | androidUseLowAccuracyLocation: 0
253 | m_AndroidBanners:
254 | - width: 320
255 | height: 180
256 | banner: {fileID: 0}
257 | androidGamepadSupportLevel: 0
258 | resolutionDialogBanner: {fileID: 0}
259 | m_BuildTargetIcons: []
260 | m_BuildTargetPlatformIcons: []
261 | m_BuildTargetBatching: []
262 | m_BuildTargetGraphicsAPIs: []
263 | m_BuildTargetVRSettings: []
264 | m_BuildTargetEnableVuforiaSettings: []
265 | openGLRequireES31: 0
266 | openGLRequireES31AEP: 0
267 | m_TemplateCustomTags: {}
268 | mobileMTRendering:
269 | Android: 1
270 | iPhone: 1
271 | tvOS: 1
272 | m_BuildTargetGroupLightmapEncodingQuality: []
273 | m_BuildTargetGroupLightmapSettings: []
274 | playModeTestRunnerEnabled: 0
275 | runPlayModeTestAsEditModeTest: 0
276 | actionOnDotNetUnhandledException: 1
277 | enableInternalProfiler: 0
278 | logObjCUncaughtExceptions: 1
279 | enableCrashReportAPI: 0
280 | cameraUsageDescription:
281 | locationUsageDescription:
282 | microphoneUsageDescription:
283 | switchNetLibKey:
284 | switchSocketMemoryPoolSize: 6144
285 | switchSocketAllocatorPoolSize: 128
286 | switchSocketConcurrencyLimit: 14
287 | switchScreenResolutionBehavior: 2
288 | switchUseCPUProfiler: 0
289 | switchApplicationID: 0x01004b9000490000
290 | switchNSODependencies:
291 | switchTitleNames_0:
292 | switchTitleNames_1:
293 | switchTitleNames_2:
294 | switchTitleNames_3:
295 | switchTitleNames_4:
296 | switchTitleNames_5:
297 | switchTitleNames_6:
298 | switchTitleNames_7:
299 | switchTitleNames_8:
300 | switchTitleNames_9:
301 | switchTitleNames_10:
302 | switchTitleNames_11:
303 | switchTitleNames_12:
304 | switchTitleNames_13:
305 | switchTitleNames_14:
306 | switchPublisherNames_0:
307 | switchPublisherNames_1:
308 | switchPublisherNames_2:
309 | switchPublisherNames_3:
310 | switchPublisherNames_4:
311 | switchPublisherNames_5:
312 | switchPublisherNames_6:
313 | switchPublisherNames_7:
314 | switchPublisherNames_8:
315 | switchPublisherNames_9:
316 | switchPublisherNames_10:
317 | switchPublisherNames_11:
318 | switchPublisherNames_12:
319 | switchPublisherNames_13:
320 | switchPublisherNames_14:
321 | switchIcons_0: {fileID: 0}
322 | switchIcons_1: {fileID: 0}
323 | switchIcons_2: {fileID: 0}
324 | switchIcons_3: {fileID: 0}
325 | switchIcons_4: {fileID: 0}
326 | switchIcons_5: {fileID: 0}
327 | switchIcons_6: {fileID: 0}
328 | switchIcons_7: {fileID: 0}
329 | switchIcons_8: {fileID: 0}
330 | switchIcons_9: {fileID: 0}
331 | switchIcons_10: {fileID: 0}
332 | switchIcons_11: {fileID: 0}
333 | switchIcons_12: {fileID: 0}
334 | switchIcons_13: {fileID: 0}
335 | switchIcons_14: {fileID: 0}
336 | switchSmallIcons_0: {fileID: 0}
337 | switchSmallIcons_1: {fileID: 0}
338 | switchSmallIcons_2: {fileID: 0}
339 | switchSmallIcons_3: {fileID: 0}
340 | switchSmallIcons_4: {fileID: 0}
341 | switchSmallIcons_5: {fileID: 0}
342 | switchSmallIcons_6: {fileID: 0}
343 | switchSmallIcons_7: {fileID: 0}
344 | switchSmallIcons_8: {fileID: 0}
345 | switchSmallIcons_9: {fileID: 0}
346 | switchSmallIcons_10: {fileID: 0}
347 | switchSmallIcons_11: {fileID: 0}
348 | switchSmallIcons_12: {fileID: 0}
349 | switchSmallIcons_13: {fileID: 0}
350 | switchSmallIcons_14: {fileID: 0}
351 | switchManualHTML:
352 | switchAccessibleURLs:
353 | switchLegalInformation:
354 | switchMainThreadStackSize: 1048576
355 | switchPresenceGroupId:
356 | switchLogoHandling: 0
357 | switchReleaseVersion: 0
358 | switchDisplayVersion: 1.0.0
359 | switchStartupUserAccount: 0
360 | switchTouchScreenUsage: 0
361 | switchSupportedLanguagesMask: 0
362 | switchLogoType: 0
363 | switchApplicationErrorCodeCategory:
364 | switchUserAccountSaveDataSize: 0
365 | switchUserAccountSaveDataJournalSize: 0
366 | switchApplicationAttribute: 0
367 | switchCardSpecSize: -1
368 | switchCardSpecClock: -1
369 | switchRatingsMask: 0
370 | switchRatingsInt_0: 0
371 | switchRatingsInt_1: 0
372 | switchRatingsInt_2: 0
373 | switchRatingsInt_3: 0
374 | switchRatingsInt_4: 0
375 | switchRatingsInt_5: 0
376 | switchRatingsInt_6: 0
377 | switchRatingsInt_7: 0
378 | switchRatingsInt_8: 0
379 | switchRatingsInt_9: 0
380 | switchRatingsInt_10: 0
381 | switchRatingsInt_11: 0
382 | switchLocalCommunicationIds_0:
383 | switchLocalCommunicationIds_1:
384 | switchLocalCommunicationIds_2:
385 | switchLocalCommunicationIds_3:
386 | switchLocalCommunicationIds_4:
387 | switchLocalCommunicationIds_5:
388 | switchLocalCommunicationIds_6:
389 | switchLocalCommunicationIds_7:
390 | switchParentalControl: 0
391 | switchAllowsScreenshot: 1
392 | switchAllowsVideoCapturing: 1
393 | switchAllowsRuntimeAddOnContentInstall: 0
394 | switchDataLossConfirmation: 0
395 | switchUserAccountLockEnabled: 0
396 | switchSupportedNpadStyles: 3
397 | switchNativeFsCacheSize: 32
398 | switchIsHoldTypeHorizontal: 0
399 | switchSupportedNpadCount: 8
400 | switchSocketConfigEnabled: 0
401 | switchTcpInitialSendBufferSize: 32
402 | switchTcpInitialReceiveBufferSize: 64
403 | switchTcpAutoSendBufferSizeMax: 256
404 | switchTcpAutoReceiveBufferSizeMax: 256
405 | switchUdpSendBufferSize: 9
406 | switchUdpReceiveBufferSize: 42
407 | switchSocketBufferEfficiency: 4
408 | switchSocketInitializeEnabled: 1
409 | switchNetworkInterfaceManagerInitializeEnabled: 1
410 | switchPlayerConnectionEnabled: 1
411 | ps4NPAgeRating: 12
412 | ps4NPTitleSecret:
413 | ps4NPTrophyPackPath:
414 | ps4ParentalLevel: 11
415 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
416 | ps4Category: 0
417 | ps4MasterVersion: 01.00
418 | ps4AppVersion: 01.00
419 | ps4AppType: 0
420 | ps4ParamSfxPath:
421 | ps4VideoOutPixelFormat: 0
422 | ps4VideoOutInitialWidth: 1920
423 | ps4VideoOutBaseModeInitialWidth: 1920
424 | ps4VideoOutReprojectionRate: 60
425 | ps4PronunciationXMLPath:
426 | ps4PronunciationSIGPath:
427 | ps4BackgroundImagePath:
428 | ps4StartupImagePath:
429 | ps4StartupImagesFolder:
430 | ps4IconImagesFolder:
431 | ps4SaveDataImagePath:
432 | ps4SdkOverride:
433 | ps4BGMPath:
434 | ps4ShareFilePath:
435 | ps4ShareOverlayImagePath:
436 | ps4PrivacyGuardImagePath:
437 | ps4NPtitleDatPath:
438 | ps4RemotePlayKeyAssignment: -1
439 | ps4RemotePlayKeyMappingDir:
440 | ps4PlayTogetherPlayerCount: 0
441 | ps4EnterButtonAssignment: 1
442 | ps4ApplicationParam1: 0
443 | ps4ApplicationParam2: 0
444 | ps4ApplicationParam3: 0
445 | ps4ApplicationParam4: 0
446 | ps4DownloadDataSize: 0
447 | ps4GarlicHeapSize: 2048
448 | ps4ProGarlicHeapSize: 2560
449 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
450 | ps4pnSessions: 1
451 | ps4pnPresence: 1
452 | ps4pnFriends: 1
453 | ps4pnGameCustomData: 1
454 | playerPrefsSupport: 0
455 | enableApplicationExit: 0
456 | restrictedAudioUsageRights: 0
457 | ps4UseResolutionFallback: 0
458 | ps4ReprojectionSupport: 0
459 | ps4UseAudio3dBackend: 0
460 | ps4SocialScreenEnabled: 0
461 | ps4ScriptOptimizationLevel: 0
462 | ps4Audio3dVirtualSpeakerCount: 14
463 | ps4attribCpuUsage: 0
464 | ps4PatchPkgPath:
465 | ps4PatchLatestPkgPath:
466 | ps4PatchChangeinfoPath:
467 | ps4PatchDayOne: 0
468 | ps4attribUserManagement: 0
469 | ps4attribMoveSupport: 0
470 | ps4attrib3DSupport: 0
471 | ps4attribShareSupport: 0
472 | ps4attribExclusiveVR: 0
473 | ps4disableAutoHideSplash: 0
474 | ps4videoRecordingFeaturesUsed: 0
475 | ps4contentSearchFeaturesUsed: 0
476 | ps4attribEyeToEyeDistanceSettingVR: 0
477 | ps4IncludedModules: []
478 | monoEnv:
479 | psp2Splashimage: {fileID: 0}
480 | psp2NPTrophyPackPath:
481 | psp2NPSupportGBMorGJP: 0
482 | psp2NPAgeRating: 12
483 | psp2NPTitleDatPath:
484 | psp2NPCommsID:
485 | psp2NPCommunicationsID:
486 | psp2NPCommsPassphrase:
487 | psp2NPCommsSig:
488 | psp2ParamSfxPath:
489 | psp2ManualPath:
490 | psp2LiveAreaGatePath:
491 | psp2LiveAreaBackroundPath:
492 | psp2LiveAreaPath:
493 | psp2LiveAreaTrialPath:
494 | psp2PatchChangeInfoPath:
495 | psp2PatchOriginalPackage:
496 | psp2PackagePassword: F69AzBlax3CF3EDNhm3soLBPh71Yexui
497 | psp2KeystoneFile:
498 | psp2MemoryExpansionMode: 0
499 | psp2DRMType: 0
500 | psp2StorageType: 0
501 | psp2MediaCapacity: 0
502 | psp2DLCConfigPath:
503 | psp2ThumbnailPath:
504 | psp2BackgroundPath:
505 | psp2SoundPath:
506 | psp2TrophyCommId:
507 | psp2TrophyPackagePath:
508 | psp2PackagedResourcesPath:
509 | psp2SaveDataQuota: 10240
510 | psp2ParentalLevel: 1
511 | psp2ShortTitle: Not Set
512 | psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF
513 | psp2Category: 0
514 | psp2MasterVersion: 01.00
515 | psp2AppVersion: 01.00
516 | psp2TVBootMode: 0
517 | psp2EnterButtonAssignment: 2
518 | psp2TVDisableEmu: 0
519 | psp2AllowTwitterDialog: 1
520 | psp2Upgradable: 0
521 | psp2HealthWarning: 0
522 | psp2UseLibLocation: 0
523 | psp2InfoBarOnStartup: 0
524 | psp2InfoBarColor: 0
525 | psp2ScriptOptimizationLevel: 0
526 | splashScreenBackgroundSourceLandscape: {fileID: 0}
527 | splashScreenBackgroundSourcePortrait: {fileID: 0}
528 | spritePackerPolicy:
529 | webGLMemorySize: 256
530 | webGLExceptionSupport: 1
531 | webGLNameFilesAsHashes: 0
532 | webGLDataCaching: 0
533 | webGLDebugSymbols: 0
534 | webGLEmscriptenArgs:
535 | webGLModulesDirectory:
536 | webGLTemplate: APPLICATION:Default
537 | webGLAnalyzeBuildSize: 0
538 | webGLUseEmbeddedResources: 0
539 | webGLCompressionFormat: 1
540 | webGLLinkerTarget: 1
541 | scriptingDefineSymbols: {}
542 | platformArchitecture: {}
543 | scriptingBackend: {}
544 | il2cppCompilerConfiguration: {}
545 | incrementalIl2cppBuild: {}
546 | allowUnsafeCode: 0
547 | additionalIl2CppArgs:
548 | scriptingRuntimeVersion: 0
549 | apiCompatibilityLevelPerPlatform:
550 | Standalone: 1
551 | m_RenderingPath: 1
552 | m_MobileRenderingPath: 1
553 | metroPackageName: testYDLidar
554 | metroPackageVersion:
555 | metroCertificatePath:
556 | metroCertificatePassword:
557 | metroCertificateSubject:
558 | metroCertificateIssuer:
559 | metroCertificateNotAfter: 0000000000000000
560 | metroApplicationDescription: testYDLidar
561 | wsaImages: {}
562 | metroTileShortName:
563 | metroTileShowName: 0
564 | metroMediumTileShowName: 0
565 | metroLargeTileShowName: 0
566 | metroWideTileShowName: 0
567 | metroDefaultTileSize: 1
568 | metroTileForegroundText: 2
569 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
570 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,
571 | a: 1}
572 | metroSplashScreenUseBackgroundColor: 0
573 | platformCapabilities: {}
574 | metroFTAName:
575 | metroFTAFileTypes: []
576 | metroProtocolName:
577 | metroCompilationOverrides: 1
578 | n3dsUseExtSaveData: 0
579 | n3dsCompressStaticMem: 1
580 | n3dsExtSaveDataNumber: 0x12345
581 | n3dsStackSize: 131072
582 | n3dsTargetPlatform: 2
583 | n3dsRegion: 7
584 | n3dsMediaSize: 0
585 | n3dsLogoStyle: 3
586 | n3dsTitle: GameName
587 | n3dsProductCode:
588 | n3dsApplicationId: 0xFF3FF
589 | XboxOneProductId:
590 | XboxOneUpdateKey:
591 | XboxOneSandboxId:
592 | XboxOneContentId:
593 | XboxOneTitleId:
594 | XboxOneSCId:
595 | XboxOneGameOsOverridePath:
596 | XboxOnePackagingOverridePath:
597 | XboxOneAppManifestOverridePath:
598 | XboxOneVersion: 1.0.0.0
599 | XboxOnePackageEncryption: 0
600 | XboxOnePackageUpdateGranularity: 2
601 | XboxOneDescription:
602 | XboxOneLanguage:
603 | - enus
604 | XboxOneCapability: []
605 | XboxOneGameRating: {}
606 | XboxOneIsContentPackage: 0
607 | XboxOneEnableGPUVariability: 0
608 | XboxOneSockets: {}
609 | XboxOneSplashScreen: {fileID: 0}
610 | XboxOneAllowedProductIds: []
611 | XboxOnePersistentLocalStorageSize: 0
612 | XboxOneXTitleMemory: 8
613 | xboxOneScriptCompiler: 0
614 | vrEditorSettings:
615 | daydream:
616 | daydreamIconForeground: {fileID: 0}
617 | daydreamIconBackground: {fileID: 0}
618 | cloudServicesEnabled: {}
619 | facebookSdkVersion: 7.9.4
620 | apiCompatibilityLevel: 2
621 | cloudProjectId:
622 | projectName:
623 | organizationId:
624 | cloudEnabled: 0
625 | enableNativePlatformBackendsForNewInputSystem: 0
626 | disableOldInputManagerSupport: 0
627 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2018.2.11f1
2 |
--------------------------------------------------------------------------------
/ProjectSettings/QualitySettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!47 &1
4 | QualitySettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 5
7 | m_CurrentQuality: 5
8 | m_QualitySettings:
9 | - serializedVersion: 2
10 | name: Very Low
11 | pixelLightCount: 0
12 | shadows: 0
13 | shadowResolution: 0
14 | shadowProjection: 1
15 | shadowCascades: 1
16 | shadowDistance: 15
17 | shadowNearPlaneOffset: 3
18 | shadowCascade2Split: 0.33333334
19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
20 | shadowmaskMode: 0
21 | blendWeights: 1
22 | textureQuality: 1
23 | anisotropicTextures: 0
24 | antiAliasing: 0
25 | softParticles: 0
26 | softVegetation: 0
27 | realtimeReflectionProbes: 0
28 | billboardsFaceCameraPosition: 0
29 | vSyncCount: 0
30 | lodBias: 0.3
31 | maximumLODLevel: 0
32 | particleRaycastBudget: 4
33 | asyncUploadTimeSlice: 2
34 | asyncUploadBufferSize: 4
35 | resolutionScalingFixedDPIFactor: 1
36 | excludedTargetPlatforms: []
37 | - serializedVersion: 2
38 | name: Low
39 | pixelLightCount: 0
40 | shadows: 0
41 | shadowResolution: 0
42 | shadowProjection: 1
43 | shadowCascades: 1
44 | shadowDistance: 20
45 | shadowNearPlaneOffset: 3
46 | shadowCascade2Split: 0.33333334
47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
48 | shadowmaskMode: 0
49 | blendWeights: 2
50 | textureQuality: 0
51 | anisotropicTextures: 0
52 | antiAliasing: 0
53 | softParticles: 0
54 | softVegetation: 0
55 | realtimeReflectionProbes: 0
56 | billboardsFaceCameraPosition: 0
57 | vSyncCount: 0
58 | lodBias: 0.4
59 | maximumLODLevel: 0
60 | particleRaycastBudget: 16
61 | asyncUploadTimeSlice: 2
62 | asyncUploadBufferSize: 4
63 | resolutionScalingFixedDPIFactor: 1
64 | excludedTargetPlatforms: []
65 | - serializedVersion: 2
66 | name: Medium
67 | pixelLightCount: 1
68 | shadows: 1
69 | shadowResolution: 0
70 | shadowProjection: 1
71 | shadowCascades: 1
72 | shadowDistance: 20
73 | shadowNearPlaneOffset: 3
74 | shadowCascade2Split: 0.33333334
75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
76 | shadowmaskMode: 0
77 | blendWeights: 2
78 | textureQuality: 0
79 | anisotropicTextures: 1
80 | antiAliasing: 0
81 | softParticles: 0
82 | softVegetation: 0
83 | realtimeReflectionProbes: 0
84 | billboardsFaceCameraPosition: 0
85 | vSyncCount: 1
86 | lodBias: 0.7
87 | maximumLODLevel: 0
88 | particleRaycastBudget: 64
89 | asyncUploadTimeSlice: 2
90 | asyncUploadBufferSize: 4
91 | resolutionScalingFixedDPIFactor: 1
92 | excludedTargetPlatforms: []
93 | - serializedVersion: 2
94 | name: High
95 | pixelLightCount: 2
96 | shadows: 2
97 | shadowResolution: 1
98 | shadowProjection: 1
99 | shadowCascades: 2
100 | shadowDistance: 40
101 | shadowNearPlaneOffset: 3
102 | shadowCascade2Split: 0.33333334
103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
104 | shadowmaskMode: 1
105 | blendWeights: 2
106 | textureQuality: 0
107 | anisotropicTextures: 1
108 | antiAliasing: 0
109 | softParticles: 0
110 | softVegetation: 1
111 | realtimeReflectionProbes: 1
112 | billboardsFaceCameraPosition: 1
113 | vSyncCount: 1
114 | lodBias: 1
115 | maximumLODLevel: 0
116 | particleRaycastBudget: 256
117 | asyncUploadTimeSlice: 2
118 | asyncUploadBufferSize: 4
119 | resolutionScalingFixedDPIFactor: 1
120 | excludedTargetPlatforms: []
121 | - serializedVersion: 2
122 | name: Very High
123 | pixelLightCount: 3
124 | shadows: 2
125 | shadowResolution: 2
126 | shadowProjection: 1
127 | shadowCascades: 2
128 | shadowDistance: 70
129 | shadowNearPlaneOffset: 3
130 | shadowCascade2Split: 0.33333334
131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
132 | shadowmaskMode: 1
133 | blendWeights: 4
134 | textureQuality: 0
135 | anisotropicTextures: 2
136 | antiAliasing: 2
137 | softParticles: 1
138 | softVegetation: 1
139 | realtimeReflectionProbes: 1
140 | billboardsFaceCameraPosition: 1
141 | vSyncCount: 1
142 | lodBias: 1.5
143 | maximumLODLevel: 0
144 | particleRaycastBudget: 1024
145 | asyncUploadTimeSlice: 2
146 | asyncUploadBufferSize: 4
147 | resolutionScalingFixedDPIFactor: 1
148 | excludedTargetPlatforms: []
149 | - serializedVersion: 2
150 | name: Ultra
151 | pixelLightCount: 4
152 | shadows: 2
153 | shadowResolution: 2
154 | shadowProjection: 1
155 | shadowCascades: 4
156 | shadowDistance: 150
157 | shadowNearPlaneOffset: 3
158 | shadowCascade2Split: 0.33333334
159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
160 | shadowmaskMode: 1
161 | blendWeights: 4
162 | textureQuality: 0
163 | anisotropicTextures: 2
164 | antiAliasing: 2
165 | softParticles: 1
166 | softVegetation: 1
167 | realtimeReflectionProbes: 1
168 | billboardsFaceCameraPosition: 1
169 | vSyncCount: 1
170 | lodBias: 2
171 | maximumLODLevel: 0
172 | particleRaycastBudget: 4096
173 | asyncUploadTimeSlice: 2
174 | asyncUploadBufferSize: 4
175 | resolutionScalingFixedDPIFactor: 1
176 | excludedTargetPlatforms: []
177 | m_PerPlatformDefaultQuality:
178 | Android: 2
179 | Nintendo 3DS: 5
180 | Nintendo Switch: 5
181 | PS4: 5
182 | PSM: 5
183 | PSP2: 2
184 | Standalone: 5
185 | Tizen: 2
186 | WebGL: 3
187 | WiiU: 5
188 | Windows Store Apps: 5
189 | XboxOne: 5
190 | iPhone: 2
191 | tvOS: 2
192 |
--------------------------------------------------------------------------------
/ProjectSettings/TagManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!78 &1
4 | TagManager:
5 | serializedVersion: 2
6 | tags: []
7 | layers:
8 | - Default
9 | - TransparentFX
10 | - Ignore Raycast
11 | -
12 | - Water
13 | - UI
14 | -
15 | -
16 | -
17 | -
18 | -
19 | -
20 | -
21 | -
22 | -
23 | -
24 | -
25 | -
26 | -
27 | -
28 | -
29 | -
30 | -
31 | -
32 | -
33 | -
34 | -
35 | -
36 | -
37 | -
38 | -
39 | -
40 | m_SortingLayers:
41 | - name: Default
42 | uniqueID: 0
43 | locked: 0
44 |
--------------------------------------------------------------------------------
/ProjectSettings/TimeManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!5 &1
4 | TimeManager:
5 | m_ObjectHideFlags: 0
6 | Fixed Timestep: 0.03
7 | Maximum Allowed Timestep: 0.03
8 | m_TimeScale: 1
9 | Maximum Particle Timestep: 0.03
10 |
--------------------------------------------------------------------------------
/ProjectSettings/UnityConnectSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!310 &1
4 | UnityConnectSettings:
5 | m_ObjectHideFlags: 0
6 | m_Enabled: 1
7 | m_TestMode: 0
8 | m_TestEventUrl:
9 | m_TestConfigUrl:
10 | m_TestInitMode: 0
11 | CrashReportingSettings:
12 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes
13 | m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate
14 | m_Enabled: 0
15 | m_CaptureEditorExceptions: 1
16 | UnityPurchasingSettings:
17 | m_Enabled: 0
18 | m_TestMode: 0
19 | UnityAnalyticsSettings:
20 | m_Enabled: 0
21 | m_InitializeOnStartup: 1
22 | m_TestMode: 0
23 | m_TestEventUrl:
24 | m_TestConfigUrl:
25 | UnityAdsSettings:
26 | m_Enabled: 0
27 | m_InitializeOnStartup: 1
28 | m_TestMode: 0
29 | m_IosGameId:
30 | m_AndroidGameId:
31 | m_GameIds: {}
32 | m_GameId:
33 | PerformanceReportingSettings:
34 | m_Enabled: 0
35 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # LidarDataViz
2 | Lidar sensor data visualization in Unity
3 |
--------------------------------------------------------------------------------
/obj/Debug/Assembly-CSharp.csproj.CopyComplete:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glegoo/unity-lidar-tuio/d179555772503ebb07168d0ebd98b4a24e3569cc/obj/Debug/Assembly-CSharp.csproj.CopyComplete
--------------------------------------------------------------------------------
/obj/Debug/Assembly-CSharp.csproj.FileListAbsolute.txt:
--------------------------------------------------------------------------------
1 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Assembly-CSharp.dll
2 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Assembly-CSharp.pdb
3 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Boo.Lang.dll
4 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\mscorlib.dll
5 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\System.Core.dll
6 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\System.dll
7 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\System.Runtime.Serialization.dll
8 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\System.Xml.dll
9 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\System.Xml.Linq.dll
10 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Unity.Locator.dll
11 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Unity.PackageManagerUI.Editor.dll
12 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Unity.TextMeshPro.dll
13 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Unity.TextMeshPro.Editor.dll
14 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEditor.dll
15 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEditor.StandardEvents.dll
16 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.AccessibilityModule.dll
17 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.AIModule.dll
18 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.Analytics.dll
19 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.AnimationModule.dll
20 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ARModule.dll
21 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.AssetBundleModule.dll
22 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.AudioModule.dll
23 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.BaselibModule.dll
24 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ClothModule.dll
25 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.CloudWebServicesModule.dll
26 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ClusterInputModule.dll
27 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ClusterRendererModule.dll
28 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.CoreModule.dll
29 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.CrashReportingModule.dll
30 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.DirectorModule.dll
31 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.dll
32 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.FacebookModule.dll
33 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.FileSystemHttpModule.dll
34 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.GameCenterModule.dll
35 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.GoogleAudioSpatializer.dll
36 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.GridModule.dll
37 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.HoloLens.dll
38 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.HotReloadModule.dll
39 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ImageConversionModule.dll
40 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.IMGUIModule.dll
41 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.InputModule.dll
42 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.JSONSerializeModule.dll
43 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.LocalizationModule.dll
44 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.Networking.dll
45 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ParticlesLegacyModule.dll
46 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ParticleSystemModule.dll
47 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.PerformanceReportingModule.dll
48 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.Physics2DModule.dll
49 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.PhysicsModule.dll
50 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ProfilerModule.dll
51 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ScreenCaptureModule.dll
52 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.SharedInternalsModule.dll
53 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.SpatialTracking.dll
54 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.SpriteMaskModule.dll
55 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.SpriteShapeModule.dll
56 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.StandardEvents.dll
57 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.StreamingModule.dll
58 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.StyleSheetsModule.dll
59 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.SubstanceModule.dll
60 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.TerrainModule.dll
61 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.TerrainPhysicsModule.dll
62 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.TextRenderingModule.dll
63 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.TilemapModule.dll
64 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.Timeline.dll
65 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.TimelineModule.dll
66 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.TLSModule.dll
67 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UI.dll
68 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UIElementsModule.dll
69 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UIModule.dll
70 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UmbraModule.dll
71 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UNETModule.dll
72 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityAnalyticsModule.dll
73 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityConnectModule.dll
74 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityWebRequestAssetBundleModule.dll
75 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityWebRequestAudioModule.dll
76 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityWebRequestModule.dll
77 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityWebRequestTextureModule.dll
78 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityWebRequestWWWModule.dll
79 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.VehiclesModule.dll
80 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.VideoModule.dll
81 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.VRModule.dll
82 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.WindModule.dll
83 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.XRModule.dll
84 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityScript.dll
85 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityScript.Lang.dll
86 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Vuforia.UnityExtensions.dll
87 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Unity.Cecil.dll
88 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Unity.SerializationLogic.dll
89 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Unity.DataContract.dll
90 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\ExCSS.Unity.dll
91 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Unity.Legacy.NRefactory.dll
92 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Boo.Lang.Parser.dll
93 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Boo.Lang.Compiler.dll
94 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Unity.IvyParser.dll
95 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Boo.Lang.PatternMatching.dll
96 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Boo.Lang.Useful.dll
97 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Unity.CecilTools.dll
98 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.xml
99 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEditor.xml
100 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.AIModule.xml
101 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ARModule.xml
102 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.AccessibilityModule.xml
103 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.AnimationModule.xml
104 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.AssetBundleModule.xml
105 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.AudioModule.xml
106 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.BaselibModule.xml
107 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ClothModule.xml
108 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.CloudWebServicesModule.xml
109 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ClusterInputModule.xml
110 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ClusterRendererModule.xml
111 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.CoreModule.xml
112 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.CrashReportingModule.xml
113 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.DirectorModule.xml
114 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.FacebookModule.xml
115 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.FileSystemHttpModule.xml
116 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.GameCenterModule.xml
117 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.GridModule.xml
118 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.HotReloadModule.xml
119 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.IMGUIModule.xml
120 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ImageConversionModule.xml
121 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.InputModule.xml
122 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.JSONSerializeModule.xml
123 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.LocalizationModule.xml
124 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ParticleSystemModule.xml
125 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ParticlesLegacyModule.xml
126 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.PerformanceReportingModule.xml
127 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.PhysicsModule.xml
128 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.Physics2DModule.xml
129 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ProfilerModule.xml
130 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.ScreenCaptureModule.xml
131 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.SharedInternalsModule.xml
132 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.SpriteMaskModule.xml
133 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.SpriteShapeModule.xml
134 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.StreamingModule.xml
135 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.StyleSheetsModule.xml
136 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.SubstanceModule.xml
137 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.TLSModule.xml
138 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.TerrainModule.xml
139 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.TerrainPhysicsModule.xml
140 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.TextRenderingModule.xml
141 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.TilemapModule.xml
142 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.TimelineModule.xml
143 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UIModule.xml
144 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UIElementsModule.xml
145 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UNETModule.xml
146 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UmbraModule.xml
147 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityAnalyticsModule.xml
148 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityConnectModule.xml
149 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityWebRequestModule.xml
150 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityWebRequestAssetBundleModule.xml
151 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityWebRequestAudioModule.xml
152 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityWebRequestTextureModule.xml
153 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UnityWebRequestWWWModule.xml
154 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.VRModule.xml
155 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.VehiclesModule.xml
156 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.VideoModule.xml
157 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.WindModule.xml
158 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.XRModule.xml
159 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.UI.xml
160 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.Timeline.xml
161 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.Networking.xml
162 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\Vuforia.UnityExtensions.xml
163 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.GoogleAudioSpatializer.xml
164 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.HoloLens.xml
165 | D:\yoki\lele\lidar\testYDLidar\Temp\bin\Debug\UnityEngine.SpatialTracking.xml
166 | D:\yoki\lele\lidar\testYDLidar\obj\Debug\Assembly-CSharp.csprojAssemblyReference.cache
167 | D:\yoki\lele\lidar\testYDLidar\obj\Debug\Assembly-CSharp.csproj.CoreCompileInputs.cache
168 | D:\yoki\lele\lidar\testYDLidar\obj\Debug\Assembly-CSharp.csproj.CopyComplete
169 | D:\yoki\lele\lidar\testYDLidar\obj\Debug\Assembly-CSharp.dll
170 | D:\yoki\lele\lidar\testYDLidar\obj\Debug\Assembly-CSharp.pdb
171 |
--------------------------------------------------------------------------------
/testYDLidar.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{C5E724AF-D98F-FE32-C9A5-31B662E0E587}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Any CPU = Debug|Any CPU
9 | Release|Any CPU = Release|Any CPU
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {C5E724AF-D98F-FE32-C9A5-31B662E0E587}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
13 | {C5E724AF-D98F-FE32-C9A5-31B662E0E587}.Debug|Any CPU.Build.0 = Debug|Any CPU
14 | {C5E724AF-D98F-FE32-C9A5-31B662E0E587}.Release|Any CPU.ActiveCfg = Release|Any CPU
15 | {C5E724AF-D98F-FE32-C9A5-31B662E0E587}.Release|Any CPU.Build.0 = Release|Any CPU
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------