Showing
613 changed files
with
3863 additions
and
0 deletions
.gitignore
0 → 100644
1 | + | ||
2 | +# Created by https://www.gitignore.io/api/unity | ||
3 | + | ||
4 | +### Unity ### | ||
5 | +/[Ll]ibrary/ | ||
6 | +/[Tt]emp/ | ||
7 | +/[Oo]bj/ | ||
8 | +/[Bb]uild/ | ||
9 | +/[Bb]uilds/ | ||
10 | +/Assets/AssetStoreTools* | ||
11 | + | ||
12 | + | ||
13 | +# Visual Studio 2015 cache directory | ||
14 | +/.vscode/ | ||
15 | + | ||
16 | +# Visual Studio 2015 cache directory | ||
17 | +/.vs/ | ||
18 | + | ||
19 | +# Autogenerated VS/MD/Consulo solution and project files | ||
20 | +ExportedObj/ | ||
21 | +.consulo/ | ||
22 | +*.csproj | ||
23 | +*.unityproj | ||
24 | +*.sln | ||
25 | +*.suo | ||
26 | +*.tmp | ||
27 | +*.user | ||
28 | +*.userprefs | ||
29 | +*.pidb | ||
30 | +*.booproj | ||
31 | +*.svd | ||
32 | +*.pdb | ||
33 | + | ||
34 | +# Unity3D generated meta files | ||
35 | +*.pidb.meta | ||
36 | + | ||
37 | +# Unity3D Generated File On Crash Reports | ||
38 | +sysinfo.txt | ||
39 | + | ||
40 | +# Builds | ||
41 | +*.apk | ||
42 | +*.unitypackage | ||
43 | + | ||
44 | + | ||
45 | +# End of https://www.gitignore.io/api/unity | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
Assets/Gravity Ball.meta
0 → 100755
1 | +%YAML 1.1 | ||
2 | +%TAG !u! tag:unity3d.com,2011: | ||
3 | +--- !u!134 &13400000 | ||
4 | +PhysicMaterial: | ||
5 | + m_ObjectHideFlags: 0 | ||
6 | + m_PrefabParentObject: {fileID: 0} | ||
7 | + m_PrefabInternal: {fileID: 0} | ||
8 | + m_Name: Ball Physics Material | ||
9 | + dynamicFriction: 1 | ||
10 | + staticFriction: 1 | ||
11 | + bounciness: 0 | ||
12 | + frictionCombine: 0 | ||
13 | + bounceCombine: 0 |
Assets/Gravity Ball/Gravity Ball.unity
0 → 100755
1 | +%YAML 1.1 | ||
2 | +%TAG !u! tag:unity3d.com,2011: | ||
3 | +--- !u!29 &1 | ||
4 | +OcclusionCullingSettings: | ||
5 | + m_ObjectHideFlags: 0 | ||
6 | + serializedVersion: 2 | ||
7 | + m_OcclusionBakeSettings: | ||
8 | + smallestOccluder: 5 | ||
9 | + smallestHole: 0.25 | ||
10 | + backfaceThreshold: 100 | ||
11 | + m_SceneGUID: 00000000000000000000000000000000 | ||
12 | + m_OcclusionCullingData: {fileID: 0} | ||
13 | +--- !u!104 &2 | ||
14 | +RenderSettings: | ||
15 | + m_ObjectHideFlags: 0 | ||
16 | + serializedVersion: 9 | ||
17 | + m_Fog: 0 | ||
18 | + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} | ||
19 | + m_FogMode: 3 | ||
20 | + m_FogDensity: 0.01 | ||
21 | + m_LinearFogStart: 0 | ||
22 | + m_LinearFogEnd: 300 | ||
23 | + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} | ||
24 | + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} | ||
25 | + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} | ||
26 | + m_AmbientIntensity: 1 | ||
27 | + m_AmbientMode: 0 | ||
28 | + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} | ||
29 | + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} | ||
30 | + m_HaloStrength: 0.5 | ||
31 | + m_FlareStrength: 1 | ||
32 | + m_FlareFadeSpeed: 3 | ||
33 | + m_HaloTexture: {fileID: 0} | ||
34 | + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} | ||
35 | + m_DefaultReflectionMode: 0 | ||
36 | + m_DefaultReflectionResolution: 128 | ||
37 | + m_ReflectionBounces: 1 | ||
38 | + m_ReflectionIntensity: 1 | ||
39 | + m_CustomReflection: {fileID: 0} | ||
40 | + m_Sun: {fileID: 0} | ||
41 | + m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} | ||
42 | + m_UseRadianceAmbientProbe: 0 | ||
43 | +--- !u!157 &3 | ||
44 | +LightmapSettings: | ||
45 | + m_ObjectHideFlags: 0 | ||
46 | + serializedVersion: 11 | ||
47 | + m_GIWorkflowMode: 0 | ||
48 | + m_GISettings: | ||
49 | + serializedVersion: 2 | ||
50 | + m_BounceScale: 1 | ||
51 | + m_IndirectOutputScale: 1 | ||
52 | + m_AlbedoBoost: 1 | ||
53 | + m_TemporalCoherenceThreshold: 1 | ||
54 | + m_EnvironmentLightingMode: 0 | ||
55 | + m_EnableBakedLightmaps: 1 | ||
56 | + m_EnableRealtimeLightmaps: 1 | ||
57 | + m_LightmapEditorSettings: | ||
58 | + serializedVersion: 10 | ||
59 | + m_Resolution: 2 | ||
60 | + m_BakeResolution: 40 | ||
61 | + m_AtlasSize: 1024 | ||
62 | + m_AO: 0 | ||
63 | + m_AOMaxDistance: 1 | ||
64 | + m_CompAOExponent: 1 | ||
65 | + m_CompAOExponentDirect: 0 | ||
66 | + m_Padding: 2 | ||
67 | + m_LightmapParameters: {fileID: 0} | ||
68 | + m_LightmapsBakeMode: 1 | ||
69 | + m_TextureCompression: 1 | ||
70 | + m_FinalGather: 0 | ||
71 | + m_FinalGatherFiltering: 1 | ||
72 | + m_FinalGatherRayCount: 256 | ||
73 | + m_ReflectionCompression: 2 | ||
74 | + m_MixedBakeMode: 1 | ||
75 | + m_BakeBackend: 0 | ||
76 | + m_PVRSampling: 1 | ||
77 | + m_PVRDirectSampleCount: 32 | ||
78 | + m_PVRSampleCount: 500 | ||
79 | + m_PVRBounces: 2 | ||
80 | + m_PVRFilterTypeDirect: 0 | ||
81 | + m_PVRFilterTypeIndirect: 0 | ||
82 | + m_PVRFilterTypeAO: 0 | ||
83 | + m_PVRFilteringMode: 0 | ||
84 | + m_PVRCulling: 1 | ||
85 | + m_PVRFilteringGaussRadiusDirect: 1 | ||
86 | + m_PVRFilteringGaussRadiusIndirect: 5 | ||
87 | + m_PVRFilteringGaussRadiusAO: 2 | ||
88 | + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 | ||
89 | + m_PVRFilteringAtrousPositionSigmaIndirect: 2 | ||
90 | + m_PVRFilteringAtrousPositionSigmaAO: 1 | ||
91 | + m_ShowResolutionOverlay: 1 | ||
92 | + m_LightingDataAsset: {fileID: 0} | ||
93 | + m_UseShadowmask: 0 | ||
94 | +--- !u!196 &4 | ||
95 | +NavMeshSettings: | ||
96 | + serializedVersion: 2 | ||
97 | + m_ObjectHideFlags: 0 | ||
98 | + m_BuildSettings: | ||
99 | + serializedVersion: 2 | ||
100 | + agentTypeID: 0 | ||
101 | + agentRadius: 0.5 | ||
102 | + agentHeight: 2 | ||
103 | + agentSlope: 45 | ||
104 | + agentClimb: 0.4 | ||
105 | + ledgeDropHeight: 0 | ||
106 | + maxJumpAcrossDistance: 0 | ||
107 | + minRegionArea: 2 | ||
108 | + manualCellSize: 0 | ||
109 | + cellSize: 0.16666667 | ||
110 | + manualTileSize: 0 | ||
111 | + tileSize: 256 | ||
112 | + accuratePlacement: 0 | ||
113 | + debug: | ||
114 | + m_Flags: 0 | ||
115 | + m_NavMeshData: {fileID: 0} | ||
116 | +--- !u!1001 &155261415 | ||
117 | +Prefab: | ||
118 | + m_ObjectHideFlags: 0 | ||
119 | + serializedVersion: 2 | ||
120 | + m_Modification: | ||
121 | + m_TransformParent: {fileID: 0} | ||
122 | + m_Modifications: | ||
123 | + - target: {fileID: 4297793100120782, guid: 0e71b24f3fb6f684596ef143448959c0, type: 2} | ||
124 | + propertyPath: m_LocalPosition.x | ||
125 | + value: 0 | ||
126 | + objectReference: {fileID: 0} | ||
127 | + - target: {fileID: 4297793100120782, guid: 0e71b24f3fb6f684596ef143448959c0, type: 2} | ||
128 | + propertyPath: m_LocalPosition.y | ||
129 | + value: 0 | ||
130 | + objectReference: {fileID: 0} | ||
131 | + - target: {fileID: 4297793100120782, guid: 0e71b24f3fb6f684596ef143448959c0, type: 2} | ||
132 | + propertyPath: m_LocalPosition.z | ||
133 | + value: 0 | ||
134 | + objectReference: {fileID: 0} | ||
135 | + - target: {fileID: 4297793100120782, guid: 0e71b24f3fb6f684596ef143448959c0, type: 2} | ||
136 | + propertyPath: m_LocalRotation.x | ||
137 | + value: -0 | ||
138 | + objectReference: {fileID: 0} | ||
139 | + - target: {fileID: 4297793100120782, guid: 0e71b24f3fb6f684596ef143448959c0, type: 2} | ||
140 | + propertyPath: m_LocalRotation.y | ||
141 | + value: -0 | ||
142 | + objectReference: {fileID: 0} | ||
143 | + - target: {fileID: 4297793100120782, guid: 0e71b24f3fb6f684596ef143448959c0, type: 2} | ||
144 | + propertyPath: m_LocalRotation.z | ||
145 | + value: -0 | ||
146 | + objectReference: {fileID: 0} | ||
147 | + - target: {fileID: 4297793100120782, guid: 0e71b24f3fb6f684596ef143448959c0, type: 2} | ||
148 | + propertyPath: m_LocalRotation.w | ||
149 | + value: 1 | ||
150 | + objectReference: {fileID: 0} | ||
151 | + - target: {fileID: 4297793100120782, guid: 0e71b24f3fb6f684596ef143448959c0, type: 2} | ||
152 | + propertyPath: m_RootOrder | ||
153 | + value: 0 | ||
154 | + objectReference: {fileID: 0} | ||
155 | + - target: {fileID: 54889650561961254, guid: 0e71b24f3fb6f684596ef143448959c0, | ||
156 | + type: 2} | ||
157 | + propertyPath: m_AngularDrag | ||
158 | + value: 1000 | ||
159 | + objectReference: {fileID: 0} | ||
160 | + m_RemovedComponents: [] | ||
161 | + m_ParentPrefab: {fileID: 100100000, guid: 0e71b24f3fb6f684596ef143448959c0, type: 2} | ||
162 | + m_IsPrefabParent: 0 | ||
163 | +--- !u!1 &785643733 | ||
164 | +GameObject: | ||
165 | + m_ObjectHideFlags: 0 | ||
166 | + m_PrefabParentObject: {fileID: 0} | ||
167 | + m_PrefabInternal: {fileID: 0} | ||
168 | + serializedVersion: 5 | ||
169 | + m_Component: | ||
170 | + - component: {fileID: 785643737} | ||
171 | + - component: {fileID: 785643736} | ||
172 | + - component: {fileID: 785643735} | ||
173 | + - component: {fileID: 785643734} | ||
174 | + m_Layer: 0 | ||
175 | + m_Name: Camera | ||
176 | + m_TagString: Untagged | ||
177 | + m_Icon: {fileID: 0} | ||
178 | + m_NavMeshLayer: 0 | ||
179 | + m_StaticEditorFlags: 0 | ||
180 | + m_IsActive: 1 | ||
181 | +--- !u!81 &785643734 | ||
182 | +AudioListener: | ||
183 | + m_ObjectHideFlags: 0 | ||
184 | + m_PrefabParentObject: {fileID: 0} | ||
185 | + m_PrefabInternal: {fileID: 0} | ||
186 | + m_GameObject: {fileID: 785643733} | ||
187 | + m_Enabled: 1 | ||
188 | +--- !u!124 &785643735 | ||
189 | +Behaviour: | ||
190 | + m_ObjectHideFlags: 0 | ||
191 | + m_PrefabParentObject: {fileID: 0} | ||
192 | + m_PrefabInternal: {fileID: 0} | ||
193 | + m_GameObject: {fileID: 785643733} | ||
194 | + m_Enabled: 1 | ||
195 | +--- !u!20 &785643736 | ||
196 | +Camera: | ||
197 | + m_ObjectHideFlags: 0 | ||
198 | + m_PrefabParentObject: {fileID: 0} | ||
199 | + m_PrefabInternal: {fileID: 0} | ||
200 | + m_GameObject: {fileID: 785643733} | ||
201 | + m_Enabled: 1 | ||
202 | + serializedVersion: 2 | ||
203 | + m_ClearFlags: 1 | ||
204 | + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} | ||
205 | + m_NormalizedViewPortRect: | ||
206 | + serializedVersion: 2 | ||
207 | + x: 0 | ||
208 | + y: 0 | ||
209 | + width: 1 | ||
210 | + height: 1 | ||
211 | + near clip plane: 0.3 | ||
212 | + far clip plane: 1000 | ||
213 | + field of view: 60 | ||
214 | + orthographic: 0 | ||
215 | + orthographic size: 5 | ||
216 | + m_Depth: 0 | ||
217 | + m_CullingMask: | ||
218 | + serializedVersion: 2 | ||
219 | + m_Bits: 4294934527 | ||
220 | + m_RenderingPath: -1 | ||
221 | + m_TargetTexture: {fileID: 0} | ||
222 | + m_TargetDisplay: 0 | ||
223 | + m_TargetEye: 3 | ||
224 | + m_HDR: 1 | ||
225 | + m_AllowMSAA: 1 | ||
226 | + m_AllowDynamicResolution: 0 | ||
227 | + m_ForceIntoRT: 0 | ||
228 | + m_OcclusionCulling: 1 | ||
229 | + m_StereoConvergence: 10 | ||
230 | + m_StereoSeparation: 0.022 | ||
231 | +--- !u!4 &785643737 | ||
232 | +Transform: | ||
233 | + m_ObjectHideFlags: 0 | ||
234 | + m_PrefabParentObject: {fileID: 0} | ||
235 | + m_PrefabInternal: {fileID: 0} | ||
236 | + m_GameObject: {fileID: 785643733} | ||
237 | + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | ||
238 | + m_LocalPosition: {x: 0, y: 0, z: -4.68} | ||
239 | + m_LocalScale: {x: 1, y: 1, z: 1} | ||
240 | + m_Children: | ||
241 | + - {fileID: 1113254002} | ||
242 | + m_Father: {fileID: 0} | ||
243 | + m_RootOrder: 1 | ||
244 | + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||
245 | +--- !u!1 &1113253996 | ||
246 | +GameObject: | ||
247 | + m_ObjectHideFlags: 0 | ||
248 | + m_PrefabParentObject: {fileID: 0} | ||
249 | + m_PrefabInternal: {fileID: 0} | ||
250 | + serializedVersion: 5 | ||
251 | + m_Component: | ||
252 | + - component: {fileID: 1113254002} | ||
253 | + - component: {fileID: 1113254001} | ||
254 | + - component: {fileID: 1113254000} | ||
255 | + - component: {fileID: 1113253999} | ||
256 | + - component: {fileID: 1113253998} | ||
257 | + - component: {fileID: 1113253997} | ||
258 | + m_Layer: 0 | ||
259 | + m_Name: Cube | ||
260 | + m_TagString: Untagged | ||
261 | + m_Icon: {fileID: 0} | ||
262 | + m_NavMeshLayer: 0 | ||
263 | + m_StaticEditorFlags: 0 | ||
264 | + m_IsActive: 1 | ||
265 | +--- !u!54 &1113253997 | ||
266 | +Rigidbody: | ||
267 | + m_ObjectHideFlags: 0 | ||
268 | + m_PrefabParentObject: {fileID: 0} | ||
269 | + m_PrefabInternal: {fileID: 0} | ||
270 | + m_GameObject: {fileID: 1113253996} | ||
271 | + serializedVersion: 2 | ||
272 | + m_Mass: 1 | ||
273 | + m_Drag: 0 | ||
274 | + m_AngularDrag: 0.05 | ||
275 | + m_UseGravity: 0 | ||
276 | + m_IsKinematic: 1 | ||
277 | + m_Interpolate: 0 | ||
278 | + m_Constraints: 0 | ||
279 | + m_CollisionDetection: 0 | ||
280 | +--- !u!114 &1113253998 | ||
281 | +MonoBehaviour: | ||
282 | + m_ObjectHideFlags: 0 | ||
283 | + m_PrefabParentObject: {fileID: 0} | ||
284 | + m_PrefabInternal: {fileID: 0} | ||
285 | + m_GameObject: {fileID: 1113253996} | ||
286 | + m_Enabled: 1 | ||
287 | + m_EditorHideFlags: 0 | ||
288 | + m_Script: {fileID: 11500000, guid: 061e358065833c542812bcff8271d265, type: 3} | ||
289 | + m_Name: | ||
290 | + m_EditorClassIdentifier: | ||
291 | + m_MoveSpeed: 2 | ||
292 | + m_ScrollSpeed: 100 | ||
293 | + m_YawSpeed: 100 | ||
294 | +--- !u!65 &1113253999 | ||
295 | +BoxCollider: | ||
296 | + m_ObjectHideFlags: 0 | ||
297 | + m_PrefabParentObject: {fileID: 0} | ||
298 | + m_PrefabInternal: {fileID: 0} | ||
299 | + m_GameObject: {fileID: 1113253996} | ||
300 | + m_Material: {fileID: 0} | ||
301 | + m_IsTrigger: 0 | ||
302 | + m_Enabled: 1 | ||
303 | + serializedVersion: 2 | ||
304 | + m_Size: {x: 1, y: 1, z: 1} | ||
305 | + m_Center: {x: 0, y: 0, z: 0} | ||
306 | +--- !u!23 &1113254000 | ||
307 | +MeshRenderer: | ||
308 | + m_ObjectHideFlags: 0 | ||
309 | + m_PrefabParentObject: {fileID: 0} | ||
310 | + m_PrefabInternal: {fileID: 0} | ||
311 | + m_GameObject: {fileID: 1113253996} | ||
312 | + m_Enabled: 1 | ||
313 | + m_CastShadows: 1 | ||
314 | + m_ReceiveShadows: 1 | ||
315 | + m_DynamicOccludee: 1 | ||
316 | + m_MotionVectors: 1 | ||
317 | + m_LightProbeUsage: 1 | ||
318 | + m_ReflectionProbeUsage: 1 | ||
319 | + m_RenderingLayerMask: 4294967295 | ||
320 | + m_Materials: | ||
321 | + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} | ||
322 | + m_StaticBatchInfo: | ||
323 | + firstSubMesh: 0 | ||
324 | + subMeshCount: 0 | ||
325 | + m_StaticBatchRoot: {fileID: 0} | ||
326 | + m_ProbeAnchor: {fileID: 0} | ||
327 | + m_LightProbeVolumeOverride: {fileID: 0} | ||
328 | + m_ScaleInLightmap: 1 | ||
329 | + m_PreserveUVs: 0 | ||
330 | + m_IgnoreNormalsForChartDetection: 0 | ||
331 | + m_ImportantGI: 0 | ||
332 | + m_StitchLightmapSeams: 0 | ||
333 | + m_SelectedEditorRenderState: 3 | ||
334 | + m_MinimumChartSize: 4 | ||
335 | + m_AutoUVMaxDistance: 0.5 | ||
336 | + m_AutoUVMaxAngle: 89 | ||
337 | + m_LightmapParameters: {fileID: 0} | ||
338 | + m_SortingLayerID: 0 | ||
339 | + m_SortingLayer: 0 | ||
340 | + m_SortingOrder: 0 | ||
341 | +--- !u!33 &1113254001 | ||
342 | +MeshFilter: | ||
343 | + m_ObjectHideFlags: 0 | ||
344 | + m_PrefabParentObject: {fileID: 0} | ||
345 | + m_PrefabInternal: {fileID: 0} | ||
346 | + m_GameObject: {fileID: 1113253996} | ||
347 | + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} | ||
348 | +--- !u!4 &1113254002 | ||
349 | +Transform: | ||
350 | + m_ObjectHideFlags: 0 | ||
351 | + m_PrefabParentObject: {fileID: 0} | ||
352 | + m_PrefabInternal: {fileID: 0} | ||
353 | + m_GameObject: {fileID: 1113253996} | ||
354 | + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} | ||
355 | + m_LocalPosition: {x: -0.94, y: 0, z: 2.39} | ||
356 | + m_LocalScale: {x: 1, y: 1, z: 1} | ||
357 | + m_Children: [] | ||
358 | + m_Father: {fileID: 785643737} | ||
359 | + m_RootOrder: 0 | ||
360 | + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
Assets/Gravity Ball/Gravity Ball.unity.meta
0 → 100755
Assets/Gravity Ball/Materials.meta
0 → 100755
Assets/Gravity Ball/Materials/ArrayMat.mat
0 → 100755
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_PrefabParentObject: {fileID: 0} | ||
8 | + m_PrefabInternal: {fileID: 0} | ||
9 | + m_Name: ArrayMat | ||
10 | + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} | ||
11 | + m_ShaderKeywords: _EMISSION | ||
12 | + m_LightmapFlags: 1 | ||
13 | + m_CustomRenderQueue: -1 | ||
14 | + stringTagMap: {} | ||
15 | + m_SavedProperties: | ||
16 | + serializedVersion: 2 | ||
17 | + m_TexEnvs: | ||
18 | + - first: | ||
19 | + name: _BumpMap | ||
20 | + second: | ||
21 | + m_Texture: {fileID: 0} | ||
22 | + m_Scale: {x: 1, y: 1} | ||
23 | + m_Offset: {x: 0, y: 0} | ||
24 | + - first: | ||
25 | + name: _DetailAlbedoMap | ||
26 | + second: | ||
27 | + m_Texture: {fileID: 0} | ||
28 | + m_Scale: {x: 1, y: 1} | ||
29 | + m_Offset: {x: 0, y: 0} | ||
30 | + - first: | ||
31 | + name: _DetailMask | ||
32 | + second: | ||
33 | + m_Texture: {fileID: 0} | ||
34 | + m_Scale: {x: 1, y: 1} | ||
35 | + m_Offset: {x: 0, y: 0} | ||
36 | + - first: | ||
37 | + name: _DetailNormalMap | ||
38 | + second: | ||
39 | + m_Texture: {fileID: 0} | ||
40 | + m_Scale: {x: 1, y: 1} | ||
41 | + m_Offset: {x: 0, y: 0} | ||
42 | + - first: | ||
43 | + name: _EmissionMap | ||
44 | + second: | ||
45 | + m_Texture: {fileID: 0} | ||
46 | + m_Scale: {x: 1, y: 1} | ||
47 | + m_Offset: {x: 0, y: 0} | ||
48 | + - first: | ||
49 | + name: _MainTex | ||
50 | + second: | ||
51 | + m_Texture: {fileID: 0} | ||
52 | + m_Scale: {x: 1, y: 1} | ||
53 | + m_Offset: {x: 0, y: 0} | ||
54 | + - first: | ||
55 | + name: _MetallicGlossMap | ||
56 | + second: | ||
57 | + m_Texture: {fileID: 0} | ||
58 | + m_Scale: {x: 1, y: 1} | ||
59 | + m_Offset: {x: 0, y: 0} | ||
60 | + - first: | ||
61 | + name: _OcclusionMap | ||
62 | + second: | ||
63 | + m_Texture: {fileID: 0} | ||
64 | + m_Scale: {x: 1, y: 1} | ||
65 | + m_Offset: {x: 0, y: 0} | ||
66 | + - first: | ||
67 | + name: _ParallaxMap | ||
68 | + second: | ||
69 | + m_Texture: {fileID: 0} | ||
70 | + m_Scale: {x: 1, y: 1} | ||
71 | + m_Offset: {x: 0, y: 0} | ||
72 | + m_Floats: | ||
73 | + - first: | ||
74 | + name: _BumpScale | ||
75 | + second: 1 | ||
76 | + - first: | ||
77 | + name: _Cutoff | ||
78 | + second: 0.5 | ||
79 | + - first: | ||
80 | + name: _DetailNormalMapScale | ||
81 | + second: 1 | ||
82 | + - first: | ||
83 | + name: _DstBlend | ||
84 | + second: 0 | ||
85 | + - first: | ||
86 | + name: _GlossMapScale | ||
87 | + second: 1 | ||
88 | + - first: | ||
89 | + name: _Glossiness | ||
90 | + second: 0.5 | ||
91 | + - first: | ||
92 | + name: _GlossyReflections | ||
93 | + second: 1 | ||
94 | + - first: | ||
95 | + name: _Metallic | ||
96 | + second: 0 | ||
97 | + - first: | ||
98 | + name: _Mode | ||
99 | + second: 0 | ||
100 | + - first: | ||
101 | + name: _OcclusionStrength | ||
102 | + second: 1 | ||
103 | + - first: | ||
104 | + name: _Parallax | ||
105 | + second: 0.02 | ||
106 | + - first: | ||
107 | + name: _SmoothnessTextureChannel | ||
108 | + second: 0 | ||
109 | + - first: | ||
110 | + name: _SpecularHighlights | ||
111 | + second: 1 | ||
112 | + - first: | ||
113 | + name: _SrcBlend | ||
114 | + second: 1 | ||
115 | + - first: | ||
116 | + name: _UVSec | ||
117 | + second: 0 | ||
118 | + - first: | ||
119 | + name: _ZWrite | ||
120 | + second: 1 | ||
121 | + m_Colors: | ||
122 | + - first: | ||
123 | + name: _Color | ||
124 | + second: {r: 0, g: 0, b: 0, a: 1} | ||
125 | + - first: | ||
126 | + name: _EmissionColor | ||
127 | + second: {r: 0, g: 0, b: 0, a: 1} |
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_PrefabParentObject: {fileID: 0} | ||
8 | + m_PrefabInternal: {fileID: 0} | ||
9 | + m_Name: GravityBall Material | ||
10 | + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} | ||
11 | + m_ShaderKeywords: _EMISSION | ||
12 | + m_LightmapFlags: 1 | ||
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, b: 0, a: 1} | ||
76 | + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
Assets/Gravity Ball/Materials/X.mat
0 → 100755
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_PrefabParentObject: {fileID: 0} | ||
8 | + m_PrefabInternal: {fileID: 0} | ||
9 | + m_Name: X | ||
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 | ||
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: 1, g: 0.13774185, b: 0, a: 1} | ||
76 | + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
Assets/Gravity Ball/Materials/X.mat.meta
0 → 100755
Assets/Gravity Ball/Materials/Y.mat
0 → 100755
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_PrefabParentObject: {fileID: 0} | ||
8 | + m_PrefabInternal: {fileID: 0} | ||
9 | + m_Name: Y | ||
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 | ||
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: 1, b: 0, a: 1} | ||
76 | + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
Assets/Gravity Ball/Materials/Y.mat.meta
0 → 100755
Assets/Gravity Ball/Materials/Z.mat
0 → 100755
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_PrefabParentObject: {fileID: 0} | ||
8 | + m_PrefabInternal: {fileID: 0} | ||
9 | + m_Name: Z | ||
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 | ||
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.20210934, b: 1, a: 1} | ||
76 | + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
Assets/Gravity Ball/Materials/Z.mat.meta
0 → 100755
Assets/Gravity Ball/Prefabs.meta
0 → 100755
Assets/Gravity Ball/Prefabs/EvalKit.prefab
0 → 100755
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
Assets/Gravity Ball/Scripts.meta
0 → 100755
1 | +using UnityEngine; | ||
2 | +using Ultrahaptics; | ||
3 | + | ||
4 | +/// <summary> | ||
5 | +/// Helper class to handle conversion between world space and Ultrahaptics device space. | ||
6 | +/// </summary> | ||
7 | +public class CoordinateSpaceConverter : MonoBehaviour | ||
8 | +{ | ||
9 | + // Expose this field to the Unity inspector so it can be set to | ||
10 | + // the transform that corresponds to the origin of the array (top-centre) | ||
11 | + [SerializeField] | ||
12 | + private Transform _arrayOrigin; | ||
13 | + | ||
14 | + /// <summary> | ||
15 | + /// Converts the given position vector from world space to device space. | ||
16 | + /// </summary> | ||
17 | + /// <param name="vector">The position vector in world space.</param> | ||
18 | + /// <returns>The equivalent position vector in device space.</returns> | ||
19 | + public Ultrahaptics.Vector3 WorldToDevicePosition(UnityEngine.Vector3 vector) | ||
20 | + { | ||
21 | + // Transform the world position to the local space of the array | ||
22 | + var localPosition = _arrayOrigin.InverseTransformPoint(vector); | ||
23 | + // Construct an Ultrahaptics Vector3 | ||
24 | + // Note that the y and z coordinates are swapped as Ultrahaptics uses a coordinate system where the positive Y-axis is up | ||
25 | + var ultrahapticsPosition = new Ultrahaptics.Vector3(localPosition.x, localPosition.z, localPosition.y); | ||
26 | + return ultrahapticsPosition; | ||
27 | + } | ||
28 | + | ||
29 | + /// <summary> | ||
30 | + /// Converts the given direction vector from world space to device space. | ||
31 | + /// </summary> | ||
32 | + /// <param name="vector">The direction vector in world space.</param> | ||
33 | + /// <returns>The equivalent direction vector in device space.</returns> | ||
34 | + public Ultrahaptics.Vector3 WorldToDeviceDirection(UnityEngine.Vector3 vector) | ||
35 | + { | ||
36 | + // Transform the world direction to the local space of the array | ||
37 | + var localDirection = _arrayOrigin.InverseTransformDirection(vector); | ||
38 | + // Construct an Ultrahaptics Vector3 | ||
39 | + // Note that the y and z coordinates are swapped as Ultrahaptics uses a coordinate system where the positive Y-axis is up | ||
40 | + var ultrahapticsDirection = new Ultrahaptics.Vector3(localDirection.x, localDirection.z, localDirection.y); | ||
41 | + return ultrahapticsDirection; | ||
42 | + } | ||
43 | +} |
Assets/Gravity Ball/Scripts/GravityBall.cs
0 → 100755
1 | +using System.Collections; | ||
2 | +using System.Collections.Generic; | ||
3 | +using UnityEngine; | ||
4 | + | ||
5 | +public class GravityBall : MonoBehaviour | ||
6 | +{ | ||
7 | + public static GravityBall Instance | ||
8 | + { | ||
9 | + get | ||
10 | + { | ||
11 | + if (!m_Instance) | ||
12 | + { | ||
13 | + m_Instance = FindObjectOfType<GravityBall>(); | ||
14 | + | ||
15 | + if (!m_Instance) | ||
16 | + { | ||
17 | + Debug.LogError("You didn't Crate GravityBall!"); | ||
18 | + } | ||
19 | + } | ||
20 | + return m_Instance; | ||
21 | + } | ||
22 | + } | ||
23 | + | ||
24 | + private static GravityBall m_Instance; | ||
25 | + | ||
26 | + public LayerMask m_ContactTarget; | ||
27 | + //private SphereCollider m_Collider; | ||
28 | + private const float m_ColliderThickness = 0.001f; | ||
29 | + | ||
30 | + public bool m_IsTouched { get; private set; } | ||
31 | + | ||
32 | + private Vector3 m_StartPos; | ||
33 | + | ||
34 | + private Material m_RenderMaterial; | ||
35 | + | ||
36 | + private Rigidbody m_Rigidbody; | ||
37 | + | ||
38 | + public Color m_IdleColor = Color.black; | ||
39 | + public Color m_PressedColor = Color.red; | ||
40 | + | ||
41 | + public string m_XDistanceInputName = "Horizontal"; | ||
42 | + public string m_ZDistanceINputName = "Vertical"; | ||
43 | + | ||
44 | + public string m_XSwipeInputName = "Scroll"; | ||
45 | + public string m_YSwipeInputName = "Spin"; | ||
46 | + public string m_ZSwipeInputName = "Stroke"; | ||
47 | + | ||
48 | + public float m_ControlRange = 0.08f; | ||
49 | + | ||
50 | + [Range(0.01f, 0.2f)] | ||
51 | + public float m_RotationDeadzone = 0.01f; | ||
52 | + | ||
53 | + [Range(0.1f, 5f)] | ||
54 | + public float m_RotationSenstive = 1f; | ||
55 | + | ||
56 | + | ||
57 | + private void Awake() | ||
58 | + { | ||
59 | + m_Rigidbody = GetComponent<Rigidbody>(); | ||
60 | + } | ||
61 | + | ||
62 | + private void Start() | ||
63 | + { | ||
64 | + m_StartPos = m_Rigidbody.position; | ||
65 | + | ||
66 | + m_RenderMaterial = GetComponentInChildren<Renderer>().material; | ||
67 | + m_RenderMaterial.color = m_IdleColor; | ||
68 | + } | ||
69 | + | ||
70 | + private void Update() | ||
71 | + { | ||
72 | + if (GetButton()) | ||
73 | + { | ||
74 | + m_RenderMaterial.color = m_PressedColor; | ||
75 | + } | ||
76 | + else | ||
77 | + { | ||
78 | + m_RenderMaterial.color = m_IdleColor; | ||
79 | + } | ||
80 | + } | ||
81 | + | ||
82 | + private void FixedUpdate() | ||
83 | + { | ||
84 | + // 범위를 벗어난 경우 범위 내부로 강제로 되돌리기 | ||
85 | + if (m_IsTouched) | ||
86 | + { | ||
87 | + if (Vector3.Distance(m_StartPos, m_Rigidbody.position) > m_ControlRange) | ||
88 | + { | ||
89 | + m_Rigidbody.MovePosition(m_StartPos + (m_Rigidbody.position - m_StartPos) * m_ControlRange); | ||
90 | + } | ||
91 | + } | ||
92 | + } | ||
93 | + | ||
94 | + public bool GetButton() | ||
95 | + { | ||
96 | + if (!m_IsTouched) | ||
97 | + { | ||
98 | + return false; | ||
99 | + } | ||
100 | + | ||
101 | + if ((m_StartPos.y - m_Rigidbody.position.y) >= m_ControlRange * 0.5f) | ||
102 | + { | ||
103 | + return true; | ||
104 | + } | ||
105 | + | ||
106 | + return false; | ||
107 | + } | ||
108 | + | ||
109 | + | ||
110 | + public float GetInputAxis(string inputName) | ||
111 | + { | ||
112 | + if (!m_IsTouched) | ||
113 | + { | ||
114 | + return 0; | ||
115 | + } | ||
116 | + | ||
117 | + // Swipe를 하고 있다면, 값을 억누르기 | ||
118 | + float inputFactorBySwipe = 1.0f; | ||
119 | + | ||
120 | + if (m_Rigidbody.angularVelocity.sqrMagnitude >= 1.0f) | ||
121 | + { | ||
122 | + inputFactorBySwipe = 1.0f / m_Rigidbody.angularVelocity.sqrMagnitude; | ||
123 | + } | ||
124 | + | ||
125 | + | ||
126 | + Vector3 deltaVec = m_Rigidbody.position - m_StartPos; | ||
127 | + | ||
128 | + Vector3 relativeVec = deltaVec / m_ControlRange; | ||
129 | + | ||
130 | + if (inputName == m_XDistanceInputName) | ||
131 | + { | ||
132 | + return Mathf.Clamp(relativeVec.x, -1.0f, 1.0f) * inputFactorBySwipe; | ||
133 | + } | ||
134 | + else if (inputName == m_ZDistanceINputName) | ||
135 | + { | ||
136 | + return Mathf.Clamp(relativeVec.z, -1.0f, 1.0f) * inputFactorBySwipe; | ||
137 | + } | ||
138 | + | ||
139 | + Debug.LogError("Can't Find Input Name: " + inputName); | ||
140 | + | ||
141 | + return 0; | ||
142 | + } | ||
143 | + | ||
144 | + public float GetInputSwipe(string inputName) | ||
145 | + { | ||
146 | + if (!m_IsTouched) | ||
147 | + { | ||
148 | + return 0; | ||
149 | + } | ||
150 | + | ||
151 | + Vector3 angularVelocity = m_Rigidbody.angularVelocity; | ||
152 | + angularVelocity *= m_RotationSenstive; | ||
153 | + | ||
154 | + | ||
155 | + float absX = Mathf.Abs(angularVelocity.x); | ||
156 | + float absY = Mathf.Abs(angularVelocity.y); | ||
157 | + float absZ = Mathf.Abs(angularVelocity.z); | ||
158 | + | ||
159 | + angularVelocity.x = absX <= m_RotationDeadzone ? 0 : angularVelocity.x; | ||
160 | + angularVelocity.y = absY <= m_RotationDeadzone ? 0 : angularVelocity.y; | ||
161 | + angularVelocity.z = absZ <= m_RotationDeadzone ? 0 : angularVelocity.z; | ||
162 | + | ||
163 | + | ||
164 | + if (absX >= absY && absX >= absZ) | ||
165 | + { | ||
166 | + angularVelocity.y = 0; | ||
167 | + angularVelocity.z = 0; | ||
168 | + | ||
169 | + } | ||
170 | + else if(absY >= absX && absY >= absZ) | ||
171 | + { | ||
172 | + angularVelocity.x = 0; | ||
173 | + angularVelocity.z = 0; | ||
174 | + } | ||
175 | + else if (absZ >= absX && absZ >= absY) | ||
176 | + { | ||
177 | + angularVelocity.x = 0; | ||
178 | + angularVelocity.y = 0; | ||
179 | + } | ||
180 | + | ||
181 | + float factorByButton = GetButton() ? 0.1f : 1.0f; | ||
182 | + | ||
183 | + if (inputName == m_XSwipeInputName) | ||
184 | + { | ||
185 | + return Mathf.Clamp(angularVelocity.x, -1f, 1f) * factorByButton; | ||
186 | + } | ||
187 | + else if (inputName == m_YSwipeInputName) | ||
188 | + { | ||
189 | + return Mathf.Clamp(angularVelocity.y, -1f, 1f) * factorByButton; | ||
190 | + } | ||
191 | + else if (inputName == m_ZSwipeInputName) | ||
192 | + { | ||
193 | + return Mathf.Clamp(angularVelocity.z, -1f, 1f) * factorByButton; | ||
194 | + } | ||
195 | + | ||
196 | + | ||
197 | + Debug.LogError("Can't Find Input Name: " + inputName); | ||
198 | + | ||
199 | + return 0; | ||
200 | + } | ||
201 | + | ||
202 | + | ||
203 | + private void OnCollisionExit(Collision collision) | ||
204 | + { | ||
205 | + m_IsTouched = false; | ||
206 | + m_Rigidbody.MoveRotation(Quaternion.identity); | ||
207 | + | ||
208 | + } | ||
209 | + | ||
210 | + private void OnCollisionStay(Collision collision) | ||
211 | + { | ||
212 | + m_IsTouched = true; | ||
213 | + } | ||
214 | + | ||
215 | + | ||
216 | + void OnDrawGizmos() | ||
217 | + { | ||
218 | + | ||
219 | + // Draw a wire sphere at each of the points | ||
220 | + Gizmos.color = Color.blue; | ||
221 | + | ||
222 | + if (m_Rigidbody == null) | ||
223 | + { | ||
224 | + Gizmos.DrawWireSphere(transform.position, m_ControlRange); | ||
225 | + } | ||
226 | + else | ||
227 | + { | ||
228 | + Gizmos.DrawWireSphere(m_StartPos, m_ControlRange); | ||
229 | + | ||
230 | + } | ||
231 | + } | ||
232 | +} |
1 | +fileFormatVersion: 2 | ||
2 | +guid: 8501577b7fbf32b4392132f3e98d2937 | ||
3 | +timeCreated: 1523555450 | ||
4 | +licenseType: Pro | ||
5 | +MonoImporter: | ||
6 | + externalObjects: {} | ||
7 | + serializedVersion: 2 | ||
8 | + defaultReferences: [] | ||
9 | + executionOrder: 0 | ||
10 | + icon: {instanceID: 0} | ||
11 | + userData: | ||
12 | + assetBundleName: | ||
13 | + assetBundleVariant: |
1 | +using UnityEngine; | ||
2 | +using System.Collections.Generic; | ||
3 | +using System.Linq; | ||
4 | +//using Ultrahaptics; | ||
5 | + | ||
6 | + | ||
7 | +/// <summary> | ||
8 | +/// Keeps track of collision data to be used for haptics. | ||
9 | +/// This class should be attached to GameObjects that will receive haptics when touched, | ||
10 | +/// these GameObjects must also have a collider and a Rigidbody. | ||
11 | +/// </summary> | ||
12 | +[RequireComponent(typeof(Collider), typeof(Rigidbody))] | ||
13 | +public class HapticReceiver : MonoBehaviour | ||
14 | +{ | ||
15 | + // Dictionary of colliders that are currently touching the haptic receiver, | ||
16 | + // and the corresponding point of contact | ||
17 | + | ||
18 | + private Rigidbody hapticRigidbody; | ||
19 | + | ||
20 | + private CoordinateSpaceConverter _coordinateSpaceConverter; | ||
21 | + | ||
22 | + private const float skinThickness = 0.001f; | ||
23 | + | ||
24 | + | ||
25 | + | ||
26 | + private void Awake() | ||
27 | + { | ||
28 | + | ||
29 | + hapticRigidbody = GetComponent<Rigidbody>(); | ||
30 | + _coordinateSpaceConverter = FindObjectOfType<CoordinateSpaceConverter>(); | ||
31 | + } | ||
32 | + | ||
33 | + public RaycastHit[] GetCurrentContactPoint() | ||
34 | + { | ||
35 | + RaycastHit[] downHit = hapticRigidbody.SweepTestAll(-transform.up, skinThickness); | ||
36 | + //RaycastHit[] upHit = hapticRigidbody.SweepTestAll(Vector3.up, 0.01f); | ||
37 | + | ||
38 | + return downHit.ToArray(); | ||
39 | + } | ||
40 | +} |
1 | +using UnityEngine; | ||
2 | +using Ultrahaptics; | ||
3 | +using System.Linq; | ||
4 | +using System.Collections.Generic; | ||
5 | + | ||
6 | +/// <summary> | ||
7 | +/// Controller class for all the haptics in the scene. | ||
8 | +/// This class is responsible for controlling the Ultrahaptics device | ||
9 | +/// and telling it when and where to emit control points. | ||
10 | +/// </summary> | ||
11 | +public class HapticsController : MonoBehaviour | ||
12 | +{ | ||
13 | + public float contactPointBackwardAdjust = 0.001f; | ||
14 | + | ||
15 | + [Range(100f,200f)] | ||
16 | + public float currentFrequency = 200f; | ||
17 | + | ||
18 | + [Range(0f,1.0f)] | ||
19 | + public float hapticStrength = 0.5f; | ||
20 | + | ||
21 | + // The parent GameObject of the hands (so we can get access to the haptic receivers) | ||
22 | + [SerializeField] | ||
23 | + private GameObject _handsRoot; | ||
24 | + | ||
25 | + public int currentControlPoints | ||
26 | + { | ||
27 | + get | ||
28 | + { | ||
29 | + if(hapticStrength < 0.95f) | ||
30 | + { | ||
31 | + return (int)(_maxControlPoints * 1.5f); | ||
32 | + } | ||
33 | + else | ||
34 | + { | ||
35 | + return _maxControlPoints; | ||
36 | + } | ||
37 | + } | ||
38 | + } | ||
39 | + | ||
40 | + // 4 is the maximum number of control points that should be emitted at any time | ||
41 | + // If this number is set higher than 4 then all points will be weaker | ||
42 | + private int _maxControlPoints = 4; | ||
43 | + | ||
44 | + // The AmplitudeModulationEmitter allows us to control the Ultrahaptics array. | ||
45 | + // Please refer to the SDK documentation for an explanation of the difference between | ||
46 | + // AmplitudeModulationEmitter and TimePointStreamingEmitter. | ||
47 | + private AmplitudeModulationEmitter _amEmitter; | ||
48 | + List<UnityEngine.Vector3> _debugPoints = new List<UnityEngine.Vector3>(); | ||
49 | + | ||
50 | + // The CoordinateSpaceConverter enables conversion between world space and device coordinate space | ||
51 | + private CoordinateSpaceConverter _coordinateSpaceConverter; | ||
52 | + | ||
53 | + // A collection of all the haptic receivers in the scene | ||
54 | + private HapticReceiver[] _hapticReceivers; | ||
55 | + | ||
56 | + // Use this for initialization | ||
57 | + void Start() | ||
58 | + { | ||
59 | + _amEmitter = new AmplitudeModulationEmitter(); | ||
60 | + _coordinateSpaceConverter = FindObjectOfType<CoordinateSpaceConverter>(); | ||
61 | + _hapticReceivers = _handsRoot.GetComponentsInChildren<HapticReceiver>(true); | ||
62 | + | ||
63 | + if (!_amEmitter.isConnected()) | ||
64 | + { | ||
65 | + Debug.LogWarning("No Ultrahaptics array connected"); | ||
66 | + } | ||
67 | + } | ||
68 | + | ||
69 | + // Update is called once per frame | ||
70 | + void FixedUpdate() | ||
71 | + { | ||
72 | + // Get the current contact points from all the haptic receivers | ||
73 | + var contactPoints = new List<UnityEngine.Vector3>(); | ||
74 | + | ||
75 | + for(int i = 0; i < _hapticReceivers.Length; i++) { | ||
76 | + if (_hapticReceivers[i].gameObject.activeInHierarchy) | ||
77 | + { | ||
78 | + var contactHits = _hapticReceivers[i].GetCurrentContactPoint(); | ||
79 | + | ||
80 | + contactPoints.AddRange(contactHits.Select((hit) => hit.point + hit.normal * contactPointBackwardAdjust)); | ||
81 | + } | ||
82 | + } | ||
83 | + | ||
84 | + if(contactPoints.Count <= 0) | ||
85 | + { | ||
86 | + _amEmitter.stop(); | ||
87 | + return; | ||
88 | + } | ||
89 | + | ||
90 | + // Choose which points to emit if there are too many | ||
91 | + var pointsToEmit = ChoosePointsToEmit(contactPoints); | ||
92 | + | ||
93 | + // Store a reference to these points so they can be rendered for debugging | ||
94 | + _debugPoints = pointsToEmit; | ||
95 | + | ||
96 | + // Create a list to hold all the control points we want to emit this frame | ||
97 | + var amControlPoints = new List<AmplitudeModulationControlPoint>(); | ||
98 | + | ||
99 | + // Construct control points for each of the points we want to emit | ||
100 | + foreach (var pointToEmit in pointsToEmit) | ||
101 | + { | ||
102 | + // The positions are in world space so convert them to device space | ||
103 | + var deviceSpacePosition = _coordinateSpaceConverter.WorldToDevicePosition(pointToEmit); | ||
104 | + // Construct a control point with the position and intensity of the point | ||
105 | + var amControlPoint = new AmplitudeModulationControlPoint(deviceSpacePosition, hapticStrength); | ||
106 | + | ||
107 | + amControlPoint.setFrequency(currentFrequency * (float)Units.hertz); | ||
108 | + | ||
109 | + amControlPoints.Add(amControlPoint); | ||
110 | + } | ||
111 | + | ||
112 | + // Give the list of control points to the emitter | ||
113 | + if (contactPoints.Count > 0) | ||
114 | + { | ||
115 | + _amEmitter.update(amControlPoints); | ||
116 | + } | ||
117 | + } | ||
118 | + | ||
119 | + void OnDrawGizmos() | ||
120 | + { | ||
121 | + if (_debugPoints == null || _debugPoints.Count == 0) | ||
122 | + { | ||
123 | + // Nothing to draw | ||
124 | + return; | ||
125 | + } | ||
126 | + | ||
127 | + // Draw a wire sphere at each of the points | ||
128 | + Gizmos.color = Color.red; | ||
129 | + foreach (var point in _debugPoints) | ||
130 | + { | ||
131 | + Gizmos.DrawWireSphere(point, 0.005f); | ||
132 | + } | ||
133 | + } | ||
134 | + | ||
135 | + void OnDisable() | ||
136 | + { | ||
137 | + // Stop the emitter when this GameObject is destroyed | ||
138 | + _amEmitter.stop(); | ||
139 | + } | ||
140 | + | ||
141 | + /// <summary> | ||
142 | + /// Chooses which of the given points should be emitted this frame. | ||
143 | + /// If there are fewer or equal points in the given list than the maximum then all will be chosen. | ||
144 | + /// </summary> | ||
145 | + /// <param name="contactPoints">The list of possible points that could be emitted this frame.</param> | ||
146 | + /// <returns>A subset of the given list.</returns> | ||
147 | + List<UnityEngine.Vector3> ChoosePointsToEmit(List<UnityEngine.Vector3> contactPoints) | ||
148 | + { | ||
149 | + var pointsToEmit = new List<UnityEngine.Vector3>(); | ||
150 | + | ||
151 | + if (contactPoints.Count <= currentControlPoints) | ||
152 | + { | ||
153 | + // We can emit all the points | ||
154 | + pointsToEmit.AddRange(contactPoints); | ||
155 | + } | ||
156 | + else | ||
157 | + { | ||
158 | + // There are more points of contact than haptic points we can emit this frame, | ||
159 | + // so we must choose which ones to emit. | ||
160 | + // This implementation chooses them randomly, but more sophisticated algorithms could be used | ||
161 | + | ||
162 | + | ||
163 | + | ||
164 | + var indices = new int[contactPoints.Count]; | ||
165 | + for (var i = 0; i < contactPoints.Count; i++) | ||
166 | + { | ||
167 | + indices[i] = i; | ||
168 | + } | ||
169 | + indices.OrderBy(a => Random.Range(0, int.MaxValue)); | ||
170 | + | ||
171 | + for (var i = 0; i < currentControlPoints; i++) | ||
172 | + { | ||
173 | + pointsToEmit.Add(contactPoints[indices[i]]); | ||
174 | + } | ||
175 | + | ||
176 | + } | ||
177 | + | ||
178 | + return pointsToEmit; | ||
179 | + } | ||
180 | +} |
Assets/Gravity Ball/Scripts/RiggingTest.cs
0 → 100755
1 | +using System.Collections; | ||
2 | +using System.Collections.Generic; | ||
3 | +using UnityEngine; | ||
4 | + | ||
5 | +public class RiggingTest : MonoBehaviour { | ||
6 | + | ||
7 | + public Rigidbody rigTarget; | ||
8 | + private Rigidbody myRigid; | ||
9 | + | ||
10 | + float dampTime = 0.05f; | ||
11 | + | ||
12 | + float movingSpeed = 1000f; | ||
13 | + // Use this for initialization | ||
14 | + void Start () { | ||
15 | + myRigid = GetComponent<Rigidbody>(); | ||
16 | + } | ||
17 | + | ||
18 | + // Update is called once per frame | ||
19 | + void FixedUpdate () { | ||
20 | + | ||
21 | + //Vector3 direction = rigTarget.position - myRigid.position; | ||
22 | + // transform.position = rigTarget.position; | ||
23 | + // myRigid.AddForce(direction * Time.deltaTime * movingSpeed); | ||
24 | + | ||
25 | + myRigid.MovePosition(rigTarget.position); | ||
26 | + //myRigid.MoveRotation(rigTarget.rotation); | ||
27 | + } | ||
28 | +} |
1 | +fileFormatVersion: 2 | ||
2 | +guid: c23a56b57e507984ebcf42e02a53b19a | ||
3 | +timeCreated: 1523954696 | ||
4 | +licenseType: Pro | ||
5 | +MonoImporter: | ||
6 | + externalObjects: {} | ||
7 | + serializedVersion: 2 | ||
8 | + defaultReferences: [] | ||
9 | + executionOrder: 0 | ||
10 | + icon: {instanceID: 0} | ||
11 | + userData: | ||
12 | + assetBundleName: | ||
13 | + assetBundleVariant: |
Assets/Gravity Ball/Scripts/SyncTestCube.cs
0 → 100755
1 | +using System.Collections; | ||
2 | +using System.Collections.Generic; | ||
3 | +using UnityEngine; | ||
4 | + | ||
5 | +public class SyncTestCube : MonoBehaviour { | ||
6 | + | ||
7 | + public float m_MoveSpeed = 2f; | ||
8 | + | ||
9 | + public float m_ScrollSpeed = 30f; | ||
10 | + | ||
11 | + public float m_YawSpeed = 30f; | ||
12 | + | ||
13 | + private Rigidbody m_Rigidbody; | ||
14 | + | ||
15 | + private Material m_ColorMaterial; | ||
16 | + | ||
17 | + private void Awake() | ||
18 | + { | ||
19 | + m_Rigidbody = GetComponent<Rigidbody>(); | ||
20 | + m_ColorMaterial = GetComponent<Renderer>().material; | ||
21 | + m_ColorMaterial.color = Color.white; | ||
22 | + | ||
23 | + } | ||
24 | + | ||
25 | + | ||
26 | + | ||
27 | + // Update is called once per frame | ||
28 | + void Update () { | ||
29 | + | ||
30 | + if(GravityBall.Instance.GetButton()) | ||
31 | + { | ||
32 | + m_ColorMaterial.color = Color.red; | ||
33 | + } | ||
34 | + else | ||
35 | + { | ||
36 | + m_ColorMaterial.color = Color.white; | ||
37 | + } | ||
38 | + | ||
39 | + float xInput = GravityBall.Instance.GetInputAxis("Horizontal"); | ||
40 | + float zIput = GravityBall.Instance.GetInputAxis("Vertical"); | ||
41 | + | ||
42 | + transform.Translate(xInput * m_MoveSpeed * Time.deltaTime, 0, zIput * m_MoveSpeed * Time.deltaTime, Space.World); | ||
43 | + | ||
44 | + float scroll = GravityBall.Instance.GetInputSwipe("Scroll"); | ||
45 | + float yaw = GravityBall.Instance.GetInputSwipe("Stroke"); | ||
46 | + | ||
47 | + transform.Rotate(scroll * m_ScrollSpeed * Time.deltaTime, yaw * m_YawSpeed * Time.deltaTime, 0f,Space.World); | ||
48 | + } | ||
49 | + | ||
50 | +} |
1 | +fileFormatVersion: 2 | ||
2 | +guid: 061e358065833c542812bcff8271d265 | ||
3 | +timeCreated: 1524027925 | ||
4 | +licenseType: Pro | ||
5 | +MonoImporter: | ||
6 | + externalObjects: {} | ||
7 | + serializedVersion: 2 | ||
8 | + defaultReferences: [] | ||
9 | + executionOrder: 0 | ||
10 | + icon: {instanceID: 0} | ||
11 | + userData: | ||
12 | + assetBundleName: | ||
13 | + assetBundleVariant: |
Assets/LeapMotion.meta
0 → 100755
Assets/LeapMotion/Core.meta
0 → 100755
Assets/LeapMotion/Core/Dependencies.txt
0 → 100755
1 | +This Unity Asset is dependent on Leap Motion tracking and the Leap Motion Controller which can be installed from: https://developer.leapmotion.com/ | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
Assets/LeapMotion/Core/Dependencies.txt.meta
0 → 100755
Assets/LeapMotion/Core/Editor.meta
0 → 100755
1 | +/****************************************************************************** | ||
2 | + * Copyright (C) Leap Motion, Inc. 2011-2017. * | ||
3 | + * Leap Motion proprietary and confidential. * | ||
4 | + * * | ||
5 | + * Use subject to the terms of the Leap Motion SDK Agreement available at * | ||
6 | + * https://developer.leapmotion.com/sdk_agreement, or another agreement * | ||
7 | + * between Leap Motion and you, your company or other organization. * | ||
8 | + ******************************************************************************/ | ||
9 | + | ||
10 | +using UnityEngine; | ||
11 | +using UnityEditor; | ||
12 | + | ||
13 | +namespace Leap.Unity { | ||
14 | + | ||
15 | + public static class CorePreferences { | ||
16 | + | ||
17 | + private const string ALLOW_CLEAR_TRANSFORM_HOTKEY_KEY = "LeapMotion_AllowClearTransformHotkey"; | ||
18 | + private const string ALLOW_GROUP_OBJECTS_HOTKEY_KEY = "LeapMotion_AllowGroupObjectsHotkey"; | ||
19 | + | ||
20 | + public static bool allowClearTransformHotkey { | ||
21 | + get { | ||
22 | + return EditorPrefs.GetBool(ALLOW_CLEAR_TRANSFORM_HOTKEY_KEY, defaultValue: false); | ||
23 | + } | ||
24 | + set { | ||
25 | + EditorPrefs.SetBool(ALLOW_CLEAR_TRANSFORM_HOTKEY_KEY, value); | ||
26 | + } | ||
27 | + } | ||
28 | + | ||
29 | + public static bool allowGroupObjectsHotkey { | ||
30 | + get { | ||
31 | + return EditorPrefs.GetBool(ALLOW_GROUP_OBJECTS_HOTKEY_KEY, defaultValue: false); | ||
32 | + } | ||
33 | + set { | ||
34 | + EditorPrefs.SetBool(ALLOW_GROUP_OBJECTS_HOTKEY_KEY, value); | ||
35 | + } | ||
36 | + } | ||
37 | + | ||
38 | + [LeapPreferences("Core", 0)] | ||
39 | + private static void drawCorePreferences() { | ||
40 | + drawPreferencesBool(ALLOW_CLEAR_TRANSFORM_HOTKEY_KEY, "Clear Transforms Hotkey", "When you press Ctrl+E, clear out the local position, rotation, and scale of the selected transforms."); | ||
41 | + drawPreferencesBool(ALLOW_GROUP_OBJECTS_HOTKEY_KEY, "Group Transforms Hotkey", "When you press Ctrl+G, group all selected objects underneath a single new object named Group."); | ||
42 | + } | ||
43 | + | ||
44 | + private static void drawPreferencesBool(string key, string label, string tooltip) { | ||
45 | + GUIContent content = new GUIContent(label, tooltip); | ||
46 | + | ||
47 | + bool value = EditorPrefs.GetBool(key, defaultValue: false); | ||
48 | + var newValue = EditorGUILayout.Toggle(content, value); | ||
49 | + if (newValue != value) { | ||
50 | + EditorPrefs.SetBool(key, newValue); | ||
51 | + } | ||
52 | + } | ||
53 | + } | ||
54 | +} |
This diff is collapsed. Click to expand it.
1 | +/****************************************************************************** | ||
2 | + * Copyright (C) Leap Motion, Inc. 2011-2017. * | ||
3 | + * Leap Motion proprietary and confidential. * | ||
4 | + * * | ||
5 | + * Use subject to the terms of the Leap Motion SDK Agreement available at * | ||
6 | + * https://developer.leapmotion.com/sdk_agreement, or another agreement * | ||
7 | + * between Leap Motion and you, your company or other organization. * | ||
8 | + ******************************************************************************/ | ||
9 | + | ||
10 | +using System; | ||
11 | +using System.Collections.Generic; | ||
12 | +using UnityEngine; | ||
13 | +using UnityEditor; | ||
14 | + | ||
15 | +namespace Leap.Unity { | ||
16 | + | ||
17 | + public class CustomPropertyDrawerBase : PropertyDrawer { | ||
18 | + public const float INDENT_AMOUNT = 12; | ||
19 | + | ||
20 | + private List<IDrawable> _drawables; | ||
21 | + private SerializedProperty _property; | ||
22 | + | ||
23 | + private string _onGuiSampleName; | ||
24 | + private string _getHeightSampleName; | ||
25 | + | ||
26 | + public CustomPropertyDrawerBase() { | ||
27 | + _onGuiSampleName = "OnGUI for " + GetType().Name; | ||
28 | + _getHeightSampleName = "GetPropertyHeight for " + GetType().Name; | ||
29 | + } | ||
30 | + | ||
31 | + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { | ||
32 | + using (new ProfilerSample(_onGuiSampleName)) { | ||
33 | + init(property); | ||
34 | + | ||
35 | + foreach (var drawable in _drawables) { | ||
36 | + drawable.Draw(ref position); | ||
37 | + } | ||
38 | + } | ||
39 | + } | ||
40 | + | ||
41 | + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) { | ||
42 | + using (new ProfilerSample(_getHeightSampleName)) { | ||
43 | + init(property); | ||
44 | + | ||
45 | + float height = 0; | ||
46 | + foreach (var drawable in _drawables) { | ||
47 | + if (drawable is PropertyContainer) { | ||
48 | + height += ((PropertyContainer)drawable).getHeight(); | ||
49 | + } | ||
50 | + } | ||
51 | + | ||
52 | + return height; | ||
53 | + } | ||
54 | + } | ||
55 | + | ||
56 | + protected virtual void init(SerializedProperty property) { | ||
57 | + if (_property == property) { | ||
58 | + return; | ||
59 | + } | ||
60 | + | ||
61 | + _drawables = new List<IDrawable>(); | ||
62 | + _property = property; | ||
63 | + } | ||
64 | + | ||
65 | + protected void drawPropertyConditionally(string propertyName, string conditionalName, bool includeChildren = true) { | ||
66 | + SerializedProperty property, condition; | ||
67 | + if (!tryGetProperty(propertyName, out property) || !tryGetProperty(conditionalName, out condition)) { | ||
68 | + return; | ||
69 | + } | ||
70 | + | ||
71 | + _drawables.Add(new PropertyContainer() { | ||
72 | + draw = rect => { | ||
73 | + if (condition.boolValue) { | ||
74 | + EditorGUI.PropertyField(rect, property, includeChildren); | ||
75 | + } | ||
76 | + }, | ||
77 | + getHeight = () => { | ||
78 | + return condition.boolValue ? EditorGUI.GetPropertyHeight(property, GUIContent.none, includeChildren) : 0; | ||
79 | + } | ||
80 | + }); | ||
81 | + } | ||
82 | + | ||
83 | + protected void drawPropertyConditionally(string propertyName, Func<bool> condition, bool includeChildren = true) { | ||
84 | + SerializedProperty property; | ||
85 | + if (!tryGetProperty(propertyName, out property)) { | ||
86 | + return; | ||
87 | + } | ||
88 | + | ||
89 | + _drawables.Add(new PropertyContainer() { | ||
90 | + draw = rect => { | ||
91 | + if (condition()) { | ||
92 | + EditorGUI.PropertyField(rect, property, includeChildren); | ||
93 | + } | ||
94 | + }, | ||
95 | + getHeight = () => { | ||
96 | + return condition() ? EditorGUI.GetPropertyHeight(property, GUIContent.none, includeChildren) : 0; | ||
97 | + } | ||
98 | + }); | ||
99 | + } | ||
100 | + | ||
101 | + protected void drawProperty(string name, bool includeChildren = true, bool disable = false) { | ||
102 | + SerializedProperty property; | ||
103 | + if (!tryGetProperty(name, out property)) { | ||
104 | + return; | ||
105 | + } | ||
106 | + | ||
107 | + GUIContent content = new GUIContent(property.displayName, property.tooltip); | ||
108 | + _drawables.Add(new PropertyContainer() { | ||
109 | + draw = rect => { | ||
110 | + EditorGUI.BeginDisabledGroup(disable); | ||
111 | + EditorGUI.PropertyField(rect, property, content, includeChildren); | ||
112 | + EditorGUI.EndDisabledGroup(); | ||
113 | + }, | ||
114 | + getHeight = () => EditorGUI.GetPropertyHeight(property, GUIContent.none, includeChildren) | ||
115 | + }); | ||
116 | + } | ||
117 | + | ||
118 | + protected void drawProperty(string name, Func<string> nameFunc, bool includeChildren = true) { | ||
119 | + SerializedProperty property; | ||
120 | + if (!tryGetProperty(name, out property)) { | ||
121 | + return; | ||
122 | + } | ||
123 | + | ||
124 | + GUIContent content = new GUIContent(nameFunc(), property.tooltip); | ||
125 | + | ||
126 | + _drawables.Add(new PropertyContainer() { | ||
127 | + draw = rect => { | ||
128 | + content.text = nameFunc() ?? property.displayName; | ||
129 | + EditorGUI.PropertyField(rect, property, content, includeChildren); | ||
130 | + }, | ||
131 | + getHeight = () => EditorGUI.GetPropertyHeight(property, content, includeChildren) | ||
132 | + }); | ||
133 | + } | ||
134 | + | ||
135 | + protected void drawCustom(Action<Rect> drawFunc, float height) { | ||
136 | + _drawables.Add(new PropertyContainer() { | ||
137 | + draw = drawFunc, | ||
138 | + getHeight = () => height | ||
139 | + }); | ||
140 | + } | ||
141 | + | ||
142 | + protected void drawCustom(Action<Rect> drawFunc, Func<float> heightFunc) { | ||
143 | + _drawables.Add(new PropertyContainer() { | ||
144 | + draw = drawFunc, | ||
145 | + getHeight = heightFunc | ||
146 | + }); | ||
147 | + } | ||
148 | + | ||
149 | + protected void increaseIndent() { | ||
150 | + _drawables.Add(new IndentDrawable() { | ||
151 | + indent = INDENT_AMOUNT | ||
152 | + }); | ||
153 | + } | ||
154 | + | ||
155 | + protected void decreaseIndent() { | ||
156 | + _drawables.Add(new IndentDrawable() { | ||
157 | + indent = -INDENT_AMOUNT | ||
158 | + }); | ||
159 | + } | ||
160 | + | ||
161 | + protected bool tryGetProperty(string name, out SerializedProperty property) { | ||
162 | + property = _property.FindPropertyRelative(name); | ||
163 | + | ||
164 | + if (property == null) { | ||
165 | + Debug.LogWarning("Could not find property " + name + ", was it renamed or removed?"); | ||
166 | + return false; | ||
167 | + } else { | ||
168 | + return true; | ||
169 | + } | ||
170 | + } | ||
171 | + | ||
172 | + protected bool validateProperty(string name) { | ||
173 | + if (_property.FindPropertyRelative(name) == null) { | ||
174 | + Debug.LogWarning("Could not find property " + name + ", was it renamed or removed?"); | ||
175 | + return false; | ||
176 | + } | ||
177 | + | ||
178 | + return true; | ||
179 | + } | ||
180 | + | ||
181 | + private interface IDrawable { | ||
182 | + void Draw(ref Rect rect); | ||
183 | + } | ||
184 | + | ||
185 | + private struct PropertyContainer : IDrawable { | ||
186 | + public Action<Rect> draw; | ||
187 | + public Func<float> getHeight; | ||
188 | + | ||
189 | + public void Draw(ref Rect rect) { | ||
190 | + rect.height = getHeight(); | ||
191 | + draw(rect); | ||
192 | + rect.y += rect.height; | ||
193 | + } | ||
194 | + } | ||
195 | + | ||
196 | + private struct IndentDrawable : IDrawable { | ||
197 | + public float indent; | ||
198 | + | ||
199 | + public void Draw(ref Rect rect) { | ||
200 | + rect.x += indent; | ||
201 | + rect.width -= indent; | ||
202 | + } | ||
203 | + } | ||
204 | + } | ||
205 | +} |
1 | +/****************************************************************************** | ||
2 | + * Copyright (C) Leap Motion, Inc. 2011-2017. * | ||
3 | + * Leap Motion proprietary and confidential. * | ||
4 | + * * | ||
5 | + * Use subject to the terms of the Leap Motion SDK Agreement available at * | ||
6 | + * https://developer.leapmotion.com/sdk_agreement, or another agreement * | ||
7 | + * between Leap Motion and you, your company or other organization. * | ||
8 | + ******************************************************************************/ | ||
9 | + | ||
10 | +using System; | ||
11 | +using System.IO; | ||
12 | +using System.Linq; | ||
13 | +using UnityEditor; | ||
14 | +using UnityEngine; | ||
15 | + | ||
16 | +public static class EmptyFolderUtility { | ||
17 | + | ||
18 | + [MenuItem("Assets/Delete Empty Folders")] | ||
19 | + public static void DeleteEmptyFolders() { | ||
20 | + string[] directories = Directory.GetDirectories("Assets", "*", SearchOption.AllDirectories); | ||
21 | + | ||
22 | + foreach (var directory in directories) { | ||
23 | + try { | ||
24 | + if (!Directory.Exists(directory)) { | ||
25 | + continue; | ||
26 | + } | ||
27 | + | ||
28 | + if (Directory.GetFiles(directory, "*", SearchOption.AllDirectories).Count(p => Path.GetExtension(p) != ".meta") > 0) { | ||
29 | + continue; | ||
30 | + } | ||
31 | + } catch (Exception e) { | ||
32 | + Debug.LogException(e); | ||
33 | + } | ||
34 | + | ||
35 | + try { | ||
36 | + Directory.Delete(directory, recursive: true); | ||
37 | + } catch (Exception e) { | ||
38 | + Debug.LogError("Could not delete directory " + directory); | ||
39 | + Debug.LogException(e); | ||
40 | + } | ||
41 | + | ||
42 | + } | ||
43 | + | ||
44 | + AssetDatabase.Refresh(); | ||
45 | + } | ||
46 | +} |
1 | +/****************************************************************************** | ||
2 | + * Copyright (C) Leap Motion, Inc. 2011-2017. * | ||
3 | + * Leap Motion proprietary and confidential. * | ||
4 | + * * | ||
5 | + * Use subject to the terms of the Leap Motion SDK Agreement available at * | ||
6 | + * https://developer.leapmotion.com/sdk_agreement, or another agreement * | ||
7 | + * between Leap Motion and you, your company or other organization. * | ||
8 | + ******************************************************************************/ | ||
9 | + | ||
10 | +using UnityEditor; | ||
11 | +using UnityEngine; | ||
12 | +using System.Collections; | ||
13 | +using Leap; | ||
14 | + | ||
15 | +namespace Leap.Unity { | ||
16 | + [CustomEditor(typeof(LeapHandController))] | ||
17 | + public class LeapHandControllerEditor : CustomEditorBase<LeapHandController> { | ||
18 | + private const float BOX_RADIUS = 0.45f; | ||
19 | + private const float BOX_WIDTH = 0.965f; | ||
20 | + private const float BOX_DEPTH = 0.6671f; | ||
21 | + | ||
22 | + public void OnSceneGUI() { | ||
23 | + Vector3 origin = target.transform.TransformPoint(Vector3.zero); | ||
24 | + | ||
25 | + Vector3 local_top_left, top_left, local_top_right, top_right, | ||
26 | + local_bottom_left, bottom_left, local_bottom_right, bottom_right; | ||
27 | + getLocalGlobalPoint(-1, 1, 1, out local_top_left, out top_left); | ||
28 | + getLocalGlobalPoint(1, 1, 1, out local_top_right, out top_right); | ||
29 | + getLocalGlobalPoint(-1, 1, -1, out local_bottom_left, out bottom_left); | ||
30 | + getLocalGlobalPoint(1, 1, -1, out local_bottom_right, out bottom_right); | ||
31 | + | ||
32 | + Handles.DrawLine(origin, top_left); | ||
33 | + Handles.DrawLine(origin, top_right); | ||
34 | + Handles.DrawLine(origin, bottom_left); | ||
35 | + Handles.DrawLine(origin, bottom_right); | ||
36 | + | ||
37 | + drawControllerEdge(origin, local_top_left, local_top_right); | ||
38 | + drawControllerEdge(origin, local_bottom_left, local_top_left); | ||
39 | + drawControllerEdge(origin, local_bottom_left, local_bottom_right); | ||
40 | + drawControllerEdge(origin, local_bottom_right, local_top_right); | ||
41 | + | ||
42 | + drawControllerArc(origin, local_top_left, local_bottom_left, local_top_right, local_bottom_right, -Vector3.forward); | ||
43 | + drawControllerArc(origin, local_top_left, local_top_right, local_bottom_left, local_bottom_right, -Vector3.right); | ||
44 | + } | ||
45 | + | ||
46 | + private void getLocalGlobalPoint(int x, int y, int z, out Vector3 local, out Vector3 global) { | ||
47 | + local = new Vector3(x * BOX_WIDTH, y * BOX_RADIUS, z * BOX_DEPTH); | ||
48 | + global = target.transform.TransformPoint(BOX_RADIUS * local.normalized); | ||
49 | + } | ||
50 | + | ||
51 | + private void drawControllerEdge(Vector3 origin, | ||
52 | + Vector3 edge0, Vector3 edge1) { | ||
53 | + Vector3 right_normal = target.transform.TransformDirection(Vector3.Cross(edge0, edge1)); | ||
54 | + float right_angle = Vector3.Angle(edge0, edge1); | ||
55 | + Handles.DrawWireArc(origin, right_normal, | ||
56 | + target.transform.TransformDirection(edge0), | ||
57 | + right_angle, target.transform.lossyScale.x * BOX_RADIUS); | ||
58 | + } | ||
59 | + | ||
60 | + private void drawControllerArc(Vector3 origin, | ||
61 | + Vector3 edgeA0, Vector3 edgeA1, | ||
62 | + Vector3 edgeB0, Vector3 edgeB1, | ||
63 | + Vector3 direction) { | ||
64 | + Vector3 faceA = Vector3.Lerp(edgeA0, edgeA1, 0.5f); | ||
65 | + Vector3 faceB = Vector3.Lerp(edgeB0, edgeB1, 0.5f); | ||
66 | + | ||
67 | + Vector3 depth_normal = target.transform.TransformDirection(direction); | ||
68 | + float angle = Vector3.Angle(faceA, faceB); | ||
69 | + Handles.DrawWireArc(origin, depth_normal, | ||
70 | + target.transform.TransformDirection(faceA), | ||
71 | + angle, target.transform.lossyScale.x * BOX_RADIUS); | ||
72 | + } | ||
73 | + } | ||
74 | +} |
1 | +/****************************************************************************** | ||
2 | + * Copyright (C) Leap Motion, Inc. 2011-2017. * | ||
3 | + * Leap Motion proprietary and confidential. * | ||
4 | + * * | ||
5 | + * Use subject to the terms of the Leap Motion SDK Agreement available at * | ||
6 | + * https://developer.leapmotion.com/sdk_agreement, or another agreement * | ||
7 | + * between Leap Motion and you, your company or other organization. * | ||
8 | + ******************************************************************************/ | ||
9 | + | ||
10 | +using UnityEngine; | ||
11 | +using UnityEditor; | ||
12 | + | ||
13 | +namespace Leap.Unity{ | ||
14 | + [CustomEditor(typeof(LeapImageRetriever))] | ||
15 | + public class LeapImageRetrieverEditor : CustomEditorBase<LeapImageRetriever> { | ||
16 | + | ||
17 | + private GUIContent _brightTextureGUIContent; | ||
18 | + private GUIContent _rawTextureGUIContent; | ||
19 | + private GUIContent _distortionTextureGUIContent; | ||
20 | + | ||
21 | + protected override void OnEnable() { | ||
22 | + base.OnEnable(); | ||
23 | + | ||
24 | + _brightTextureGUIContent = new GUIContent("Bright Texture"); | ||
25 | + _rawTextureGUIContent = new GUIContent("Raw Texture"); | ||
26 | + _distortionTextureGUIContent = new GUIContent("Distortion Texture"); | ||
27 | + } | ||
28 | + | ||
29 | + public override void OnInspectorGUI() { | ||
30 | + base.OnInspectorGUI(); | ||
31 | + | ||
32 | + if (Application.isPlaying) { | ||
33 | + var data = target.TextureData; | ||
34 | + var dataType = typeof(Object); | ||
35 | + | ||
36 | + EditorGUI.BeginDisabledGroup(true); | ||
37 | + EditorGUILayout.ObjectField(_brightTextureGUIContent, data.BrightTexture.CombinedTexture, dataType, true); | ||
38 | + EditorGUILayout.ObjectField(_rawTextureGUIContent, data.RawTexture.CombinedTexture, dataType, true); | ||
39 | + EditorGUILayout.ObjectField(_distortionTextureGUIContent, data.Distortion.CombinedTexture, dataType, true); | ||
40 | + EditorGUI.EndDisabledGroup(); | ||
41 | + } | ||
42 | + } | ||
43 | + } | ||
44 | +} |
1 | +/****************************************************************************** | ||
2 | + * Copyright (C) Leap Motion, Inc. 2011-2017. * | ||
3 | + * Leap Motion proprietary and confidential. * | ||
4 | + * * | ||
5 | + * Use subject to the terms of the Leap Motion SDK Agreement available at * | ||
6 | + * https://developer.leapmotion.com/sdk_agreement, or another agreement * | ||
7 | + * between Leap Motion and you, your company or other organization. * | ||
8 | + ******************************************************************************/ | ||
9 | + | ||
10 | +using UnityEditor; | ||
11 | + | ||
12 | +namespace Leap.Unity { | ||
13 | + | ||
14 | + [CustomEditor(typeof(LeapServiceProvider))] | ||
15 | + public class LeapServiceProviderEditor : CustomEditorBase { | ||
16 | + protected override void OnEnable() { | ||
17 | + base.OnEnable(); | ||
18 | + | ||
19 | + specifyCustomDecorator("_frameOptimization", frameOptimizationWarning); | ||
20 | + | ||
21 | + specifyConditionalDrawing("_frameOptimization", (int)LeapServiceProvider.FrameOptimizationMode.None, | ||
22 | + "_physicsExtrapolation", | ||
23 | + "_physicsExtrapolationTime"); | ||
24 | + | ||
25 | + specifyConditionalDrawing("_physicsExtrapolation", (int)LeapServiceProvider.PhysicsExtrapolationMode.Manual, | ||
26 | + "_physicsExtrapolationTime"); | ||
27 | + } | ||
28 | + | ||
29 | + private void frameOptimizationWarning(SerializedProperty property) { | ||
30 | + var mode = (LeapServiceProvider.FrameOptimizationMode)property.intValue; | ||
31 | + string warningText; | ||
32 | + | ||
33 | + switch (mode) { | ||
34 | + case LeapServiceProvider.FrameOptimizationMode.ReuseUpdateForPhysics: | ||
35 | + warningText = "Reusing update frames for physics introduces a frame of latency for physics interactions."; | ||
36 | + break; | ||
37 | + case LeapServiceProvider.FrameOptimizationMode.ReusePhysicsForUpdate: | ||
38 | + warningText = "This optimization REQUIRES physics framerate to match your target framerate EXACTLY."; | ||
39 | + break; | ||
40 | + default: | ||
41 | + return; | ||
42 | + } | ||
43 | + | ||
44 | + EditorGUILayout.HelpBox(warningText, MessageType.Warning); | ||
45 | + } | ||
46 | + } | ||
47 | +} |
Assets/LeapMotion/Core/Editor/Tests.meta
0 → 100755
1 | +/****************************************************************************** | ||
2 | + * Copyright (C) Leap Motion, Inc. 2011-2017. * | ||
3 | + * Leap Motion proprietary and confidential. * | ||
4 | + * * | ||
5 | + * Use subject to the terms of the Leap Motion SDK Agreement available at * | ||
6 | + * https://developer.leapmotion.com/sdk_agreement, or another agreement * | ||
7 | + * between Leap Motion and you, your company or other organization. * | ||
8 | + ******************************************************************************/ | ||
9 | + | ||
10 | +using System.Linq; | ||
11 | +using NUnit.Framework; | ||
12 | + | ||
13 | +namespace Leap.Unity.Tests { | ||
14 | + | ||
15 | + public abstract class FrameValidator { | ||
16 | + protected const float TOLERANCE = 0.0001f; | ||
17 | + protected static Finger.FingerType[] _fingers = { | ||
18 | + Finger.FingerType.TYPE_INDEX, | ||
19 | + Finger.FingerType.TYPE_MIDDLE, | ||
20 | + Finger.FingerType.TYPE_PINKY, | ||
21 | + Finger.FingerType.TYPE_RING, | ||
22 | + Finger.FingerType.TYPE_THUMB | ||
23 | + }; | ||
24 | + | ||
25 | + protected static Bone.BoneType[] _bones = { | ||
26 | + Bone.BoneType.TYPE_DISTAL, | ||
27 | + Bone.BoneType.TYPE_INTERMEDIATE, | ||
28 | + Bone.BoneType.TYPE_METACARPAL, | ||
29 | + Bone.BoneType.TYPE_PROXIMAL | ||
30 | + }; | ||
31 | + | ||
32 | + protected Frame _frame; | ||
33 | + | ||
34 | + [SetUp] | ||
35 | + public virtual void Setup() { | ||
36 | + _frame = createFrame(); | ||
37 | + } | ||
38 | + | ||
39 | + [SetUp] | ||
40 | + public virtual void Teardown() { | ||
41 | + _frame = null; | ||
42 | + } | ||
43 | + | ||
44 | + protected abstract Frame createFrame(); | ||
45 | + | ||
46 | + [Test] | ||
47 | + public void HandsAreUnique() { | ||
48 | + bool existDuplicates = _frame.Hands.GroupBy(h => h.Id).Any(g => g.Count() > 1); | ||
49 | + Assert.That(existDuplicates, Is.False); | ||
50 | + } | ||
51 | + | ||
52 | + [Test] | ||
53 | + public void HandsHaveFiveFingers() { | ||
54 | + foreach (Hand hand in _frame.Hands) { | ||
55 | + Assert.That(hand.Fingers.Count, Is.EqualTo(5)); | ||
56 | + } | ||
57 | + } | ||
58 | + | ||
59 | + [Test] | ||
60 | + public void FingersHaveFourBones([ValueSource(typeof(FrameValidator), "_fingers")] Finger.FingerType fingerType, | ||
61 | + [ValueSource(typeof(FrameValidator), "_bones")] Bone.BoneType boneType) { | ||
62 | + foreach (Hand hand in _frame.Hands) { | ||
63 | + Bone bone = getBone(hand, fingerType, boneType); | ||
64 | + Assert.That(bone, Is.Not.Null); | ||
65 | + } | ||
66 | + } | ||
67 | + | ||
68 | + [Test] | ||
69 | + public void BoneLength([ValueSource(typeof(FrameValidator), "_fingers")] Finger.FingerType fingerType, | ||
70 | + [ValueSource(typeof(FrameValidator), "_bones")] Bone.BoneType boneType) { | ||
71 | + foreach (Hand hand in _frame.Hands) { | ||
72 | + Bone bone = getBone(hand, fingerType, boneType); | ||
73 | + float apparentLength = bone.NextJoint.DistanceTo(bone.PrevJoint); | ||
74 | + float actualLength = bone.Length; | ||
75 | + Assert.That(actualLength, Is.EqualTo(apparentLength).Within(TOLERANCE)); | ||
76 | + } | ||
77 | + } | ||
78 | + | ||
79 | + [Test] | ||
80 | + public void JointsMatch([ValueSource(typeof(FrameValidator), "_fingers")] Finger.FingerType fingerType, | ||
81 | + [ValueSource(typeof(FrameValidator), "_bones")] Bone.BoneType boneType) { | ||
82 | + foreach (Hand hand in _frame.Hands) { | ||
83 | + Bone prevBone = getBone(hand, fingerType, boneType - 1); | ||
84 | + Bone bone = getBone(hand, fingerType, boneType); | ||
85 | + Bone nextBone = getBone(hand, fingerType, boneType + 1); | ||
86 | + | ||
87 | + if (prevBone != null) { | ||
88 | + assertVectorsEqual(prevBone.NextJoint, bone.PrevJoint); | ||
89 | + } | ||
90 | + | ||
91 | + if (nextBone != null) { | ||
92 | + assertVectorsEqual(nextBone.PrevJoint, bone.NextJoint); | ||
93 | + } | ||
94 | + } | ||
95 | + } | ||
96 | + | ||
97 | + [Test] | ||
98 | + public void CenterIsBetweenJoints([ValueSource(typeof(FrameValidator), "_fingers")] Finger.FingerType fingerType, | ||
99 | + [ValueSource(typeof(FrameValidator), "_bones")] Bone.BoneType boneType) { | ||
100 | + foreach (Hand hand in _frame.Hands) { | ||
101 | + Bone bone = getBone(hand, fingerType, boneType); | ||
102 | + | ||
103 | + Vector jointAverage = (bone.NextJoint + bone.PrevJoint) * 0.5f; | ||
104 | + assertVectorsEqual(jointAverage, bone.Center); | ||
105 | + } | ||
106 | + } | ||
107 | + | ||
108 | + [Test] | ||
109 | + public void DirectionMatchesJoints([ValueSource(typeof(FrameValidator), "_fingers")] Finger.FingerType fingerType, | ||
110 | + [ValueSource(typeof(FrameValidator), "_bones")] Bone.BoneType boneType) { | ||
111 | + foreach (Hand hand in _frame.Hands) { | ||
112 | + Bone bone = getBone(hand, fingerType, boneType); | ||
113 | + | ||
114 | + //If the joints are at the same position this test is meaningless | ||
115 | + if (bone.NextJoint.DistanceTo(bone.PrevJoint) < TOLERANCE) { | ||
116 | + continue; | ||
117 | + } | ||
118 | + | ||
119 | + Vector jointDirection = (bone.NextJoint - bone.PrevJoint).Normalized; | ||
120 | + assertVectorsEqual(jointDirection, bone.Direction); | ||
121 | + } | ||
122 | + } | ||
123 | + | ||
124 | + [Test] | ||
125 | + public void RotationIsValid() { | ||
126 | + foreach (Hand hand in _frame.Hands) { | ||
127 | + Assert.That(hand.Rotation.IsValid()); | ||
128 | + } | ||
129 | + } | ||
130 | + | ||
131 | + protected Bone getBone(Hand hand, Finger.FingerType fingerType, Bone.BoneType boneType) { | ||
132 | + if (boneType < 0 || (int)boneType >= 4) { | ||
133 | + return null; | ||
134 | + } | ||
135 | + | ||
136 | + foreach (Finger finger in hand.Fingers) { | ||
137 | + if (finger.Type != fingerType) { | ||
138 | + continue; | ||
139 | + } | ||
140 | + | ||
141 | + return finger.Bone(boneType); | ||
142 | + } | ||
143 | + return null; | ||
144 | + } | ||
145 | + | ||
146 | + protected void assertVectorsEqual(Vector a, Vector b, string vectorName = "Vector") { | ||
147 | + Assert.That(a.x, Is.EqualTo(b.x).Within(TOLERANCE), vectorName + ".x"); | ||
148 | + Assert.That(a.y, Is.EqualTo(b.y).Within(TOLERANCE), vectorName + ".y"); | ||
149 | + Assert.That(a.z, Is.EqualTo(b.z).Within(TOLERANCE), vectorName + ".z"); | ||
150 | + } | ||
151 | + } | ||
152 | +} |
1 | +/****************************************************************************** | ||
2 | + * Copyright (C) Leap Motion, Inc. 2011-2017. * | ||
3 | + * Leap Motion proprietary and confidential. * | ||
4 | + * * | ||
5 | + * Use subject to the terms of the Leap Motion SDK Agreement available at * | ||
6 | + * https://developer.leapmotion.com/sdk_agreement, or another agreement * | ||
7 | + * between Leap Motion and you, your company or other organization. * | ||
8 | + ******************************************************************************/ | ||
9 | + | ||
10 | +using System.Linq; | ||
11 | +using System.Collections; | ||
12 | +using System.Collections.Generic; | ||
13 | +using UnityEngine; | ||
14 | +using NUnit.Framework; | ||
15 | + | ||
16 | +namespace Leap.Unity.Tests { | ||
17 | + | ||
18 | + /// <summary> | ||
19 | + /// Tests for From(), To(), and Then() extension methods. | ||
20 | + /// | ||
21 | + /// These extension methods provide a consistent rightward syntax for mathematical | ||
22 | + /// transformations, e.g. Quaternions and matrices as well as more trivial types like | ||
23 | + /// float and Vector3. | ||
24 | + /// </summary> | ||
25 | + public class FromThenTests { | ||
26 | + | ||
27 | + public static float EPSILON = 0.0006f; | ||
28 | + | ||
29 | + #region Vector3 | ||
30 | + | ||
31 | + private static Vector3 VEC_A = new Vector3(0.5f, 0.2f, 0.8f); | ||
32 | + private static Vector3 VEC_B = new Vector3(0.13f, 0.98f, 3000f); | ||
33 | + | ||
34 | + [Test] | ||
35 | + public void FromVecAToVecB() { | ||
36 | + Assert.That(AreVector3sEqual(VEC_A.Then(VEC_B.From(VEC_A)), VEC_B)); | ||
37 | + } | ||
38 | + | ||
39 | + [Test] | ||
40 | + public void ToVecBFromVecA() { | ||
41 | + Assert.That(AreVector3sEqual(VEC_A.Then(VEC_A.To(VEC_B)), VEC_B)); | ||
42 | + } | ||
43 | + | ||
44 | + [Test] | ||
45 | + public void FromVecBToVecA() { | ||
46 | + Assert.That(AreVector3sEqual(VEC_B.Then(VEC_A.From(VEC_B)), VEC_A)); | ||
47 | + } | ||
48 | + | ||
49 | + [Test] | ||
50 | + public void ToVecAFromVecB() { | ||
51 | + Assert.That(AreVector3sEqual(VEC_B.Then(VEC_B.To(VEC_A)), VEC_A)); | ||
52 | + } | ||
53 | + | ||
54 | + private static bool AreVector3sEqual(Vector3 a, Vector3 b) { | ||
55 | + return (a - b).magnitude < EPSILON; | ||
56 | + } | ||
57 | + | ||
58 | + #endregion | ||
59 | + | ||
60 | + #region Quaternion | ||
61 | + | ||
62 | + private static Quaternion QUAT_A { | ||
63 | + get { return Quaternion.AngleAxis(90f, Vector3.up); } | ||
64 | + } | ||
65 | + private static Quaternion QUAT_B { | ||
66 | + get { return Quaternion.AngleAxis(43f, Vector3.one.normalized); } | ||
67 | + } | ||
68 | + | ||
69 | + [Test] | ||
70 | + public void FromQuatAToQuatB() { | ||
71 | + Assert.That(AreQuaternionsEqual(QUAT_A.Then(QUAT_B.From(QUAT_A)), QUAT_B)); | ||
72 | + } | ||
73 | + | ||
74 | + [Test] | ||
75 | + public void ToQuatAFromQuatB() { | ||
76 | + Assert.That(AreQuaternionsEqual(QUAT_A.Then(QUAT_A.To(QUAT_B)), QUAT_B)); | ||
77 | + } | ||
78 | + | ||
79 | + [Test] | ||
80 | + public void FromQuatBToQuatA() { | ||
81 | + Assert.That(AreQuaternionsEqual(QUAT_B.Then(QUAT_A.From(QUAT_B)), QUAT_A)); | ||
82 | + } | ||
83 | + | ||
84 | + [Test] | ||
85 | + public void ToQuatBFromQuatA() { | ||
86 | + Assert.That(AreQuaternionsEqual(QUAT_B.Then(QUAT_B.To(QUAT_A)), QUAT_A)); | ||
87 | + } | ||
88 | + | ||
89 | + private static bool AreQuaternionsEqual(Quaternion a, Quaternion b) { | ||
90 | + return (a.ToAngleAxisVector() - b.ToAngleAxisVector()).magnitude < EPSILON; | ||
91 | + } | ||
92 | + | ||
93 | + #endregion | ||
94 | + | ||
95 | + #region Pose | ||
96 | + | ||
97 | + public static Pose POSE_A { | ||
98 | + get { return new Pose(VEC_A, QUAT_A); } | ||
99 | + } | ||
100 | + public static Pose POSE_B { | ||
101 | + get { return new Pose(VEC_B, QUAT_B); } | ||
102 | + } | ||
103 | + | ||
104 | + [Test] | ||
105 | + public void FromPoseAToPoseB() { | ||
106 | + Assert.That(ArePosesEqual(POSE_B.Then(POSE_A.From(POSE_B)), POSE_A)); | ||
107 | + } | ||
108 | + | ||
109 | + [Test] | ||
110 | + public void ToPoseAFromPoseB() { | ||
111 | + Assert.That(ArePosesEqual(POSE_B.Then(POSE_B.To(POSE_A)), POSE_A)); | ||
112 | + } | ||
113 | + | ||
114 | + [Test] | ||
115 | + public void FromPoseBToPoseA() { | ||
116 | + Assert.That(ArePosesEqual(POSE_A.Then(POSE_B.From(POSE_A)), POSE_B)); | ||
117 | + } | ||
118 | + | ||
119 | + [Test] | ||
120 | + public void ToPoseBFromPoseA() { | ||
121 | + Assert.That(ArePosesEqual(POSE_A.Then(POSE_A.To(POSE_B)), POSE_B)); | ||
122 | + } | ||
123 | + | ||
124 | + private bool ArePosesEqual(Pose a, Pose b) { | ||
125 | + return AreVector3sEqual(a.position, b.position) | ||
126 | + && AreQuaternionsEqual(a.rotation, b.rotation); | ||
127 | + } | ||
128 | + | ||
129 | + #endregion | ||
130 | + | ||
131 | + #region Matrix4x4 | ||
132 | + | ||
133 | + private Matrix4x4 MAT_A { | ||
134 | + get { | ||
135 | + return Matrix4x4.TRS(Vector3.right * 100f, | ||
136 | + Quaternion.AngleAxis(77f, Vector3.one), | ||
137 | + Vector3.one * 35f); | ||
138 | + } | ||
139 | + } | ||
140 | + | ||
141 | + private Matrix4x4 MAT_B { | ||
142 | + get { | ||
143 | + return Matrix4x4.TRS(Vector3.one * 20f, | ||
144 | + Quaternion.AngleAxis(24f, Vector3.up), | ||
145 | + Vector3.one * 2f); | ||
146 | + } | ||
147 | + } | ||
148 | + | ||
149 | + [Test] | ||
150 | + public void FromMatrixBToMatrixA() { | ||
151 | + Assert.That(AreMatricesEqual(MAT_B.Then(MAT_A.From(MAT_B)), MAT_A)); | ||
152 | + } | ||
153 | + | ||
154 | + [Test] | ||
155 | + public void ToMatrixAFromMatrixB() { | ||
156 | + Assert.That(AreMatricesEqual(MAT_B.Then(MAT_B.To(MAT_A)), MAT_A)); | ||
157 | + } | ||
158 | + | ||
159 | + [Test] | ||
160 | + public void FromMatrixAToMatrixB() { | ||
161 | + Assert.That(AreMatricesEqual(MAT_A.Then(MAT_B.From(MAT_A)), MAT_B)); | ||
162 | + } | ||
163 | + | ||
164 | + private static bool AreMatricesEqual(Matrix4x4 a, Matrix4x4 b) { | ||
165 | + return AreVector3sEqual(a.GetVector3(), b.GetVector3()) | ||
166 | + && AreQuaternionsEqual(a.GetQuaternion(), b.GetQuaternion()); | ||
167 | + } | ||
168 | + | ||
169 | + #endregion | ||
170 | + | ||
171 | + } | ||
172 | +} |
1 | +fileFormatVersion: 2 | ||
2 | +guid: d8dae2a3179de4145ad49d629d64787d | ||
3 | +timeCreated: 1508543219 | ||
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: |
1 | +/****************************************************************************** | ||
2 | + * Copyright (C) Leap Motion, Inc. 2011-2017. * | ||
3 | + * Leap Motion proprietary and confidential. * | ||
4 | + * * | ||
5 | + * Use subject to the terms of the Leap Motion SDK Agreement available at * | ||
6 | + * https://developer.leapmotion.com/sdk_agreement, or another agreement * | ||
7 | + * between Leap Motion and you, your company or other organization. * | ||
8 | + ******************************************************************************/ | ||
9 | + | ||
10 | +using System; | ||
11 | +using NUnit.Framework; | ||
12 | + | ||
13 | +namespace Leap.Unity.Tests { | ||
14 | + | ||
15 | + [TestFixture(Category = "TestHandFactory")] | ||
16 | + public class HandFactoryTwoHands : FrameValidator { | ||
17 | + protected override Frame createFrame() { | ||
18 | + return TestHandFactory.MakeTestFrame(0, true, true); | ||
19 | + } | ||
20 | + | ||
21 | + [Test] | ||
22 | + public void CorrectHandCount() { | ||
23 | + Assert.That(_frame.Hands.Count, Is.EqualTo(2)); | ||
24 | + } | ||
25 | + } | ||
26 | + | ||
27 | + [TestFixture(Category = "TestHandFactory")] | ||
28 | + public class HandFactoryLeft : FrameValidator { | ||
29 | + protected override Frame createFrame() { | ||
30 | + return TestHandFactory.MakeTestFrame(0, true, false); | ||
31 | + } | ||
32 | + | ||
33 | + [Test] | ||
34 | + public void CorrectHandCount() { | ||
35 | + Assert.That(_frame.Hands.Count, Is.EqualTo(1)); | ||
36 | + } | ||
37 | + } | ||
38 | + | ||
39 | + [TestFixture(Category = "TestHandFactory")] | ||
40 | + public class HandFactoryRight : FrameValidator { | ||
41 | + protected override Frame createFrame() { | ||
42 | + return TestHandFactory.MakeTestFrame(0, false, true); | ||
43 | + } | ||
44 | + | ||
45 | + [Test] | ||
46 | + public void CorrectHandCount() { | ||
47 | + Assert.That(_frame.Hands.Count, Is.EqualTo(1)); | ||
48 | + } | ||
49 | + } | ||
50 | +} |
1 | +/****************************************************************************** | ||
2 | + * Copyright (C) Leap Motion, Inc. 2011-2017. * | ||
3 | + * Leap Motion proprietary and confidential. * | ||
4 | + * * | ||
5 | + * Use subject to the terms of the Leap Motion SDK Agreement available at * | ||
6 | + * https://developer.leapmotion.com/sdk_agreement, or another agreement * | ||
7 | + * between Leap Motion and you, your company or other organization. * | ||
8 | + ******************************************************************************/ | ||
9 | + | ||
10 | +using System; | ||
11 | +using System.Linq; | ||
12 | +using System.Reflection; | ||
13 | +using System.Collections; | ||
14 | +using NUnit.Framework; | ||
15 | + | ||
16 | +namespace Leap.Unity.Tests { | ||
17 | + | ||
18 | + public class TransformCopyIdentity : FrameValidator { | ||
19 | + protected Frame _originalFrame; | ||
20 | + | ||
21 | + protected override Frame createFrame() { | ||
22 | + _originalFrame = TestHandFactory.MakeTestFrame(0, true, true); | ||
23 | + return _originalFrame.TransformedCopy(LeapTransform.Identity); | ||
24 | + } | ||
25 | + | ||
26 | + [Test] | ||
27 | + public void IdsAreSame() { | ||
28 | + Assert.That(_frame.Hands.Count, Is.EqualTo(_originalFrame.Hands.Count)); | ||
29 | + | ||
30 | + for (int i = 0; i < _frame.Hands.Count; i++) { | ||
31 | + Hand oldHand = _originalFrame.Hands[i]; | ||
32 | + Hand newHand = _frame.Hands[i]; | ||
33 | + Assert.That(oldHand.Id, Is.EqualTo(newHand.Id)); | ||
34 | + | ||
35 | + for (int j = 0; j < 5; j++) { | ||
36 | + Finger oldFinger = oldHand.Fingers[j]; | ||
37 | + Finger newFinger = newHand.Fingers[j]; | ||
38 | + Assert.That(oldFinger.Id, Is.EqualTo(newFinger.Id)); | ||
39 | + } | ||
40 | + } | ||
41 | + } | ||
42 | + | ||
43 | + [Test] | ||
44 | + public void AreBinaryEqual() { | ||
45 | + assertObjectsEqual("Frame", _originalFrame, _frame); | ||
46 | + } | ||
47 | + | ||
48 | + private void assertObjectsEqual(string objectName, object a, object b) { | ||
49 | + if ((a == null) != (b == null)) { | ||
50 | + Assert.Fail("For " + objectName + ", one object was null an the other was not."); | ||
51 | + return; | ||
52 | + } | ||
53 | + | ||
54 | + Type typeA = a.GetType(); | ||
55 | + Type typeB = b.GetType(); | ||
56 | + | ||
57 | + if (typeA != typeB) { | ||
58 | + Assert.Fail("For " + objectName + ", object Type " + typeA + " is not equal to type " + typeB + "."); | ||
59 | + } | ||
60 | + | ||
61 | + if (typeA.IsValueType) { | ||
62 | + Assert.That(a, Is.EqualTo(b), objectName); | ||
63 | + return; | ||
64 | + } | ||
65 | + | ||
66 | + if (a is IList) { | ||
67 | + IList aList = a as IList; | ||
68 | + IList bList = b as IList; | ||
69 | + | ||
70 | + Assert.That(aList.Count, Is.EqualTo(bList.Count), objectName + ".Count"); | ||
71 | + | ||
72 | + for (int i = 0; i < aList.Count; i++) { | ||
73 | + assertObjectsEqual(objectName + "[" + i + "]", aList[i], bList[i]); | ||
74 | + } | ||
75 | + } else { | ||
76 | + FieldInfo[] fields = typeA.GetFields(BindingFlags.Public | BindingFlags.Instance); | ||
77 | + foreach (FieldInfo field in fields) { | ||
78 | + assertObjectsEqual(objectName + "." + field.Name, field.GetValue(a), field.GetValue(b)); | ||
79 | + } | ||
80 | + | ||
81 | + PropertyInfo[] properties = typeA.GetProperties(BindingFlags.Public | BindingFlags.Instance); | ||
82 | + foreach (PropertyInfo property in properties) { | ||
83 | + if (property.GetIndexParameters().Length == 0) { | ||
84 | + object propA; | ||
85 | + try { | ||
86 | + propA = property.GetValue(a, null); | ||
87 | + } catch (Exception exceptionA) { | ||
88 | + try { | ||
89 | + property.GetValue(b, null); | ||
90 | + Assert.Fail("For " + objectName + ", one property threw an exception where the other did not."); | ||
91 | + return; | ||
92 | + } catch (Exception exceptionB) { | ||
93 | + Assert.That(exceptionA.GetType(), Is.EqualTo(exceptionB.GetType()), "For " + objectName + ", both properties threw exceptions but their types were different."); | ||
94 | + return; | ||
95 | + } | ||
96 | + } | ||
97 | + | ||
98 | + object propB = property.GetValue(b, null); | ||
99 | + | ||
100 | + assertObjectsEqual(objectName + "." + property.Name, propA, propB); | ||
101 | + } | ||
102 | + } | ||
103 | + } | ||
104 | + } | ||
105 | + } | ||
106 | + | ||
107 | + public class TransformCopyTranslation : FrameValidator { | ||
108 | + protected static Vector translation = Vector.Forward; | ||
109 | + protected Frame _originalFrame; | ||
110 | + | ||
111 | + protected override Frame createFrame() { | ||
112 | + _originalFrame = TestHandFactory.MakeTestFrame(0, true, true); | ||
113 | + LeapTransform forwardTransform = new LeapTransform(translation, LeapQuaternion.Identity); | ||
114 | + return _originalFrame.TransformedCopy(forwardTransform); | ||
115 | + } | ||
116 | + | ||
117 | + [Test] | ||
118 | + public void IsTranslated() { | ||
119 | + for (int i = 0; i < _frame.Hands.Count; i++) { | ||
120 | + Hand oldHand = _originalFrame.Hands[i]; | ||
121 | + Hand newHand = _frame.Hands[i]; | ||
122 | + | ||
123 | + assertVectorsEqual(oldHand.PalmPosition + translation, newHand.PalmPosition, "Palm Position"); | ||
124 | + | ||
125 | + for (int j = 0; j < 5; j++) { | ||
126 | + Finger oldFinger = oldHand.Fingers[j]; | ||
127 | + Finger newFinger = newHand.Fingers[j]; | ||
128 | + | ||
129 | + assertVectorsEqual(oldFinger.TipPosition + translation, newFinger.TipPosition, oldFinger.Type.ToString()); | ||
130 | + } | ||
131 | + } | ||
132 | + } | ||
133 | + } | ||
134 | +} |
Assets/LeapMotion/Core/EditorResources.meta
0 → 100755

18.2 KB
1 | +fileFormatVersion: 2 | ||
2 | +guid: deb56e030d40a2e459ff79f6da5e82cc | ||
3 | +timeCreated: 1493336311 | ||
4 | +licenseType: Free | ||
5 | +TextureImporter: | ||
6 | + fileIDToRecycleName: {} | ||
7 | + serializedVersion: 4 | ||
8 | + mipmaps: | ||
9 | + mipMapMode: 0 | ||
10 | + enableMipMap: 0 | ||
11 | + sRGBTexture: 1 | ||
12 | + linearTexture: 0 | ||
13 | + fadeOut: 0 | ||
14 | + borderMipMap: 0 | ||
15 | + mipMapFadeDistanceStart: 1 | ||
16 | + mipMapFadeDistanceEnd: 3 | ||
17 | + bumpmap: | ||
18 | + convertToNormalMap: 0 | ||
19 | + externalNormalMap: 0 | ||
20 | + heightScale: 0.25 | ||
21 | + normalMapFilter: 0 | ||
22 | + isReadable: 0 | ||
23 | + grayScaleToAlpha: 0 | ||
24 | + generateCubemap: 6 | ||
25 | + cubemapConvolution: 0 | ||
26 | + seamlessCubemap: 0 | ||
27 | + textureFormat: 1 | ||
28 | + maxTextureSize: 2048 | ||
29 | + textureSettings: | ||
30 | + filterMode: 0 | ||
31 | + aniso: -1 | ||
32 | + mipBias: -1 | ||
33 | + wrapMode: 1 | ||
34 | + nPOTScale: 1 | ||
35 | + lightmap: 0 | ||
36 | + compressionQuality: 50 | ||
37 | + spriteMode: 0 | ||
38 | + spriteExtrude: 1 | ||
39 | + spriteMeshType: 1 | ||
40 | + alignment: 0 | ||
41 | + spritePivot: {x: 0.5, y: 0.5} | ||
42 | + spriteBorder: {x: 0, y: 0, z: 0, w: 0} | ||
43 | + spritePixelsToUnits: 100 | ||
44 | + alphaUsage: 0 | ||
45 | + alphaIsTransparency: 0 | ||
46 | + spriteTessellationDetail: -1 | ||
47 | + textureType: 0 | ||
48 | + textureShape: 1 | ||
49 | + maxTextureSizeSet: 0 | ||
50 | + compressionQualitySet: 0 | ||
51 | + textureFormatSet: 0 | ||
52 | + platformSettings: | ||
53 | + - buildTarget: DefaultTexturePlatform | ||
54 | + maxTextureSize: 256 | ||
55 | + textureFormat: -1 | ||
56 | + textureCompression: 3 | ||
57 | + compressionQuality: 1 | ||
58 | + crunchedCompression: 1 | ||
59 | + allowsAlphaSplitting: 0 | ||
60 | + overridden: 0 | ||
61 | + - buildTarget: Standalone | ||
62 | + maxTextureSize: 256 | ||
63 | + textureFormat: -1 | ||
64 | + textureCompression: 3 | ||
65 | + compressionQuality: 1 | ||
66 | + crunchedCompression: 1 | ||
67 | + allowsAlphaSplitting: 0 | ||
68 | + overridden: 0 | ||
69 | + - buildTarget: Android | ||
70 | + maxTextureSize: 256 | ||
71 | + textureFormat: -1 | ||
72 | + textureCompression: 3 | ||
73 | + compressionQuality: 1 | ||
74 | + crunchedCompression: 1 | ||
75 | + allowsAlphaSplitting: 0 | ||
76 | + overridden: 0 | ||
77 | + spriteSheet: | ||
78 | + serializedVersion: 2 | ||
79 | + sprites: [] | ||
80 | + outline: [] | ||
81 | + spritePackingTag: | ||
82 | + userData: | ||
83 | + assetBundleName: | ||
84 | + assetBundleVariant: |
Assets/LeapMotion/Core/Examples.meta
0 → 100755
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_PrefabParentObject: {fileID: 0} | ||
8 | + m_PrefabInternal: {fileID: 0} | ||
9 | + m_Name: Attachment Hands Example Blue | ||
10 | + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} | ||
11 | + m_ShaderKeywords: | ||
12 | + m_LightmapFlags: 4 | ||
13 | + m_EnableInstancingVariants: 0 | ||
14 | + m_CustomRenderQueue: -1 | ||
15 | + stringTagMap: {} | ||
16 | + disabledShaderPasses: [] | ||
17 | + m_SavedProperties: | ||
18 | + serializedVersion: 3 | ||
19 | + m_TexEnvs: | ||
20 | + - _BumpMap: | ||
21 | + m_Texture: {fileID: 0} | ||
22 | + m_Scale: {x: 1, y: 1} | ||
23 | + m_Offset: {x: 0, y: 0} | ||
24 | + - _DetailAlbedoMap: | ||
25 | + m_Texture: {fileID: 0} | ||
26 | + m_Scale: {x: 1, y: 1} | ||
27 | + m_Offset: {x: 0, y: 0} | ||
28 | + - _DetailMask: | ||
29 | + m_Texture: {fileID: 0} | ||
30 | + m_Scale: {x: 1, y: 1} | ||
31 | + m_Offset: {x: 0, y: 0} | ||
32 | + - _DetailNormalMap: | ||
33 | + m_Texture: {fileID: 0} | ||
34 | + m_Scale: {x: 1, y: 1} | ||
35 | + m_Offset: {x: 0, y: 0} | ||
36 | + - _EmissionMap: | ||
37 | + m_Texture: {fileID: 0} | ||
38 | + m_Scale: {x: 1, y: 1} | ||
39 | + m_Offset: {x: 0, y: 0} | ||
40 | + - _MainTex: | ||
41 | + m_Texture: {fileID: 0} | ||
42 | + m_Scale: {x: 1, y: 1} | ||
43 | + m_Offset: {x: 0, y: 0} | ||
44 | + - _MetallicGlossMap: | ||
45 | + m_Texture: {fileID: 0} | ||
46 | + m_Scale: {x: 1, y: 1} | ||
47 | + m_Offset: {x: 0, y: 0} | ||
48 | + - _OcclusionMap: | ||
49 | + m_Texture: {fileID: 0} | ||
50 | + m_Scale: {x: 1, y: 1} | ||
51 | + m_Offset: {x: 0, y: 0} | ||
52 | + - _ParallaxMap: | ||
53 | + m_Texture: {fileID: 0} | ||
54 | + m_Scale: {x: 1, y: 1} | ||
55 | + m_Offset: {x: 0, y: 0} | ||
56 | + m_Floats: | ||
57 | + - _BumpScale: 1 | ||
58 | + - _Cutoff: 0.5 | ||
59 | + - _DetailNormalMapScale: 1 | ||
60 | + - _DstBlend: 0 | ||
61 | + - _GlossMapScale: 1 | ||
62 | + - _Glossiness: 0.5 | ||
63 | + - _GlossyReflections: 1 | ||
64 | + - _Metallic: 0 | ||
65 | + - _Mode: 0 | ||
66 | + - _OcclusionStrength: 1 | ||
67 | + - _Parallax: 0.02 | ||
68 | + - _SmoothnessTextureChannel: 0 | ||
69 | + - _SpecularHighlights: 1 | ||
70 | + - _SrcBlend: 1 | ||
71 | + - _UVSec: 0 | ||
72 | + - _ZWrite: 1 | ||
73 | + m_Colors: | ||
74 | + - _Color: {r: 0, g: 0.42068958, b: 1, a: 1} | ||
75 | + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
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_PrefabParentObject: {fileID: 0} | ||
8 | + m_PrefabInternal: {fileID: 0} | ||
9 | + m_Name: Attachment Hands Example Green | ||
10 | + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} | ||
11 | + m_ShaderKeywords: | ||
12 | + m_LightmapFlags: 4 | ||
13 | + m_EnableInstancingVariants: 0 | ||
14 | + m_CustomRenderQueue: -1 | ||
15 | + stringTagMap: {} | ||
16 | + disabledShaderPasses: [] | ||
17 | + m_SavedProperties: | ||
18 | + serializedVersion: 3 | ||
19 | + m_TexEnvs: | ||
20 | + - _BumpMap: | ||
21 | + m_Texture: {fileID: 0} | ||
22 | + m_Scale: {x: 1, y: 1} | ||
23 | + m_Offset: {x: 0, y: 0} | ||
24 | + - _DetailAlbedoMap: | ||
25 | + m_Texture: {fileID: 0} | ||
26 | + m_Scale: {x: 1, y: 1} | ||
27 | + m_Offset: {x: 0, y: 0} | ||
28 | + - _DetailMask: | ||
29 | + m_Texture: {fileID: 0} | ||
30 | + m_Scale: {x: 1, y: 1} | ||
31 | + m_Offset: {x: 0, y: 0} | ||
32 | + - _DetailNormalMap: | ||
33 | + m_Texture: {fileID: 0} | ||
34 | + m_Scale: {x: 1, y: 1} | ||
35 | + m_Offset: {x: 0, y: 0} | ||
36 | + - _EmissionMap: | ||
37 | + m_Texture: {fileID: 0} | ||
38 | + m_Scale: {x: 1, y: 1} | ||
39 | + m_Offset: {x: 0, y: 0} | ||
40 | + - _MainTex: | ||
41 | + m_Texture: {fileID: 0} | ||
42 | + m_Scale: {x: 1, y: 1} | ||
43 | + m_Offset: {x: 0, y: 0} | ||
44 | + - _MetallicGlossMap: | ||
45 | + m_Texture: {fileID: 0} | ||
46 | + m_Scale: {x: 1, y: 1} | ||
47 | + m_Offset: {x: 0, y: 0} | ||
48 | + - _OcclusionMap: | ||
49 | + m_Texture: {fileID: 0} | ||
50 | + m_Scale: {x: 1, y: 1} | ||
51 | + m_Offset: {x: 0, y: 0} | ||
52 | + - _ParallaxMap: | ||
53 | + m_Texture: {fileID: 0} | ||
54 | + m_Scale: {x: 1, y: 1} | ||
55 | + m_Offset: {x: 0, y: 0} | ||
56 | + m_Floats: | ||
57 | + - _BumpScale: 1 | ||
58 | + - _Cutoff: 0.5 | ||
59 | + - _DetailNormalMapScale: 1 | ||
60 | + - _DstBlend: 0 | ||
61 | + - _GlossMapScale: 1 | ||
62 | + - _Glossiness: 0.5 | ||
63 | + - _GlossyReflections: 1 | ||
64 | + - _Metallic: 0 | ||
65 | + - _Mode: 0 | ||
66 | + - _OcclusionStrength: 1 | ||
67 | + - _Parallax: 0.02 | ||
68 | + - _SmoothnessTextureChannel: 0 | ||
69 | + - _SpecularHighlights: 1 | ||
70 | + - _SrcBlend: 1 | ||
71 | + - _UVSec: 0 | ||
72 | + - _ZWrite: 1 | ||
73 | + m_Colors: | ||
74 | + - _Color: {r: 0.48316428, g: 1, b: 0.2352941, a: 1} | ||
75 | + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
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_PrefabParentObject: {fileID: 0} | ||
8 | + m_PrefabInternal: {fileID: 0} | ||
9 | + m_Name: Attachment Hands Example Red | ||
10 | + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} | ||
11 | + m_ShaderKeywords: | ||
12 | + m_LightmapFlags: 4 | ||
13 | + m_EnableInstancingVariants: 0 | ||
14 | + m_CustomRenderQueue: -1 | ||
15 | + stringTagMap: {} | ||
16 | + disabledShaderPasses: [] | ||
17 | + m_SavedProperties: | ||
18 | + serializedVersion: 3 | ||
19 | + m_TexEnvs: | ||
20 | + - _BumpMap: | ||
21 | + m_Texture: {fileID: 0} | ||
22 | + m_Scale: {x: 1, y: 1} | ||
23 | + m_Offset: {x: 0, y: 0} | ||
24 | + - _DetailAlbedoMap: | ||
25 | + m_Texture: {fileID: 0} | ||
26 | + m_Scale: {x: 1, y: 1} | ||
27 | + m_Offset: {x: 0, y: 0} | ||
28 | + - _DetailMask: | ||
29 | + m_Texture: {fileID: 0} | ||
30 | + m_Scale: {x: 1, y: 1} | ||
31 | + m_Offset: {x: 0, y: 0} | ||
32 | + - _DetailNormalMap: | ||
33 | + m_Texture: {fileID: 0} | ||
34 | + m_Scale: {x: 1, y: 1} | ||
35 | + m_Offset: {x: 0, y: 0} | ||
36 | + - _EmissionMap: | ||
37 | + m_Texture: {fileID: 0} | ||
38 | + m_Scale: {x: 1, y: 1} | ||
39 | + m_Offset: {x: 0, y: 0} | ||
40 | + - _MainTex: | ||
41 | + m_Texture: {fileID: 0} | ||
42 | + m_Scale: {x: 1, y: 1} | ||
43 | + m_Offset: {x: 0, y: 0} | ||
44 | + - _MetallicGlossMap: | ||
45 | + m_Texture: {fileID: 0} | ||
46 | + m_Scale: {x: 1, y: 1} | ||
47 | + m_Offset: {x: 0, y: 0} | ||
48 | + - _OcclusionMap: | ||
49 | + m_Texture: {fileID: 0} | ||
50 | + m_Scale: {x: 1, y: 1} | ||
51 | + m_Offset: {x: 0, y: 0} | ||
52 | + - _ParallaxMap: | ||
53 | + m_Texture: {fileID: 0} | ||
54 | + m_Scale: {x: 1, y: 1} | ||
55 | + m_Offset: {x: 0, y: 0} | ||
56 | + m_Floats: | ||
57 | + - _BumpScale: 1 | ||
58 | + - _Cutoff: 0.5 | ||
59 | + - _DetailNormalMapScale: 1 | ||
60 | + - _DstBlend: 0 | ||
61 | + - _GlossMapScale: 1 | ||
62 | + - _Glossiness: 0.5 | ||
63 | + - _GlossyReflections: 1 | ||
64 | + - _Metallic: 0 | ||
65 | + - _Mode: 0 | ||
66 | + - _OcclusionStrength: 1 | ||
67 | + - _Parallax: 0.02 | ||
68 | + - _SmoothnessTextureChannel: 0 | ||
69 | + - _SpecularHighlights: 1 | ||
70 | + - _SrcBlend: 1 | ||
71 | + - _UVSec: 0 | ||
72 | + - _ZWrite: 1 | ||
73 | + m_Colors: | ||
74 | + - _Color: {r: 1, g: 0.058823526, b: 0.42880338, a: 1} | ||
75 | + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
Assets/LeapMotion/Core/Examples/Attachment Hands/Attachment Hands Example Transform Prefab.prefab
0 → 100755
1 | +%YAML 1.1 | ||
2 | +%TAG !u! tag:unity3d.com,2011: | ||
3 | +--- !u!1001 &100100000 | ||
4 | +Prefab: | ||
5 | + m_ObjectHideFlags: 1 | ||
6 | + serializedVersion: 2 | ||
7 | + m_Modification: | ||
8 | + m_TransformParent: {fileID: 0} | ||
9 | + m_Modifications: [] | ||
10 | + m_RemovedComponents: [] | ||
11 | + m_ParentPrefab: {fileID: 0} | ||
12 | + m_RootGameObject: {fileID: 1354446095468498} | ||
13 | + m_IsPrefabParent: 1 | ||
14 | +--- !u!1 &1354446095468498 | ||
15 | +GameObject: | ||
16 | + m_ObjectHideFlags: 0 | ||
17 | + m_PrefabParentObject: {fileID: 0} | ||
18 | + m_PrefabInternal: {fileID: 100100000} | ||
19 | + serializedVersion: 5 | ||
20 | + m_Component: | ||
21 | + - component: {fileID: 4742774030164970} | ||
22 | + m_Layer: 0 | ||
23 | + m_Name: Attachment Hands Example Transform Prefab | ||
24 | + m_TagString: Untagged | ||
25 | + m_Icon: {fileID: 0} | ||
26 | + m_NavMeshLayer: 0 | ||
27 | + m_StaticEditorFlags: 0 | ||
28 | + m_IsActive: 1 | ||
29 | +--- !u!1 &1531365716100390 | ||
30 | +GameObject: | ||
31 | + m_ObjectHideFlags: 0 | ||
32 | + m_PrefabParentObject: {fileID: 0} | ||
33 | + m_PrefabInternal: {fileID: 100100000} | ||
34 | + serializedVersion: 5 | ||
35 | + m_Component: | ||
36 | + - component: {fileID: 4471079068341904} | ||
37 | + - component: {fileID: 33258764987043748} | ||
38 | + - component: {fileID: 23068812418196360} | ||
39 | + m_Layer: 0 | ||
40 | + m_Name: Capsule (1) | ||
41 | + m_TagString: Untagged | ||
42 | + m_Icon: {fileID: 0} | ||
43 | + m_NavMeshLayer: 0 | ||
44 | + m_StaticEditorFlags: 0 | ||
45 | + m_IsActive: 1 | ||
46 | +--- !u!1 &1663003037467920 | ||
47 | +GameObject: | ||
48 | + m_ObjectHideFlags: 0 | ||
49 | + m_PrefabParentObject: {fileID: 0} | ||
50 | + m_PrefabInternal: {fileID: 100100000} | ||
51 | + serializedVersion: 5 | ||
52 | + m_Component: | ||
53 | + - component: {fileID: 4291965287335194} | ||
54 | + - component: {fileID: 33102402002948822} | ||
55 | + - component: {fileID: 23281748798793066} | ||
56 | + m_Layer: 0 | ||
57 | + m_Name: Capsule | ||
58 | + m_TagString: Untagged | ||
59 | + m_Icon: {fileID: 0} | ||
60 | + m_NavMeshLayer: 0 | ||
61 | + m_StaticEditorFlags: 0 | ||
62 | + m_IsActive: 1 | ||
63 | +--- !u!1 &1944279291534800 | ||
64 | +GameObject: | ||
65 | + m_ObjectHideFlags: 0 | ||
66 | + m_PrefabParentObject: {fileID: 0} | ||
67 | + m_PrefabInternal: {fileID: 100100000} | ||
68 | + serializedVersion: 5 | ||
69 | + m_Component: | ||
70 | + - component: {fileID: 4544740298448378} | ||
71 | + - component: {fileID: 33108316112102534} | ||
72 | + - component: {fileID: 23598185842902946} | ||
73 | + m_Layer: 0 | ||
74 | + m_Name: Capsule (2) | ||
75 | + m_TagString: Untagged | ||
76 | + m_Icon: {fileID: 0} | ||
77 | + m_NavMeshLayer: 0 | ||
78 | + m_StaticEditorFlags: 0 | ||
79 | + m_IsActive: 1 | ||
80 | +--- !u!4 &4291965287335194 | ||
81 | +Transform: | ||
82 | + m_ObjectHideFlags: 1 | ||
83 | + m_PrefabParentObject: {fileID: 0} | ||
84 | + m_PrefabInternal: {fileID: 100100000} | ||
85 | + m_GameObject: {fileID: 1663003037467920} | ||
86 | + m_LocalRotation: {x: 0.7071065, y: -0, z: -0, w: 0.7071071} | ||
87 | + m_LocalPosition: {x: 0.000000007450581, y: -0, z: 0.0104} | ||
88 | + m_LocalScale: {x: -0.005102402, y: 0.015, z: -0.0051024} | ||
89 | + m_Children: [] | ||
90 | + m_Father: {fileID: 4742774030164970} | ||
91 | + m_RootOrder: 0 | ||
92 | + m_LocalEulerAnglesHint: {x: 90.00001, y: 0, z: 0} | ||
93 | +--- !u!4 &4471079068341904 | ||
94 | +Transform: | ||
95 | + m_ObjectHideFlags: 1 | ||
96 | + m_PrefabParentObject: {fileID: 0} | ||
97 | + m_PrefabInternal: {fileID: 100100000} | ||
98 | + m_GameObject: {fileID: 1531365716100390} | ||
99 | + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | ||
100 | + m_LocalPosition: {x: 0, y: 0.0095, z: 0} | ||
101 | + m_LocalScale: {x: -0.0053297738, y: 0.015, z: -0.0053297738} | ||
102 | + m_Children: [] | ||
103 | + m_Father: {fileID: 4742774030164970} | ||
104 | + m_RootOrder: 1 | ||
105 | + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||
106 | +--- !u!4 &4544740298448378 | ||
107 | +Transform: | ||
108 | + m_ObjectHideFlags: 1 | ||
109 | + m_PrefabParentObject: {fileID: 0} | ||
110 | + m_PrefabInternal: {fileID: 100100000} | ||
111 | + m_GameObject: {fileID: 1944279291534800} | ||
112 | + m_LocalRotation: {x: -0, y: -0, z: -0.70710677, w: 0.7071068} | ||
113 | + m_LocalPosition: {x: 0.0091, y: 0, z: 0} | ||
114 | + m_LocalScale: {x: -0.0053267055, y: 0.015, z: -0.0053267055} | ||
115 | + m_Children: [] | ||
116 | + m_Father: {fileID: 4742774030164970} | ||
117 | + m_RootOrder: 2 | ||
118 | + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90.00001} | ||
119 | +--- !u!4 &4742774030164970 | ||
120 | +Transform: | ||
121 | + m_ObjectHideFlags: 1 | ||
122 | + m_PrefabParentObject: {fileID: 0} | ||
123 | + m_PrefabInternal: {fileID: 100100000} | ||
124 | + m_GameObject: {fileID: 1354446095468498} | ||
125 | + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | ||
126 | + m_LocalPosition: {x: 0, y: 0, z: 0} | ||
127 | + m_LocalScale: {x: 0.6588137, y: 0.65881366, z: 0.65881366} | ||
128 | + m_Children: | ||
129 | + - {fileID: 4291965287335194} | ||
130 | + - {fileID: 4471079068341904} | ||
131 | + - {fileID: 4544740298448378} | ||
132 | + m_Father: {fileID: 0} | ||
133 | + m_RootOrder: 0 | ||
134 | + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||
135 | +--- !u!23 &23068812418196360 | ||
136 | +MeshRenderer: | ||
137 | + m_ObjectHideFlags: 1 | ||
138 | + m_PrefabParentObject: {fileID: 0} | ||
139 | + m_PrefabInternal: {fileID: 100100000} | ||
140 | + m_GameObject: {fileID: 1531365716100390} | ||
141 | + m_Enabled: 1 | ||
142 | + m_CastShadows: 1 | ||
143 | + m_ReceiveShadows: 1 | ||
144 | + m_DynamicOccludee: 1 | ||
145 | + m_MotionVectors: 1 | ||
146 | + m_LightProbeUsage: 1 | ||
147 | + m_ReflectionProbeUsage: 1 | ||
148 | + m_Materials: | ||
149 | + - {fileID: 2100000, guid: 81f6d387b9d5c994d9e291af97c84648, type: 2} | ||
150 | + m_StaticBatchInfo: | ||
151 | + firstSubMesh: 0 | ||
152 | + subMeshCount: 0 | ||
153 | + m_StaticBatchRoot: {fileID: 0} | ||
154 | + m_ProbeAnchor: {fileID: 0} | ||
155 | + m_LightProbeVolumeOverride: {fileID: 0} | ||
156 | + m_ScaleInLightmap: 1 | ||
157 | + m_PreserveUVs: 1 | ||
158 | + m_IgnoreNormalsForChartDetection: 0 | ||
159 | + m_ImportantGI: 0 | ||
160 | + m_StitchLightmapSeams: 0 | ||
161 | + m_SelectedEditorRenderState: 3 | ||
162 | + m_MinimumChartSize: 4 | ||
163 | + m_AutoUVMaxDistance: 0.5 | ||
164 | + m_AutoUVMaxAngle: 89 | ||
165 | + m_LightmapParameters: {fileID: 0} | ||
166 | + m_SortingLayerID: 0 | ||
167 | + m_SortingLayer: 0 | ||
168 | + m_SortingOrder: 0 | ||
169 | +--- !u!23 &23281748798793066 | ||
170 | +MeshRenderer: | ||
171 | + m_ObjectHideFlags: 1 | ||
172 | + m_PrefabParentObject: {fileID: 0} | ||
173 | + m_PrefabInternal: {fileID: 100100000} | ||
174 | + m_GameObject: {fileID: 1663003037467920} | ||
175 | + m_Enabled: 1 | ||
176 | + m_CastShadows: 1 | ||
177 | + m_ReceiveShadows: 1 | ||
178 | + m_DynamicOccludee: 1 | ||
179 | + m_MotionVectors: 1 | ||
180 | + m_LightProbeUsage: 1 | ||
181 | + m_ReflectionProbeUsage: 1 | ||
182 | + m_Materials: | ||
183 | + - {fileID: 2100000, guid: 67b66d4eb50ed684d94eb00bc04709d2, type: 2} | ||
184 | + m_StaticBatchInfo: | ||
185 | + firstSubMesh: 0 | ||
186 | + subMeshCount: 0 | ||
187 | + m_StaticBatchRoot: {fileID: 0} | ||
188 | + m_ProbeAnchor: {fileID: 0} | ||
189 | + m_LightProbeVolumeOverride: {fileID: 0} | ||
190 | + m_ScaleInLightmap: 1 | ||
191 | + m_PreserveUVs: 1 | ||
192 | + m_IgnoreNormalsForChartDetection: 0 | ||
193 | + m_ImportantGI: 0 | ||
194 | + m_StitchLightmapSeams: 0 | ||
195 | + m_SelectedEditorRenderState: 3 | ||
196 | + m_MinimumChartSize: 4 | ||
197 | + m_AutoUVMaxDistance: 0.5 | ||
198 | + m_AutoUVMaxAngle: 89 | ||
199 | + m_LightmapParameters: {fileID: 0} | ||
200 | + m_SortingLayerID: 0 | ||
201 | + m_SortingLayer: 0 | ||
202 | + m_SortingOrder: 0 | ||
203 | +--- !u!23 &23598185842902946 | ||
204 | +MeshRenderer: | ||
205 | + m_ObjectHideFlags: 1 | ||
206 | + m_PrefabParentObject: {fileID: 0} | ||
207 | + m_PrefabInternal: {fileID: 100100000} | ||
208 | + m_GameObject: {fileID: 1944279291534800} | ||
209 | + m_Enabled: 1 | ||
210 | + m_CastShadows: 1 | ||
211 | + m_ReceiveShadows: 1 | ||
212 | + m_DynamicOccludee: 1 | ||
213 | + m_MotionVectors: 1 | ||
214 | + m_LightProbeUsage: 1 | ||
215 | + m_ReflectionProbeUsage: 1 | ||
216 | + m_Materials: | ||
217 | + - {fileID: 2100000, guid: 113742fcb5ec3254e96c40315b70f248, type: 2} | ||
218 | + m_StaticBatchInfo: | ||
219 | + firstSubMesh: 0 | ||
220 | + subMeshCount: 0 | ||
221 | + m_StaticBatchRoot: {fileID: 0} | ||
222 | + m_ProbeAnchor: {fileID: 0} | ||
223 | + m_LightProbeVolumeOverride: {fileID: 0} | ||
224 | + m_ScaleInLightmap: 1 | ||
225 | + m_PreserveUVs: 1 | ||
226 | + m_IgnoreNormalsForChartDetection: 0 | ||
227 | + m_ImportantGI: 0 | ||
228 | + m_StitchLightmapSeams: 0 | ||
229 | + m_SelectedEditorRenderState: 3 | ||
230 | + m_MinimumChartSize: 4 | ||
231 | + m_AutoUVMaxDistance: 0.5 | ||
232 | + m_AutoUVMaxAngle: 89 | ||
233 | + m_LightmapParameters: {fileID: 0} | ||
234 | + m_SortingLayerID: 0 | ||
235 | + m_SortingLayer: 0 | ||
236 | + m_SortingOrder: 0 | ||
237 | +--- !u!33 &33102402002948822 | ||
238 | +MeshFilter: | ||
239 | + m_ObjectHideFlags: 1 | ||
240 | + m_PrefabParentObject: {fileID: 0} | ||
241 | + m_PrefabInternal: {fileID: 100100000} | ||
242 | + m_GameObject: {fileID: 1663003037467920} | ||
243 | + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} | ||
244 | +--- !u!33 &33108316112102534 | ||
245 | +MeshFilter: | ||
246 | + m_ObjectHideFlags: 1 | ||
247 | + m_PrefabParentObject: {fileID: 0} | ||
248 | + m_PrefabInternal: {fileID: 100100000} | ||
249 | + m_GameObject: {fileID: 1944279291534800} | ||
250 | + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} | ||
251 | +--- !u!33 &33258764987043748 | ||
252 | +MeshFilter: | ||
253 | + m_ObjectHideFlags: 1 | ||
254 | + m_PrefabParentObject: {fileID: 0} | ||
255 | + m_PrefabInternal: {fileID: 100100000} | ||
256 | + m_GameObject: {fileID: 1531365716100390} | ||
257 | + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} |
This diff could not be displayed because it is too large.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff could not be displayed because it is too large.
This diff is collapsed. Click to expand it.
This diff could not be displayed because it is too large.
Assets/LeapMotion/Core/Gizmos.meta
0 → 100755

33 KB
1 | +fileFormatVersion: 2 | ||
2 | +guid: 8e191cfd76525421fa90723c1a520a70 | ||
3 | +TextureImporter: | ||
4 | + fileIDToRecycleName: {} | ||
5 | + serializedVersion: 2 | ||
6 | + mipmaps: | ||
7 | + mipMapMode: 0 | ||
8 | + enableMipMap: 1 | ||
9 | + linearTexture: 0 | ||
10 | + correctGamma: 0 | ||
11 | + fadeOut: 0 | ||
12 | + borderMipMap: 0 | ||
13 | + mipMapFadeDistanceStart: 1 | ||
14 | + mipMapFadeDistanceEnd: 3 | ||
15 | + bumpmap: | ||
16 | + convertToNormalMap: 0 | ||
17 | + externalNormalMap: 0 | ||
18 | + heightScale: .25 | ||
19 | + normalMapFilter: 0 | ||
20 | + isReadable: 0 | ||
21 | + grayScaleToAlpha: 0 | ||
22 | + generateCubemap: 0 | ||
23 | + seamlessCubemap: 0 | ||
24 | + textureFormat: -1 | ||
25 | + maxTextureSize: 4096 | ||
26 | + textureSettings: | ||
27 | + filterMode: -1 | ||
28 | + aniso: -1 | ||
29 | + mipBias: -1 | ||
30 | + wrapMode: -1 | ||
31 | + nPOTScale: 1 | ||
32 | + lightmap: 0 | ||
33 | + compressionQuality: 50 | ||
34 | + spriteMode: 0 | ||
35 | + spriteExtrude: 1 | ||
36 | + spriteMeshType: 1 | ||
37 | + alignment: 0 | ||
38 | + spritePivot: {x: .5, y: .5} | ||
39 | + spriteBorder: {x: 0, y: 0, z: 0, w: 0} | ||
40 | + spritePixelsToUnits: 100 | ||
41 | + alphaIsTransparency: 1 | ||
42 | + textureType: -1 | ||
43 | + buildTargetSettings: [] | ||
44 | + spriteSheet: | ||
45 | + sprites: [] | ||
46 | + spritePackingTag: | ||
47 | + userData: |
Assets/LeapMotion/Core/Materials.meta
0 → 100755
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_PrefabParentObject: {fileID: 0} | ||
8 | + m_PrefabInternal: {fileID: 0} | ||
9 | + m_Name: Background | ||
10 | + m_Shader: {fileID: 4800000, guid: a944a7b9f5c8740469de79e2e07b4437, type: 3} | ||
11 | + m_ShaderKeywords: | ||
12 | + m_LightmapFlags: 5 | ||
13 | + m_CustomRenderQueue: -1 | ||
14 | + stringTagMap: {} | ||
15 | + m_SavedProperties: | ||
16 | + serializedVersion: 2 | ||
17 | + m_TexEnvs: {} | ||
18 | + m_Floats: {} | ||
19 | + m_Colors: {} |
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_PrefabParentObject: {fileID: 0} | ||
8 | + m_PrefabInternal: {fileID: 0} | ||
9 | + m_Name: Foreground | ||
10 | + m_Shader: {fileID: 4800000, guid: 4a2714c8f776648479c759c998cdbf16, type: 3} | ||
11 | + m_ShaderKeywords: | ||
12 | + m_LightmapFlags: 5 | ||
13 | + m_CustomRenderQueue: -1 | ||
14 | + stringTagMap: {} | ||
15 | + m_SavedProperties: | ||
16 | + serializedVersion: 2 | ||
17 | + m_TexEnvs: | ||
18 | + data: | ||
19 | + first: | ||
20 | + name: _MainTex | ||
21 | + second: | ||
22 | + m_Texture: {fileID: 0} | ||
23 | + m_Scale: {x: 1, y: 1} | ||
24 | + m_Offset: {x: 0, y: 0} | ||
25 | + data: | ||
26 | + first: | ||
27 | + name: _BumpMap | ||
28 | + second: | ||
29 | + m_Texture: {fileID: 0} | ||
30 | + m_Scale: {x: 1, y: 1} | ||
31 | + m_Offset: {x: 0, y: 0} | ||
32 | + data: | ||
33 | + first: | ||
34 | + name: _DetailNormalMap | ||
35 | + second: | ||
36 | + m_Texture: {fileID: 0} | ||
37 | + m_Scale: {x: 1, y: 1} | ||
38 | + m_Offset: {x: 0, y: 0} | ||
39 | + data: | ||
40 | + first: | ||
41 | + name: _ParallaxMap | ||
42 | + second: | ||
43 | + m_Texture: {fileID: 0} | ||
44 | + m_Scale: {x: 1, y: 1} | ||
45 | + m_Offset: {x: 0, y: 0} | ||
46 | + data: | ||
47 | + first: | ||
48 | + name: _OcclusionMap | ||
49 | + second: | ||
50 | + m_Texture: {fileID: 0} | ||
51 | + m_Scale: {x: 1, y: 1} | ||
52 | + m_Offset: {x: 0, y: 0} | ||
53 | + data: | ||
54 | + first: | ||
55 | + name: _EmissionMap | ||
56 | + second: | ||
57 | + m_Texture: {fileID: 0} | ||
58 | + m_Scale: {x: 1, y: 1} | ||
59 | + m_Offset: {x: 0, y: 0} | ||
60 | + data: | ||
61 | + first: | ||
62 | + name: _DetailMask | ||
63 | + second: | ||
64 | + m_Texture: {fileID: 0} | ||
65 | + m_Scale: {x: 1, y: 1} | ||
66 | + m_Offset: {x: 0, y: 0} | ||
67 | + data: | ||
68 | + first: | ||
69 | + name: _DetailAlbedoMap | ||
70 | + second: | ||
71 | + m_Texture: {fileID: 0} | ||
72 | + m_Scale: {x: 1, y: 1} | ||
73 | + m_Offset: {x: 0, y: 0} | ||
74 | + data: | ||
75 | + first: | ||
76 | + name: _MetallicGlossMap | ||
77 | + second: | ||
78 | + m_Texture: {fileID: 0} | ||
79 | + m_Scale: {x: 1, y: 1} | ||
80 | + m_Offset: {x: 0, y: 0} | ||
81 | + m_Floats: | ||
82 | + data: | ||
83 | + first: | ||
84 | + name: _SrcBlend | ||
85 | + second: 1 | ||
86 | + data: | ||
87 | + first: | ||
88 | + name: _DstBlend | ||
89 | + second: 0 | ||
90 | + data: | ||
91 | + first: | ||
92 | + name: _Cutoff | ||
93 | + second: 0.5 | ||
94 | + data: | ||
95 | + first: | ||
96 | + name: _Parallax | ||
97 | + second: 0.02 | ||
98 | + data: | ||
99 | + first: | ||
100 | + name: _ZWrite | ||
101 | + second: 1 | ||
102 | + data: | ||
103 | + first: | ||
104 | + name: _Glossiness | ||
105 | + second: 0.5 | ||
106 | + data: | ||
107 | + first: | ||
108 | + name: _BumpScale | ||
109 | + second: 1 | ||
110 | + data: | ||
111 | + first: | ||
112 | + name: _OcclusionStrength | ||
113 | + second: 1 | ||
114 | + data: | ||
115 | + first: | ||
116 | + name: _DetailNormalMapScale | ||
117 | + second: 1 | ||
118 | + data: | ||
119 | + first: | ||
120 | + name: _UVSec | ||
121 | + second: 0 | ||
122 | + data: | ||
123 | + first: | ||
124 | + name: _Mode | ||
125 | + second: 0 | ||
126 | + data: | ||
127 | + first: | ||
128 | + name: _Metallic | ||
129 | + second: 0 | ||
130 | + data: | ||
131 | + first: | ||
132 | + name: _EmissionScaleUI | ||
133 | + second: 0 | ||
134 | + m_Colors: | ||
135 | + data: | ||
136 | + first: | ||
137 | + name: _EmissionColor | ||
138 | + second: {r: 0, g: 0, b: 0, a: 1} | ||
139 | + data: | ||
140 | + first: | ||
141 | + name: _Color | ||
142 | + second: {r: 1, g: 1, b: 1, a: 1} | ||
143 | + data: | ||
144 | + first: | ||
145 | + name: _EmissionColorUI | ||
146 | + second: {r: 1, g: 1, b: 1, a: 1} |
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_PrefabParentObject: {fileID: 0} | ||
8 | + m_PrefabInternal: {fileID: 0} | ||
9 | + m_Name: ThresholdOverlay | ||
10 | + m_Shader: {fileID: 4800000, guid: 8e5b00b7c29383f48b52edad41699d70, type: 3} | ||
11 | + m_ShaderKeywords: | ||
12 | + m_LightmapFlags: 5 | ||
13 | + m_CustomRenderQueue: -1 | ||
14 | + stringTagMap: {} | ||
15 | + m_SavedProperties: | ||
16 | + serializedVersion: 2 | ||
17 | + m_TexEnvs: | ||
18 | + data: | ||
19 | + first: | ||
20 | + name: _MainTex | ||
21 | + second: | ||
22 | + m_Texture: {fileID: 0} | ||
23 | + m_Scale: {x: 1, y: 1} | ||
24 | + m_Offset: {x: 0, y: 0} | ||
25 | + data: | ||
26 | + first: | ||
27 | + name: _BumpMap | ||
28 | + second: | ||
29 | + m_Texture: {fileID: 0} | ||
30 | + m_Scale: {x: 1, y: 1} | ||
31 | + m_Offset: {x: 0, y: 0} | ||
32 | + data: | ||
33 | + first: | ||
34 | + name: _DetailNormalMap | ||
35 | + second: | ||
36 | + m_Texture: {fileID: 0} | ||
37 | + m_Scale: {x: 1, y: 1} | ||
38 | + m_Offset: {x: 0, y: 0} | ||
39 | + data: | ||
40 | + first: | ||
41 | + name: _ParallaxMap | ||
42 | + second: | ||
43 | + m_Texture: {fileID: 0} | ||
44 | + m_Scale: {x: 1, y: 1} | ||
45 | + m_Offset: {x: 0, y: 0} | ||
46 | + data: | ||
47 | + first: | ||
48 | + name: _OcclusionMap | ||
49 | + second: | ||
50 | + m_Texture: {fileID: 0} | ||
51 | + m_Scale: {x: 1, y: 1} | ||
52 | + m_Offset: {x: 0, y: 0} | ||
53 | + data: | ||
54 | + first: | ||
55 | + name: _EmissionMap | ||
56 | + second: | ||
57 | + m_Texture: {fileID: 0} | ||
58 | + m_Scale: {x: 1, y: 1} | ||
59 | + m_Offset: {x: 0, y: 0} | ||
60 | + data: | ||
61 | + first: | ||
62 | + name: _DetailMask | ||
63 | + second: | ||
64 | + m_Texture: {fileID: 0} | ||
65 | + m_Scale: {x: 1, y: 1} | ||
66 | + m_Offset: {x: 0, y: 0} | ||
67 | + data: | ||
68 | + first: | ||
69 | + name: _DetailAlbedoMap | ||
70 | + second: | ||
71 | + m_Texture: {fileID: 0} | ||
72 | + m_Scale: {x: 1, y: 1} | ||
73 | + m_Offset: {x: 0, y: 0} | ||
74 | + data: | ||
75 | + first: | ||
76 | + name: _MetallicGlossMap | ||
77 | + second: | ||
78 | + m_Texture: {fileID: 0} | ||
79 | + m_Scale: {x: 1, y: 1} | ||
80 | + m_Offset: {x: 0, y: 0} | ||
81 | + m_Floats: | ||
82 | + data: | ||
83 | + first: | ||
84 | + name: _SrcBlend | ||
85 | + second: 1 | ||
86 | + data: | ||
87 | + first: | ||
88 | + name: _DstBlend | ||
89 | + second: 0 | ||
90 | + data: | ||
91 | + first: | ||
92 | + name: _Cutoff | ||
93 | + second: 0.5 | ||
94 | + data: | ||
95 | + first: | ||
96 | + name: _Parallax | ||
97 | + second: 0.02 | ||
98 | + data: | ||
99 | + first: | ||
100 | + name: _ZWrite | ||
101 | + second: 1 | ||
102 | + data: | ||
103 | + first: | ||
104 | + name: _Glossiness | ||
105 | + second: 0.5 | ||
106 | + data: | ||
107 | + first: | ||
108 | + name: _BumpScale | ||
109 | + second: 1 | ||
110 | + data: | ||
111 | + first: | ||
112 | + name: _OcclusionStrength | ||
113 | + second: 1 | ||
114 | + data: | ||
115 | + first: | ||
116 | + name: _DetailNormalMapScale | ||
117 | + second: 1 | ||
118 | + data: | ||
119 | + first: | ||
120 | + name: _UVSec | ||
121 | + second: 0 | ||
122 | + data: | ||
123 | + first: | ||
124 | + name: _Mode | ||
125 | + second: 0 | ||
126 | + data: | ||
127 | + first: | ||
128 | + name: _Metallic | ||
129 | + second: 0 | ||
130 | + data: | ||
131 | + first: | ||
132 | + name: _EmissionScaleUI | ||
133 | + second: 0 | ||
134 | + data: | ||
135 | + first: | ||
136 | + name: _Fade | ||
137 | + second: 0.5 | ||
138 | + data: | ||
139 | + first: | ||
140 | + name: _Min | ||
141 | + second: 0.2 | ||
142 | + data: | ||
143 | + first: | ||
144 | + name: _Max | ||
145 | + second: 0.3 | ||
146 | + m_Colors: | ||
147 | + data: | ||
148 | + first: | ||
149 | + name: _EmissionColor | ||
150 | + second: {r: 0, g: 0, b: 0, a: 1} | ||
151 | + data: | ||
152 | + first: | ||
153 | + name: _Color | ||
154 | + second: {r: 1, g: 1, b: 1, a: 1} | ||
155 | + data: | ||
156 | + first: | ||
157 | + name: _EmissionColorUI | ||
158 | + second: {r: 1, g: 1, b: 1, a: 1} |
Assets/LeapMotion/Core/Models.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff could not be displayed because it is too large.
This diff is collapsed. Click to expand it.
This diff could not be displayed because it is too large.
This diff is collapsed. Click to expand it.
This diff could not be displayed because it is too large.
This diff is collapsed. Click to expand it.
No preview for this file type
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Models/Materials.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
No preview for this file type
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Plugins.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
No preview for this file type
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
No preview for this file type
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Plugins/x86.meta
0 → 100755
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Plugins/x86/LeapC.dll
0 → 100755
No preview for this file type
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Plugins/x86_64.meta
0 → 100755
This diff is collapsed. Click to expand it.
No preview for this file type
This diff is collapsed. Click to expand it.
No preview for this file type
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Prefabs.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Resources.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Animation/Tween/Internal/Interpolators/InterpolatorBases.cs
0 → 100755
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Animation/Tween/Internal/Interpolators/InterpolatorBases.cs.meta
0 → 100755
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Animation/Tween/Internal/Interpolators/MaterialInterpolators.cs
0 → 100755
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Animation/Tween/Internal/Interpolators/MaterialInterpolators.cs.meta
0 → 100755
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Animation/Tween/Internal/Interpolators/TransformInterpolators.cs
0 → 100755
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Animation/Tween/Internal/Interpolators/TransformInterpolators.cs.meta
0 → 100755
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Animation/Tween/Internal/Interpolators/ValueInterpolators.cs
0 → 100755
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Animation/Tween/Internal/Interpolators/ValueInterpolators.cs.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/DataStructures/Editor/SerializableDictionaryEditor.cs.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/DataStructures/Editor/StreamingAssetPropertyDrawer.cs.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/DataStructures/Editor/StreamingFolderPropertyDrawer.cs.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/DataStructures/Editor/Tests/MultiTypedReferenceTests.cs.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/DataStructures/Editor/Tests/ProduceConsumeBufferTest.cs.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/HandPool.cs
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Hands.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Query.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Query/Zip.cs
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/RiggedHand.cs
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Space.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Testing.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Utils.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/Utils/Enum.cs
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/VR.meta
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Scripts/VR/EyeType.cs
0 → 100755
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Textures.meta
0 → 100755
This diff is collapsed. Click to expand it.

36.5 KB
This diff is collapsed. Click to expand it.

48.5 KB
This diff is collapsed. Click to expand it.

200 KB
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Version.txt
0 → 100755
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/Version.txt.meta
0 → 100755
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/readme.txt
0 → 100755
This diff is collapsed. Click to expand it.
Assets/LeapMotion/Core/readme.txt.meta
0 → 100755
This diff is collapsed. Click to expand it.
Assets/Plugins.meta
0 → 100755
This diff is collapsed. Click to expand it.
Assets/Plugins/UltrahapticsCSharp.NET40.dll
0 → 100755
No preview for this file type
This diff is collapsed. Click to expand it.
Assets/Plugins/x86_64.meta
0 → 100755
This diff is collapsed. Click to expand it.
Assets/Plugins/x86_64/Ultrahaptics.dll
0 → 100755
No preview for this file type
Assets/Plugins/x86_64/Ultrahaptics.dll.meta
0 → 100755
This diff is collapsed. Click to expand it.
Assets/Plugins/x86_64/UltrahapticsCSharp.dll
0 → 100755
No preview for this file type
This diff is collapsed. Click to expand it.
Assets/Plugins/x86_64/libusb-1.0.dll
0 → 100755
No preview for this file type
Assets/Plugins/x86_64/libusb-1.0.dll.meta
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/AudioManager.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/ClusterInputManager.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/DynamicsManager.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/EditorBuildSettings.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/EditorSettings.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/GraphicsSettings.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/InputManager.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/NavMeshAreas.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/NetworkManager.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/Physics2DSettings.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/PresetManager.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/ProjectSettings.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/ProjectVersion.txt
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/QualitySettings.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/TagManager.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/TimeManager.asset
0 → 100755
This diff is collapsed. Click to expand it.
ProjectSettings/UnityConnectSettings.asset
0 → 100755
This diff is collapsed. Click to expand it.
-
Please register or login to post a comment