SamsonGame/Assets/Sources/Lean/Touch/Documentation/Documentation.html

2594 lines
256 KiB
HTML
Raw Normal View History

2021-12-29 20:50:11 +03:00
<!DOCTYPE html>
<html style="margin: 0; padding: 0; height: 98%;" lang="en">
<head>
<title>Lean Touch - Documentation - 2.2.0</title>
<style type="text/css">
@font-face { font-family: 'gilroybold'; src: url(data:font/truetype;charset=utf-8;base64,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
@font-face { font-family: 'open_sansregular'; src: url(data:font/truetype;charset=utf-8;base64,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
@font-face { font-family: 'fira_monoregular'; src: url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQAABAAwRkZUTYJLMrwAAAE8AAAAHEdERUYE3wXYAAABWAAAAEpHUE9TuP+4/gAAAaQAAAAwR1NVQvu3HdAAAAHUAAAEMk9TLzKXrPKZAAAGCAAAAGBjbWFw+LhN5QAABmgAAAHyY3Z0IAvILZgAAAhcAAAAlmZwZ23eFNvwAAAI9AAAC5dnYXNwAAAAEAAAFIwAAAAIZ2x5Zlp7xdAAABSUAABcyGhlYWQK9ULLAABxXAAAADZoaGVhBWwCgQAAcZQAAAAkaG10eBd9TyAAAHG4AAADwmxvY2FG/l/wAAB1fAAAAfBtYXhwAmsBqwAAd2wAAAAgbmFtZVfJp7QAAHeMAAAEunBvc3T+mkKfAAB8SAAAA2twcmVwbekAoQAAf7QAAACgd2ViZrgAXDYAAIBUAAAABgAAAAEAAAAA19poUgAAAADSFGHqAAAAANhcaH8AAQAAAAwAAAA6AEIAAgAHAAEAaQABAGoAagADAGsA6AABAOkA6gACAOsA8gABAPMA8wADAPQA9gABAAQAAAACAAAAAQAAAAEAAAAAAAEAAAAKACwALgACREZMVAAObGF0bgAYAAQAAAAA//8AAAAEAAAAAP//AAAAAAAAAAEAAAAKAKYBJgACREZMVAAObGF0bgAqAAQAAAAA//8ACQAAAAEAAgADAAQABQAHAAgACQBAAApBRksgAEBBWkUgAEBDQVQgAFhDUlQgAEBLQVogAEBNT0wgAEBQTEsgAEBST00gAEBUQVQgAEBUUksgAEAAAP//AAkAAAABAAIAAwAEAAUABwAIAAkAAP//AAoAAAABAAIAAwAEAAUABgAHAAgACQAKYWFsdAA+Y2FsdABEY2FzZQBMZGxpZwBSZG5vbQBYZnJhYwBebG9jbABobnVtcgBub3JkbgB0c3VwcwB6AAAAAQAAAAAAAgALAAwAAAABAAkAAAABAAoAAAABAAQAAAADAAUABgAHAAAAAQABAAAAAQADAAAAAQAIAAAAAQACAA4AHgAmADAAOABAAEgAUABYAGIAbAB0AHwAhgCUAAEAAAABAH4ABgAAAAIAsADSAAEAAAABAOoAAQAAAAEA+AABAAAAAQECAAEAAAABAQoAAQAAAAEBDgAGAAAAAgEYATgABgAAAAIBUgF2AAEAAAABAZAABAAAAAEBqgAGAAAAAgHCAdwABgAAAAQB7AIGAiACQgABAAAAAQJWAAIAHgAMAOQAbAB8APQAbAB8APMA8gD1APYA6wDtAAEADAASACQAMgBDAEQAUgBqAMYAxwDIAO8A8AADAAAAAgAQABYAAQAcAAAAAQABAE8AAQABAHkAAQABAE8AAwAAAAIAEAAWAAEAHAAAAAEAAQAvAAEAAQB5AAEAAQAvAAIADAADAHsAdAB1AAEAAwAUABUAFgACAAoAAgDvAPAAAQACABQAFgABAAYA1wACAAEAFAAXAAAAAQAGANIAAQABABIAAgAKAAIA7wDwAAEAAgAUABYAAwABABoAAQASAAAAAQAAAA0AAQACAO8A8AABAAEA5AADAAEAGgABABIAAAABAAAADQABAAIA7wDwAAIAAQDrAO4AAAADAAEAGgABABIAAAABAAAADQABAAIAJABEAAIAAQATABwAAAADAAEAGgABABIAAAABAAAADQABAAIAMgBSAAIAAQATABwAAAACABIABgD0APMA8QDyAPUA9gABAAYAQwBqAHYAxgDHAMgAAQAaAAEACAACAAYADADqAAIATwDpAAIATAABAAEASQADAAEAFgABABIAAAABAAAADQABAAAAAQAAAAMAAQAWAAEAEgAAAAEAAAANAAEAAAABAAAAAwAAAAEAEgABABYAAQAAAA0AAQAAAAEAAAADAAEAFgABABIAAAABAAAADQABAAAAAQAAAAMAAAABABQAAgAYAB4AAQAAAA0AAQAAAAEAAQADAAEAAAADAAIAGAAeAAEAFAAAAAEAAAANAAEAAAABAAEAAwABAAAAAgASAAYAbAB8AGwAfADrAO0AAQAGACQAMgBEAFIA7wDwAAAAAwJJAZAABQAEAooCWAAAAEsCigJYAAABXgAyATwAAAILBQkFAAACAARAAAKHAgA4AQAAAAAAAAAAQ1REQgBAAA37AgMg/zgAAAQaAghgAACfAAAAAAIPArEAAAAgAAMAAAADAAAAAwAAABwAAQAAAAAA7AADAAEAAAAcAAQA0AAAADAAIAAEABAADQB+AP8BMQFTAXgCxgLaAtwgCiAUIBogHiAiICYgLyA6IEQgXyCsISIl/PsC//8AAAANACAAoAExAVIBeALGAtoC3CAAIBAgGCAcICIgJiAvIDkgRCBfIKwhIiX8+wH////1/+P/wv+R/3H/Tf4A/e397ODJ4MTgweDA4L3guuCy4KngoOCG4DrfxdrsBegAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYAAAEAAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGEAhoeJi5OYnqOipKalp6mrqqytr66wsbO1tLa4t7y7vb4AcmRlad94oXBr53ZqAIiaAHMAAGd3AAAAAABsfACouoFjbgAAAABtfeBigoWXw8TX2Nzd2dq5AMHF5Obi4+nqAHnb3gCEjIONio+QkY6VlgCUnJ2bwsbIcQAAx3oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbAFsARQBFArEAAAIPAAD/LAOn/vcCvP/1Ahr/9f8sA6f+9wBbAFsARQBFArEAAALuAg//9f8sA6f+9wK8//UC7gIa//X/LAOn/vcAWwBbAEUARQKxAAAC7QIPAAD/LAOn/vcCvP/1AwUCGv/1/ywDp/73ACECeQAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIGQgsMBQsAQmWrIoAQpDRWNFUltYISMhG4pYILBQUFghsEBZGyCwOFBYIbA4WVkgsQEKQ0VjRWFksChQWCGxAQpDRWNFILAwUFghsDBZGyCwwFBYIGYgiophILAKUFhgGyCwIFBYIbAKYBsgsDZQWCGwNmAbYFlZWRuwAStZWSOwAFBYZVlZLbADLCBFILAEJWFkILAFQ1BYsAUjQrAGI0IbISFZsAFgLbAELCMhIyEgZLEFYkIgsAYjQrEBCkNFY7EBCkOwA2BFY7ADKiEgsAZDIIogirABK7EwBSWwBCZRWGBQG2FSWVgjWSEgsEBTWLABKxshsEBZI7AAUFhlWS2wBSywB0MrsgACAENgQi2wBiywByNCIyCwACNCYbACYmawAWOwAWCwBSotsAcsICBFILALQ2O4BABiILAAUFiwQGBZZrABY2BEsAFgLbAILLIHCwBDRUIqIbIAAQBDYEItsAkssABDI0SyAAEAQ2BCLbAKLCAgRSCwASsjsABDsAQlYCBFiiNhIGQgsCBQWCGwABuwMFBYsCAbsEBZWSOwAFBYZVmwAyUjYUREsAFgLbALLCAgRSCwASsjsABDsAQlYCBFiiNhIGSwJFBYsAAbsEBZI7AAUFhlWbADJSNhRESwAWAtsAwsILAAI0KyCwoDRVghGyMhWSohLbANLLECAkWwZGFELbAOLLABYCAgsAxDSrAAUFggsAwjQlmwDUNKsABSWCCwDSNCWS2wDywgsBBiZrABYyC4BABjiiNhsA5DYCCKYCCwDiNCIy2wECxLVFixBGREWSSwDWUjeC2wESxLUVhLU1ixBGREWRshWSSwE2Uj
h1{ font-family: 'gilroybold'; line-height: 0%; font-size: 80px; color: #0075D0; margin: 30px; margin-left: 0px; margin-bottom: 60px; }
h2{ font-family: 'gilroybold'; font-weight: bold; line-height: 35px; vertical-align:middle; font-size: 36px; color: #0075D0; margin: 0px; }
h3{ font-family: 'gilroybold'; font-weight: bold; line-height: 22px; font-size: 22px; color: #0075D0; margin: 0px; padding-top: 40px; padding-bottom: 10px; }
h2 b { font-size:20px; vertical-align:middle; opacity:0.5; }
p{ font-family: 'open_sansregular'; font-weight: normal; line-height: normal; font-size: 15px; color: #024274; }
a{ font-family: 'open_sansregular'; font-weight: 600; line-height: normal; font-size: 15px; color: #0075D0; }
a:visited{ font-family: 'open_sansregular'; font-weight: 600; line-height: normal; font-size: 15px; color: #0075D0; }
pre{ font-family: 'fira_monoregular'; line-height: 20px; font-size: 14px; color: #000; tab-size: 4; }
.code{ background: #EDF7FF; border-radius: 5px; padding: 10px; margin: 15px; }
.tip{ background: #EDF7FF; font-family: 'open_sansregular'; line-height: 25px; border-radius: 5px; padding: 10px; color: #0075D0; font-size: 15px; border: 5px; margin: 15px; }
.warning{ background: #FFDCBC; font-family: 'open_sansregular'; line-height: 25px; border-radius: 5px; padding: 10px; color: #FD7C09; font-size: 15px; border: 5px; margin: 15px; }
.error{ background: #FFB6B6; font-family: 'open_sansregular'; line-height: 25px; border-radius: 5px; padding: 10px; color: #FF4545; font-size: 15px; border: 5px; margin: 15px; }
::-webkit-scrollbar{ width: 10px; }
::-webkit-scrollbar-track{ background: #f1f1f1; }
::-webkit-scrollbar-thumb{ background: #0075D0; }
::-webkit-scrollbar-thumb:hover{ background: #555; }
</style>
</head>
<body style="margin: 0; height: 98%;">
<div style="background-color: #0075D0; position: absolute; left: 0px; right: 0px; top: 0px; height: 20px;">
</div>
<div style="position: absolute; left: 350px; right: 0px; top: 20px; bottom: 20px; overflow-y: scroll; padding: 20px;">
<div style="padding-top: 30px; padding-bottom: 50px;">
<h2 style="font-size: 75px; color: #0075D0; text-align: center; vertical-align: middle; line-height: 50px;">Lean Touch</h2>
<br>
<h2 style="font-size: 30px; color: #0075D0; text-align: center; vertical-align: middle; line-height: 20px;">DOCUMENTATION</h2>
</div>
<div style="overflow:hidden;"><a name="GettingStarted"></a><h2>How do I get started?</h2><p>First you need to add the LeanTouch component to your scene:</p><div class="tip"><strong>METHOD 1</strong>&emsp;From your menu bar, select <strong>GameObject > Lean > Touch</strong>.</div><div class="tip"><strong>METHOD 2</strong>&emsp;Right click inside the Hierarchy window, and go to <strong>Lean > Touch</strong>.</div><div class="tip"><strong>METHOD 3</strong>&emsp;Create a new GameObject, and add the component <strong>Lean > Touch</strong>.</div><p>You should now see a new GameObject called <b>'LeanTouch'</b> with the LeanTouch component selected.</p><p>When you enter play mode, this component will automatically convert all mouse and touch input into an easy to use format.</p><p>Remember that scripts using Lean Touch only work when there is a LeanTouch component active in your scene, so make sure to add one to every scene (or carry it over with DontDestroyOnLoad).</p><div class="tip"><strong>NOTE</strong>&emsp; If you want to simulate multi finger gestures on desktop then click the <b>Add Simulator</b> button.</div><br><br></div><div style="overflow:hidden;"><a name="WithoutCode"></a><h2>How do I use Lean Touch without code?</h2><p>Lean Touch comes with many example components to do common tasks.</p><p>For example, if you want to spawn a prefab when a finger touches the screen, you can begin by making a new GameObject, and adding the <b>LeanSpawn</b> component.</p><p>Inside this component, you'll see it has the <b>Prefab</b> setting. You can browse or drag and drop your desired prefab here.</p><p>Next, you can add the LeanFingerTap component. Inside this component, you'll see it has the <b>OnFinger</b> event.</p><p>To link this event to the prefab spawning, you need to click the plus <b>+</b> button below where it says <b>List is Empty</b>, and in the bottom left box that says <b>None (Object)</b>, you need to drag and drop the LeanSpawn component you added earlier.</p><p>Next, you need to click the <b>No Function</b> dropdown, and select the <b>LeanSpawn > Dynamic LeanFinger > Spawn</b> function. You can now hit play, and tapping a finger (or clicking) on the screen will spawn your prefab.</p><p>There are many other components that work in similar ways that can be connected together using only the editor. To find out how these work, I recommend you browse through the demo scenes and look at the GameObjects to see what's going on.</p><br><br></div><div style="overflow:hidden;"><a name="WithCode"></a><h2>How do I use Lean Touch with C#?</h2><p>You can access all finger data from the <b>Lean.Touch.LeanTouch</b> class.</p><p>The easiest way to begin is by hooking into the static events it exposes.</p><p>For example, if you want to perform an action when a finger touches the screen, you can hook into the <b>Lean.Touch.LeanTouch.OnFingerDown</b> event. This event gets called every time a finger begins touching the screen, and gets passed a <b>Lean.Touch.LeanFinger</b> instance as a parameter. It's recommended you hook into these events from <b>OnEnable</b>, and unhook from <b>OnDisable</b>.</p><div class="code"><pre>public class MyCoolScript : MonoBehaviour<br>{<br> void OnEnable()<br> {<br> Lean.Touch.LeanTouch.OnFingerTap += HandleFingerTap;<br> }<br><br> void OnDisable()<br> {<br> Lean.Touch.LeanTouch.OnFingerTap -= HandleFingerTap;<br> }<br><br> void HandleFingerTap(Lean.Touch.LeanFinger finger)<br> {<br> Debug.Log("You just tapped the screen with finger " + finger.Index + " at " + finger.ScreenPosition);<br> }<br>}<br></pre></div><p>To see what other events are available, I recommend you read the <b>LeanTouch.cs</b>, script and its comments.</p><p>Another way to access finger data is to poll it directly from the <b>Lean.Touch.LeanTouch.Fingers</b> static list. This list stores all fingers that are currently touching the screen, and you can use this data at any time (e.g. Update) to quickly handle input.</p><div class="code"><pre>public class MyCoolScript : MonoBehaviour<br>{<br> void Update()<br> {<br> var fingers = Lean
<br><br>
<br><br>
<h1>Assets</h1>
<p>Here's a list of all my other assets, please check them out!</p><p>You can also view this list on <a href="http://CarlosWilkes.com/Get/Assets" target="_blank">my Asset Store page</a>.</p>
<div style="overflow:hidden;">
<div style="float: left; padding-right: 20px;"><a href="https://CarlosWilkes.com/Get/LeanGUI" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/72138/icon" alt="Lean GUI" width="128" height="128" /></a></div>
<a name="LeanGUI"></a><h2>Lean GUI</h2>
<p>Lean GUI is a colllection of components that extend Unity's GUI system, allowing you to rapidly enhance the user experience (UX) of your game's UI.</p>
</div>
<br><div style="overflow:hidden;">
<div style="float: left; padding-right: 20px;"><a href="https://CarlosWilkes.com/Get/LeanTransition" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/144107/icon" alt="Lean Transition" width="128" height="128" /></a></div>
<a name="LeanTransition"></a><h2>Lean Transition</h2>
<p>Quickly polish your games using Lean Transition. This asset allows you to easily tween or animate almost anything in your game, making it transition smoothly.</p>
</div>
<br><div style="overflow:hidden;">
<div style="float: left; padding-right: 20px;"><a href="https://CarlosWilkes.com/Get/PaintIn3D" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/26286/icon" alt="Paint in 3D" width="128" height="128" /></a></div>
<a name="PaintIn3D"></a><h2>Paint in 3D</h2>
<p>Paint all your objects using <strong>Paint in 3D</strong> - both in game, and in editor. All features are optimized with GPU accelerated texture painting, so you can enjoy consistent performance, even if you paint your objects one million times!</p>
</div>
<br><div style="overflow:hidden;">
<div style="float: left; padding-right: 20px;"><a href="https://CarlosWilkes.com/Get/LeanPool" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/35666/icon" alt="Lean Pool" width="128" height="128" /></a></div>
<a name="LeanPool"></a><h2>Lean Pool</h2>
<p>Quickly optimize the performance of your games using Lean Pool. Within minutes you can use this lightweight asset to preload, recycle, and limit the spawning of your prefabs.</p>
</div>
<br><div style="overflow:hidden;">
<div style="float: left; padding-right: 20px;"><a href="https://CarlosWilkes.com/Get/SpaceGraphicsToolkit" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/4160/icon" alt="Space Graphics Toolkit" width="128" height="128" /></a></div>
<a name="SpaceGraphicsToolkit"></a><h2>Space Graphics Toolkit</h2>
<p>Quickly make the space scene of your dreams using Space Graphics Toolkit. This huge collection of space effects can be customized and combined in any way you like, allowing you to quickly make realistic or fantasy worlds. Each feature has been heavily optimized to run on almost any device and platform.</p>
</div>
<br><div style="overflow:hidden;">
<div style="float: left; padding-right: 20px;"><a href="https://CarlosWilkes.com/Get/LeanTouch" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/30111/icon" alt="Lean Touch" width="128" height="128" /></a></div>
<a name="LeanTouch"></a><h2>Lean Touch</h2>
<p>Rapidly develop your game with consistent input across desktop & mobile using Lean Touch. This lightweight asset comes with many modular components, allowing you to customize them to your exact project needs!</p>
</div>
<br><div style="overflow:hidden;">
<div style="float: left; padding-right: 20px;"><a href="https://CarlosWilkes.com/Get/LeanLocalization" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/28504/icon" alt="Lean Localization" width="128" height="128" /></a></div>
<a name="LeanLocalization"></a><h2>Lean Localization</h2>
<p>Lean Localization is a localization library that's designed to be as simple to use as possible for both designers, and programmers.</p>
</div>
<br><div style="overflow:hidden;">
<div style="float: left; padding-right: 20px;"><a href="https://CarlosWilkes.com/Get/LeanGUIShapes" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/69366/icon" alt="Lean GUI Shapes" width="128" height="128" /></a></div>
<a name="LeanGUIShapes"></a><h2>Lean GUI Shapes</h2>
<p>Lean GUI Shapes allows you to quickly add lines, rounded boxes, polygons, and much more to your GUI!</p>
</div>
<br><div style="overflow:hidden;">
<div style="float: left; padding-right: 20px;"><a href="https://CarlosWilkes.com/Get/Destructible2D" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/18125/icon" alt="Destructible 2D" width="128" height="128" /></a></div>
<a name="Destructible2D"></a><h2>Destructible 2D</h2>
<p>Unlock the full potential of your 2D games using Destructible 2D, this asset allows you to quickly convert all your boring solid sprites into fully destructible ones!</p>
</div>
<br><div style="overflow:hidden;">
<div style="float: left; padding-right: 20px;"><a href="https://CarlosWilkes.com/Get/PlanetPack" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/124578/icon" alt="Planet Pack - Space Graphics Toolkit" width="128" height="128" /></a></div>
<a name="PlanetPack"></a><h2>Planet Pack - Space Graphics Toolkit</h2>
<p>This pack contains 26 high detail PBR planets, all finished using the powerful planet features of Space Graphics Toolkit (SGT). This is a standalone package, so SGT is not required. You can even use the included features to turn your own planets into beautiful worlds!</p>
</div>
<br><div style="overflow:hidden;">
<div style="float: left; padding-right: 20px;"><a href="https://CarlosWilkes.com/Get/LeanTouchPlus" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/72356/icon" alt="Lean Touch+" width="128" height="128" /></a></div>
<a name="LeanTouchPlus"></a><h2>Lean Touch+</h2>
<p>Lean Touch+ is an extension to the popular Lean Touch asset, adding many more example scenes.</p>
</div>
<br><div style="overflow:hidden;">
<div style="float: left; padding-right: 20px;"><a href="https://CarlosWilkes.com/Get/VolumetricAudio" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/17125/icon" alt="Volumetric Audio" width="128" height="128" /></a></div>
<a name="VolumetricAudio"></a><h2>Volumetric Audio</h2>
<p>Unity sounds only emanate from a single point source. This is great for explosions and footsteps, but quite often you need something more advanced. Volumetric Audio is an easy to use package that allows you to define boxes, spheres, capsules, paths, or meshes that sounds can emanate from.</p>
</div>
<br>
<br><br>
<br><br>
<h1>Versions</h1>
<div style="overflow:hidden;"><a name="2.2.0"></a><h2>2.2.0</h2><div class="tip"><strong>NOTE</strong>&emsp; This is a huge update. Back up your project files before installing.</div><p>Fixed <b>LeanFingerFilter</b> ignoring manually added fingers that went up.<br>Simplified organization of all demo scenes.<br>Added <b>LeanSelect.Limit</b> setting.<br>The <b>LeanSelect</b> component now stores what it selected.<br>Allowed multiple <b>LeanSelect</b> components to operate at once.<br>Added mouse hover simulated finger.<br>Moved multi finger simulation to new <b>LeanTouchSimulator</b> component.<br>Moved <b>LeanSelect.SearchType</b> to <b>ScreenQuery</b> setting.<br>Moved <b>LeanSelectable.DeselectOnUp</b> to <b>LeanSelect.DeselectWithNothing</b> setting.<br>Renamed <b>LeanSelectable.IsSelected</b> to <b>SelfSelected</b>.<br>Renamed <b>LeanSelectable.OnSelect</b> to <b>OnSelectedFinger</b>.<br>Renamed <b>LeanSelectable.OnDeselect</b> to <b>OnDeselected</b>.<br>Renamed <b>LeanSelect.AutoDeselect</b> to <b>DeselectWithNothing</b>.<br>Added <b>LeanTouch.UseTouch</b> setting.<br>Added <b>LeanTouch.UseHover</b> setting.<br>Added <b>LeanTouch.UseMouse</b> setting.<br>Added <b>LeanTouch.UseSimulator</b> setting.<br>Added <b>LeanSelectable.OnSelected</b> event.<br>Added <b>LeanSelectable.OnFirstSelected</b> event.<br>Added <b>LeanSelectable.OnLastDeselected</b> event.<br>Added <b>LeanSelect.OnNothing</b> event.<br>Renamed <b>LeanSelectable</b> to <b>LeanSelectableByFinger</b>.<br>Renamed <b>LeanSelect</b> to <b>LeanSelectByFinger</b>.<br>Combined 3D, 2D, and UI demo scenes.</p><br><br></div><div style="overflow:hidden;"><a name="2.1.8"></a><h2>2.1.8</h2><p>Added <b>LeanFingerTap.OnScreen</b> event.<br>Renamed <b>LeanFingerUp.OnPosition</b> event to <b>OnWorld</b>.<br>Added <b>LeanFingerDown.OnScreen</b> event.<br>Added <b>LeanFingerUp.OnScreen</b> event.<br>Added <b>LeanFingerOld.OnScreen</b> event.<br>Renamed <b>LeanFingerOld.OnPosition</b> event to <b>OnWorld</b>.<br>Fixed MainCamera tag error appearing in certain circumstances.<br>Added <b>LeanRoll.Clamp</b> setting.<br>Added <b>LeanRoll.ClampMin</b> setting.<br>Added <b>LeanRoll.ClampMax</b> setting.</p><br><br></div><div style="overflow:hidden;"><a name="2.1.7"></a><h2>2.1.7</h2><p>Made <b>Use/RequiredMouseButtons</b> work separately from <b>RequiredFingerCount</b>.</p><br><br></div><div style="overflow:hidden;"><a name="2.1.6"></a><h2>2.1.6</h2><p>Minor code improvements.</p><br><br></div><div style="overflow:hidden;"><a name="2.1.5"></a><h2>2.1.5</h2><p>Added <b>LeanSelect.RequiredTag</b> setting.<br>Fixed LeanTouch component error in rare scenario.</p><br><br></div><div style="overflow:hidden;"><a name="2.1.4"></a><h2>2.1.4</h2><p>Fixed rare scenario where fingers could remain pressed after release.</p><br><br></div><div style="overflow:hidden;"><a name="2.1.3"></a><h2>2.1.3</h2><p>Fixed bug with <b>LeanSelectable</b> inspector.</p><br><br></div><div style="overflow:hidden;"><a name="2.1.2"></a><h2>2.1.2</h2><p>Moved main build to Unity <b>2018.4.13f1</b>.<br>Added support for new input system.<br>Added <b>Intersect2D</b> selection mode to <b>LeanSelect</b> component.<br>Reverted <b>LeanSelect</b> component's <b>Overlap2D</b> selection implementation.<br>Extended <b>LeanTouch.OnFingerSet</b> to also invoke on the last frame a finger touches the screen.<br>Renamed <b>LeanTouch.OnFingerSet</b> to <b>LeanTouch.OnFingerUpdate</b>.<br>Renamed <b>LeanFingerSet</b> to <b>LeanFingerUpdate</b>.<br>Moved many components to <b>Extras</b> folder.</p><br><br></div><div style="overflow:hidden;"><a name="2.1.1"></a><h2>2.1.1</h2><p>Restructured all demo scenes to be easier to use.<br>Renamed <b>LeanFingerDown.OnPosition</b> to <b>OnWorld</b>.<br>Renamed <b>LeanFingerTap.OnPosition</b> to <b>OnWorld</b>.<br>Changed <b>LeanTouch</b> default execution order to -100.<br>Changed default <b>LeanTouch.GuiLayers</b> to <b>UI</b> only.</p><br><br></div><div style="overflow:hidden;"><a name="2.1.0"></a><h2>2.1.0</h2><p>Moved main build to Unity 2018.4.0f1.<br>Updated documentation.<br>Added asmde
<br><br>
<br><br>
<h1>Components</h1>
<div style="overflow:hidden;"><a name="LeanFinger"></a><h2>LeanFinger</h2><p>This class stores information about a single touch (or simulated touch).</p><div style="padding-left:75px;"><br>
<h2>
<b style="">int</b>
<br>
<span style="">Index</span>
</h2>
<p>This is the hardware ID of the finger.</p><div class="tip"><strong>NOTE</strong>&emsp; Simulated fingers will use hardware ID -1 and -2.</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Age</span>
</h2>
<p>This tells you how long this finger has been active (or inactive) in seconds.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">Set</span>
</h2>
<p>Is this finger currently touching the screen?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">LastSet</span>
</h2>
<p>This tells you the 'Set' value of the last frame.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">Tap</span>
</h2>
<p>Did this finger just tap the screen?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">int</b>
<br>
<span style="">TapCount</span>
</h2>
<p>This tells you how many times this finger has been tapped.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">Swipe</span>
</h2>
<p>Did this finger just swipe the screen?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">Old</span>
</h2>
<p>If this finger has been touching the screen for more than TapThreshold, this will be true.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">Expired</span>
</h2>
<p>If this finger has been inactive for more than TapThreshold, this will be true.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">LastPressure</span>
</h2>
<p>This tells you the Pressure value last frame.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Pressure</span>
</h2>
<p>This tells you the current pressure of this finger (NOTE: only some devices support this).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">StartScreenPosition</span>
</h2>
<p>This tells you the 'ScreenPosition' value of this finger when it began touching the screen.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">LastScreenPosition</span>
</h2>
<p>This tells you the last screen position of the finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">ScreenPosition</span>
</h2>
<p>This tells you the current screen position of the finger in pixels, where 0,0 = bottom left.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">StartedOverGui</span>
</h2>
<p>This tells you if the current finger had 'IsOverGui' set to true when it began touching the screen.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">List&lt;LeanSnapshot&gt;</b>
<br>
<span style="">Snapshots</span>
</h2>
<p>Used to store position snapshots, enable RecordFingers in LeanTouch to use this.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IsActive</span>
</h2>
<p>This will return true if this finger is currently touching the screen.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">SnapshotDuration</span>
</h2>
<p>This will tell you how many seconds of snapshot footage is stored for this finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IsOverGui</span>
</h2>
<p>This will return true if the current finger is over any Unity GUI elements.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">Down</span>
</h2>
<p>Did this finger begin touching the screen this frame?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">Up</span>
</h2>
<p>Did the finger stop touching the screen this frame?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">LastSnapshotScreenDelta</span>
</h2>
<p>This will return how far in pixels the finger has moved since the last recorded snapshot.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">LastSnapshotScaledDelta</span>
</h2>
<p>This returns a resolution-independent 'LastSnapshotScreenDelta' value.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">ScreenDelta</span>
</h2>
<p>This will return how far in pixels the finger has moved since the last frame.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">ScaledDelta</span>
</h2>
<p>This returns a resolution-independent 'ScreenDelta' value.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">SwipeScreenDelta</span>
</h2>
<p>This tells you how far this finger has moved since it began touching the screen.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">SwipeScaledDelta</span>
</h2>
<p>This returns a resolution-independent 'SwipeScreenDelta' value.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">SmoothScreenPositionDelta</span>
</h2>
<p>This returns the screen space distance between the 0 and 1 smooth screen positions.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">GetSmoothScreenPosition</span>
<br>
<b>float t</b>
</h2>
<p>This returns a smooth point between the previous and current screen position based on a 0..1 progress value.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Ray</b>
<br>
<span style="">GetRay</span>
<br>
<b>Camera camera = null</b>
</h2>
<p>This will return the ray of the finger's current position relative to the specified camera (none/null = Main Camera).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Ray</b>
<br>
<span style="">GetStartRay</span>
<br>
<b>Camera camera = null</b>
</h2>
<p>This will return the ray of the finger's start position relative to the specified camera (none/null = Main Camera).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">GetSnapshotScreenDelta</span>
<br>
<b>float deltaTime</b>
</h2>
<p>This will tell you how far the finger has moved in the past 'deltaTime' seconds.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">GetSnapshotScaledDelta</span>
<br>
<b>float deltaTime</b>
</h2>
<p>This returns a resolution-independent 'GetSnapshotScreenDelta' value.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">GetSnapshotScreenPosition</span>
<br>
<b>float targetAge</b>
</h2>
<p>This will return the recorded position of the current finger when it was at 'targetAge'.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3</b>
<br>
<span style="">GetSnapshotWorldPosition</span>
<br>
<b>float targetAge, float distance, Camera camera = null</b>
</h2>
<p>This will return the recorded world of the current finger when it was at 'targetAge'.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetRadians</span>
<br>
<b>Vector2 referencePoint</b>
</h2>
<p>This will return the angle between the finger and the reference point, relative to the screen.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetDegrees</span>
<br>
<b>Vector2 referencePoint</b>
</h2>
<p>This will return the angle between the finger and the reference point, relative to the screen.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetLastRadians</span>
<br>
<b>Vector2 referencePoint</b>
</h2>
<p>This will return the angle between the last finger position and the reference point, relative to the screen.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetLastDegrees</span>
<br>
<b>Vector2 referencePoint</b>
</h2>
<p>This will return the angle between the last finger position and the reference point, relative to the screen.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetDeltaRadians</span>
<br>
<b>Vector2 referencePoint</b>
</h2>
<p>This will return the delta angle between the last and current finger position relative to the reference point.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetDeltaRadians</span>
<br>
<b>Vector2 referencePoint, Vector2 lastReferencePoint</b>
</h2>
<p>This will return the delta angle between the last and current finger position relative to the reference point and the last reference point.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetDeltaDegrees</span>
<br>
<b>Vector2 referencePoint</b>
</h2>
<p>This will return the delta angle between the last and current finger position relative to the reference point.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetDeltaDegrees</span>
<br>
<b>Vector2 referencePoint, Vector2 lastReferencePoint</b>
</h2>
<p>This will return the delta angle between the last and current finger position relative to the reference point and the last reference point.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetScreenDistance</span>
<br>
<b>Vector2 point</b>
</h2>
<p>This will return the distance between the finger and the reference point.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetScaledDistance</span>
<br>
<b>Vector2 point</b>
</h2>
<p>This returns a resolution-independent 'GetScreenDistance' value.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetLastScreenDistance</span>
<br>
<b>Vector2 point</b>
</h2>
<p>This will return the distance between the last finger and the reference point.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetLastScaledDistance</span>
<br>
<b>Vector2 point</b>
</h2>
<p>This returns a resolution-independent 'GetLastScreenDistance' value.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetStartScreenDistance</span>
<br>
<b>Vector2 point</b>
</h2>
<p>This will return the distance between the start finger and the reference point.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">GetStartScaledDistance</span>
<br>
<b>Vector2 point</b>
</h2>
<p>This returns a resolution-independent 'GetStartScreenDistance' value.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3</b>
<br>
<span style="">GetStartWorldPosition</span>
<br>
<b>float distance, Camera camera = null</b>
</h2>
<p>This will return the start world position of this finger based on the distance from the camera.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3</b>
<br>
<span style="">GetLastWorldPosition</span>
<br>
<b>float distance, Camera camera = null</b>
</h2>
<p>This will return the last world position of this finger based on the distance from the camera.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3</b>
<br>
<span style="">GetWorldPosition</span>
<br>
<b>float distance, Camera camera = null</b>
</h2>
<p>This will return the world position of this finger based on the distance from the camera.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3</b>
<br>
<span style="">GetWorldDelta</span>
<br>
<b>float distance, Camera camera = null</b>
</h2>
<p>This will return the change in world position of this finger based on the distance from the camera.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3</b>
<br>
<span style="">GetWorldDelta</span>
<br>
<b>float lastDistance, float distance, Camera camera = null</b>
</h2>
<p>This will return the change in world position of this finger based on the last and current distance from the camera.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">ClearSnapshots</span>
<br>
<b>int count = -1</b>
</h2>
<p>This will clear all snapshots for this finger and pool them, count = -1 for all.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RecordSnapshot</span>
<br>
<b></b>
</h2>
<p>Calling this will instantly store a snapshot of the current finger position.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanGesture"></a><h2>LeanGesture</h2><p>This class calculates gesture information (e.g. pinch) based on all fingers touching the screen, or a specified list of fingers.</p><div class="tip"><strong>NOTE</strong>&emsp; This isn't a component, so it can only be used directly from C#. Many example components make use of this class so you don't have to use code though.</div><div style="padding-left:75px;"><br>
<h2>
<b style="">static Vector2</b>
<br>
<span style="">GetScreenCenter</span>
<br>
<b></b>
</h2>
<p>Gets the average ScreenPosition of all.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Vector2</b>
<br>
<span style="">GetScreenCenter</span>
<br>
<b>List&lt;LeanFinger&gt; fingers</b>
</h2>
<p>Gets the average ScreenPosition of the specified fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetScreenCenter</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, ref Vector2 center</b>
</h2>
<p>Gets the average ScreenPosition of the specified fingers, if at least one exists.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Vector2</b>
<br>
<span style="">GetLastScreenCenter</span>
<br>
<b></b>
</h2>
<p>Gets the last average ScreenPosition of all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Vector2</b>
<br>
<span style="">GetLastScreenCenter</span>
<br>
<b>List&lt;LeanFinger&gt; fingers</b>
</h2>
<p>Gets the last average ScreenPosition of the specified fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetLastScreenCenter</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, ref Vector2 center</b>
</h2>
<p>Gets the last average ScreenPosition of the specified fingers, if at least one exists.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Vector2</b>
<br>
<span style="">GetStartScreenCenter</span>
<br>
<b></b>
</h2>
<p>Gets the start average ScreenPosition of all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Vector2</b>
<br>
<span style="">GetStartScreenCenter</span>
<br>
<b>List&lt;LeanFinger&gt; fingers</b>
</h2>
<p>Gets the start average ScreenPosition of the specified fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetStartScreenCenter</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, ref Vector2 center</b>
</h2>
<p>Gets the start average ScreenPosition of the specified fingers, if at least one exists.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Vector2</b>
<br>
<span style="">GetScreenDelta</span>
<br>
<b></b>
</h2>
<p>Gets the average ScreenDelta of all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Vector2</b>
<br>
<span style="">GetScreenDelta</span>
<br>
<b>List&lt;LeanFinger&gt; fingers</b>
</h2>
<p>Gets the average ScreenDelta of the specified fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetScreenDelta</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, ref Vector2 delta</b>
</h2>
<p>Gets the average ScreenDelta of the specified fingers, if at least one exists.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Vector2</b>
<br>
<span style="">GetScaledDelta</span>
<br>
<b></b>
</h2>
<p>This returns a resolution-independent 'GetScreenDelta' value.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Vector2</b>
<br>
<span style="">GetScaledDelta</span>
<br>
<b>List&lt;LeanFinger&gt; fingers</b>
</h2>
<p>This returns a resolution-independent 'GetScreenDelta' value.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetScaledDelta</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, ref Vector2 delta</b>
</h2>
<p>This returns a resolution-independent 'TryGetScreenDelta' value.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Vector3</b>
<br>
<span style="">GetWorldDelta</span>
<br>
<b>float distance, Camera camera = null</b>
</h2>
<p>Gets the average WorldDelta of all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Vector3</b>
<br>
<span style="">GetWorldDelta</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, float distance, Camera camera = null</b>
</h2>
<p>Gets the average WorldDelta of the specified fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetWorldDelta</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, float distance, ref Vector3 delta, Camera camera = null</b>
</h2>
<p>Gets the average WorldDelta of the specified fingers, if at least one exists.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetScreenDistance</span>
<br>
<b></b>
</h2>
<p>Gets the average ScreenPosition distance between the fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetScreenDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers</b>
</h2>
<p>Gets the average ScreenPosition distance between the fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetScreenDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center</b>
</h2>
<p>Gets the average ScreenPosition distance between the fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetScreenDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center, ref float distance</b>
</h2>
<p>Gets the average ScreenPosition distance between the fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetScaledDistance</span>
<br>
<b></b>
</h2>
<p>Gets the average ScreenPosition distance * LeanTouch.ScalingFactor between the fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetScaledDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers</b>
</h2>
<p>Gets the average ScreenPosition distance * LeanTouch.ScalingFactor between the fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetScaledDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center</b>
</h2>
<p>Gets the average ScreenPosition distance * LeanTouch.ScalingFactor between the fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetScaledDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center, ref float distance</b>
</h2>
<p>Gets the average ScreenPosition distance * LeanTouch.ScalingFactor between the fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetLastScreenDistance</span>
<br>
<b></b>
</h2>
<p>Gets the last average ScreenPosition distance between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetLastScreenDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers</b>
</h2>
<p>Gets the last average ScreenPosition distance between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetLastScreenDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center</b>
</h2>
<p>Gets the last average ScreenPosition distance between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetLastScreenDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center, ref float distance</b>
</h2>
<p>Gets the last average ScreenPosition distance between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetLastScaledDistance</span>
<br>
<b></b>
</h2>
<p>Gets the last average ScreenPosition distance * LeanTouch.ScalingFactor between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetLastScaledDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers</b>
</h2>
<p>Gets the last average ScreenPosition distance * LeanTouch.ScalingFactor between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetLastScaledDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center</b>
</h2>
<p>Gets the last average ScreenPosition distance * LeanTouch.ScalingFactor between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetLastScaledDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center, ref float distance</b>
</h2>
<p>Gets the last average ScreenPosition distance * LeanTouch.ScalingFactor between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetStartScreenDistance</span>
<br>
<b></b>
</h2>
<p>Gets the start average ScreenPosition distance between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetStartScreenDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers</b>
</h2>
<p>Gets the start average ScreenPosition distance between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetStartScreenDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center</b>
</h2>
<p>Gets the start average ScreenPosition distance between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetStartScreenDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center, ref float distance</b>
</h2>
<p>Gets the start average ScreenPosition distance between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetStartScaledDistance</span>
<br>
<b></b>
</h2>
<p>Gets the start average ScreenPosition distance * LeanTouch.ScalingFactor between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetStartScaledDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers</b>
</h2>
<p>Gets the start average ScreenPosition distance * LeanTouch.ScalingFactor between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetStartScaledDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center</b>
</h2>
<p>Gets the start average ScreenPosition distance * LeanTouch.ScalingFactor between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetStartScaledDistance</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center, ref float distance</b>
</h2>
<p>Gets the start average ScreenPosition distance * LeanTouch.ScalingFactor between all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetPinchScale</span>
<br>
<b>float wheelSensitivity = 0.0f</b>
</h2>
<p>Gets the pinch scale of the fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetPinchScale</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, float wheelSensitivity = 0.0f</b>
</h2>
<p>Gets the pinch scale of the fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetPinchScale</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center, Vector2 lastCenter, ref float scale, float wheelSensitivity = 0.0f</b>
</h2>
<p>Gets the pinch scale of the fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetPinchRatio</span>
<br>
<b>float wheelSensitivity = 0.0f</b>
</h2>
<p>Gets the pinch ratio of the fingers (reciprocal of pinch scale).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetPinchRatio</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, float wheelSensitivity = 0.0f</b>
</h2>
<p>Gets the pinch ratio of the fingers (reciprocal of pinch scale).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetPinchRatio</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center, Vector2 lastCenter, ref float ratio, float wheelSensitivity = 0.0f</b>
</h2>
<p>Gets the pinch ratio of the fingers (reciprocal of pinch scale).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetTwistDegrees</span>
<br>
<b></b>
</h2>
<p>Gets the average twist of the fingers in degrees.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetTwistDegrees</span>
<br>
<b>List&lt;LeanFinger&gt; fingers</b>
</h2>
<p>Gets the average twist of the fingers in degrees.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetTwistDegrees</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center, Vector2 lastCenter</b>
</h2>
<p>Gets the average twist of the fingers in degrees.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetTwistDegrees</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center, Vector2 lastCenter, ref float degrees</b>
</h2>
<p>Gets the average twist of the fingers in degrees.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetTwistRadians</span>
<br>
<b></b>
</h2>
<p>Gets the average twist of the fingers in radians.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetTwistRadians</span>
<br>
<b>List&lt;LeanFinger&gt; fingers</b>
</h2>
<p>Gets the average twist of the fingers in radians.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">GetTwistRadians</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center, Vector2 lastCenter</b>
</h2>
<p>Gets the average twist of the fingers in radians.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetTwistRadians</span>
<br>
<b>List&lt;LeanFinger&gt; fingers, Vector2 center, Vector2 lastCenter, ref float radians</b>
</h2>
<p>Gets the average twist of the fingers in radians.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanSnapshot"></a><h2>LeanSnapshot</h2><p>This class stores a snapshot of where a finger was at a specific point in time, and provides methods to look back in time to find a point based on a time.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Age</span>
</h2>
<p>The age of the finger when this snapshot was created.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2</b>
<br>
<span style="">ScreenPosition</span>
</h2>
<p>The screen position of the finger when this snapshot was created.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3</b>
<br>
<span style="">GetWorldPosition</span>
<br>
<b>float distance, Camera camera = null</b>
</h2>
<p>This will return the world position of this snapshot based on the distance from the camera.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static LeanSnapshot</b>
<br>
<span style="">Pop</span>
<br>
<b></b>
</h2>
<p>Return the last inactive snapshot, or allocate a new one.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetScreenPosition</span>
<br>
<b>List&lt;LeanSnapshot&gt; snapshots, float targetAge, ref Vector2 screenPosition</b>
</h2>
<p>This will return the recorded position of the current finger when it was at 'targetAge'.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">TryGetSnapshot</span>
<br>
<b>List&lt;LeanSnapshot&gt; snapshots, int index, ref float age, ref Vector2 screenPosition</b>
</h2>
<p>This will return snapshot information at the specified index, if it exists.</p><div class="tip"><strong>NOTE</strong>&emsp; This assumes snapshots does not contain any null elements.</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static int</b>
<br>
<span style="">GetLowerIndex</span>
<br>
<b>List&lt;LeanSnapshot&gt; snapshots, float targetAge</b>
</h2>
<p>This will get the index of the closest snapshot whose age is under targetAge</p><div class="tip"><strong>NOTE</strong>&emsp; This assumes snapshots does not contain any null elements.</div>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanTouch"></a><h2>LeanTouch</h2><p>If you add this component to your scene, then it will convert all mouse and touch data into easy to use data.</p><p>You can access this data via Lean.Touch.LeanTouch.Instance.Fingers, or hook into the Lean.Touch.LeanTouch.On___ events.</p><div class="tip"><strong>NOTE</strong>&emsp; If you experience a one frame input delay you should edit your ScriptExecutionOrder to force this script to update before your other scripts.</div><div style="padding-left:75px;"><br>
<h2>
<b style="">static List&lt;LeanTouch&gt;</b>
<br>
<span style="">Instances</span>
</h2>
<p>This contains all the active and enabled LeanTouch instances</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static List&lt;LeanFinger&gt;</b>
<br>
<span style="">Fingers</span>
</h2>
<p>This list contains all fingers currently touching the screen (or have just stopped touching the screen).</p><div class="tip"><strong>NOTE</strong>&emsp; This list includes simulated fingers, as well as the mouse hover finger.</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static List&lt;LeanFinger&gt;</b>
<br>
<span style="">InactiveFingers</span>
</h2>
<p>This list contains all fingers that were once touching the screen. This is used to manage finger tapping, as well as 'inactive' fingers that are so old they're no longer eligible for tapping.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static event System.Action&lt;LeanFinger&gt;</b>
<br>
<span style="">OnFingerDown</span>
</h2>
<p>This gets fired when a finger begins touching the screen (LeanFinger = The current finger)</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static event System.Action&lt;LeanFinger&gt;</b>
<br>
<span style="">OnFingerUpdate</span>
</h2>
<p>This gets fired every frame a finger is touching the screen (LeanFinger = The current finger)</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static event System.Action&lt;LeanFinger&gt;</b>
<br>
<span style="">OnFingerUp</span>
</h2>
<p>This gets fired when a finger stops touching the screen (LeanFinger = The current finger)</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static event System.Action&lt;LeanFinger&gt;</b>
<br>
<span style="">OnFingerOld</span>
</h2>
<p>This gets fired when a finger has been touching the screen for longer than <b>TapThreshold</b> seconds, causing it to be ineligible for the tap and swipe events.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static event System.Action&lt;LeanFinger&gt;</b>
<br>
<span style="">OnFingerTap</span>
</h2>
<p>This gets fired when a finger taps the screen (this is when a finger begins and stops touching the screen within the 'TapThreshold' time).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static event System.Action&lt;LeanFinger&gt;</b>
<br>
<span style="">OnFingerSwipe</span>
</h2>
<p>This gets fired when a finger swipes the screen (this is when a finger begins and stops touching the screen within the 'TapThreshold' time, and also moves more than the 'SwipeThreshold' distance) (LeanFinger = The current finger)</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static event System.Action&lt;List&lt;LeanFinger&gt;&gt;</b>
<br>
<span style="">OnGesture</span>
</h2>
<p>This gets fired every frame at least one finger is touching the screen (List = Fingers).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static event System.Action&lt;LeanFinger&gt;</b>
<br>
<span style="">OnFingerExpired</span>
</h2>
<p>This gets fired after a finger has been touching the screen for longer than <b>TapThreshold</b> seconds, making it ineligible for a swipe.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static event System.Action&lt;LeanFinger&gt;</b>
<br>
<span style="">OnFingerInactive</span>
</h2>
<p>This gets fired the frame after a finger went up,</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">event System.Action</b>
<br>
<span style="">OnSimulateFingers</span>
</h2>
<p>This will be invoked when it's time to simulate fingers. You can call the <b>AddFinger</b> method to simulate them.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">TapThreshold</span>
</h2>
<p>This allows you to set how many seconds are required between a finger down/up for a tap to be registered.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">SwipeThreshold</span>
</h2>
<p>This allows you to set how many pixels of movement (relative to the ReferenceDpi) are required within the TapThreshold for a swipe to be triggered.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">ReclaimThreshold</span>
</h2>
<p>This allows you to set how many pixels (relative to the ReferenceDpi) away from a previous finger the new touching finger must be for it to be reclaimed. This is useful on platforms that give incorrect finger ID data.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">int</b>
<br>
<span style="">ReferenceDpi</span>
</h2>
<p>This allows you to set the default DPI you want the input scaling to be based on.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LayerMask</b>
<br>
<span style="">GuiLayers</span>
</h2>
<p>This allows you to set which layers your GUI is on, so it can be ignored by each finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">UseTouch</span>
</h2>
<p>If you disable this then lean touch will act as if you stopped touching the screen.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">UseHover</span>
</h2>
<p>Should the mouse hover position be stored as a finger?</p><div class="tip"><strong>NOTE</strong>&emsp; It will be given a finger <b>Index</b> of HOVER_FINGER_INDEX = -42.</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">UseMouse</span>
</h2>
<p>Should any mouse button press be stored as a finger?</p><div class="tip"><strong>NOTE</strong>&emsp; It will be given a finger <b>Index</b> of MOUSE_FINGER_INDEX = -1.</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">UseSimulator</span>
</h2>
<p>Should components hooked into the <b>OnSimulateFingers</b> event be used? (e.g. LeanTouchSimulator)</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">RecordFingers</span>
</h2>
<p>Should each finger record snapshots of their screen positions?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">RecordThreshold</span>
</h2>
<p>This allows you to set the amount of pixels a finger must move for another snapshot to be stored.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">RecordLimit</span>
</h2>
<p>This allows you to set the maximum amount of seconds that can be recorded, 0 = unlimited.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static LeanTouch</b>
<br>
<span style="">Instance</span>
</h2>
<p>The first active and enabled LeanTouch instance.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">ScalingFactor</span>
</h2>
<p>If you multiply this value with any other pixel delta (e.g. ScreenDelta), then it will become device resolution independent relative to the device DPI.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">ScreenFactor</span>
</h2>
<p>If you multiply this value with any other pixel delta (e.g. ScreenDelta), then it will become device resolution independent relative to the screen pixel size.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">GuiInUse</span>
</h2>
<p>This will return true if the mouse or any finger is currently using the GUI.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static bool</b>
<br>
<span style="">PointOverGui</span>
<br>
<b>Vector2 screenPosition</b>
</h2>
<p>This will return true if the specified screen point is over any GUI elements.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static List&lt;RaycastResult&gt;</b>
<br>
<span style="">RaycastGui</span>
<br>
<b>Vector2 screenPosition</b>
</h2>
<p>This will return all the RaycastResults under the specified screen point using the current layerMask.</p><div class="tip"><strong>NOTE</strong>&emsp; The first result (0) will be the top UI element that was first hit.</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static List&lt;RaycastResult&gt;</b>
<br>
<span style="">RaycastGui</span>
<br>
<b>Vector2 screenPosition, LayerMask layerMask</b>
</h2>
<p>This will return all the RaycastResults under the specified screen point using the specified layerMask.</p><div class="tip"><strong>NOTE</strong>&emsp; The first result (0) will be the top UI element that was first hit.</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static List&lt;LeanFinger&gt;</b>
<br>
<span style="">GetFingers</span>
<br>
<b>bool ignoreIfStartedOverGui, bool ignoreIfOverGui, int requiredFingerCount = 0, bool ignoreHoverFinger = true</b>
</h2>
<p>This allows you to filter all the fingers based on the specified requirements.</p><div class="tip"><strong>NOTE</strong>&emsp; If ignoreGuiFingers is set, Fingers will be filtered to remove any with StartedOverGui.</div><div class="tip"><strong>NOTE</strong>&emsp; If requiredFingerCount is greater than 0, this method will return null if the finger count doesn't match.</div><div class="tip"><strong>NOTE</strong>&emsp; If requiredSelectable is set, and its SelectingFinger isn't null, it will return just that finger.</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static void</b>
<br>
<span style="">SimulateTap</span>
<br>
<b>Vector2 screenPosition, float pressure = 1.0f, int tapCount = 1</b>
</h2>
<p>This allows you to simulate a tap on the screen at the specified location.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">Clear</span>
<br>
<b></b>
</h2>
<p>You can call this method if you want to stop all finger events. You can then disable this component to prevent new ones from updating.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanDragCamera"></a><h2>LeanDragCamera</h2><p>This component allows you to move the current GameObject (e.g. Camera) based on finger drags and the specified ScreenDepth.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerFilter</b>
<br>
<span style="">Use</span>
</h2>
<p>The method used to find fingers to use with this component. See LeanFingerFilter documentation for more information.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanScreenDepth</b>
<br>
<span style="">ScreenDepth</span>
</h2>
<p>The method used to find world coordinates from a finger. See LeanScreenDepth documentation for more information.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Sensitivity</span>
</h2>
<p>The movement speed will be multiplied by this.</p><p>-1 = Inverted Controls.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Damping</span>
</h2>
<p>If you want this component to change smoothly over time, then this allows you to control how quick the changes reach their target value.</p><p>-1 = Instantly change.</p><p>1 = Slowly change.</p><p>10 = Quickly change.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Inertia</span>
</h2>
<p>This allows you to control how much momentum is retained when the dragging fingers are all released.</p><div class="tip"><strong>NOTE</strong>&emsp; This requires <b>Damping</b> to be above 0.</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">MoveToSelection</span>
<br>
<b></b>
</h2>
<p>This method moves the current GameObject to the center point of all selected objects.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">AddFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually add a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually remove a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveAllFingers</span>
<br>
<b></b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually remove all fingers.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanDragTrail"></a><h2>LeanDragTrail</h2><p>This component draws trails behind fingers.</p><div class="tip"><strong>NOTE</strong>&emsp; This requires you to enable the LeanTouch.RecordFingers setting.</div><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerFilter</b>
<br>
<span style="">Use</span>
</h2>
<p>The method used to find fingers to use with this component. See LeanFingerFilter documentation for more information.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanScreenDepth</b>
<br>
<span style="">ScreenDepth</span>
</h2>
<p>The method used to convert between screen coordinates, and world coordinates.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LineRenderer</b>
<br>
<span style="">Prefab</span>
</h2>
<p>The line prefab that will be used to render the trails.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">int</b>
<br>
<span style="">MaxTrails</span>
</h2>
<p>The maximum amount of active trails.</p><p>-1 = Unlimited.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">FadeTime</span>
</h2>
<p>How many seconds it takes for each trail to disappear after a finger is released.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Color</b>
<br>
<span style="">StartColor</span>
</h2>
<p>The color of the trail start.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Color</b>
<br>
<span style="">EndColor</span>
</h2>
<p>The color of the trail end.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">AddFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually add a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually remove a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveAllFingers</span>
<br>
<b></b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually remove all fingers.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanDragTranslate"></a><h2>LeanDragTranslate</h2><p>This component allows you to translate the current GameObject relative to the camera using the finger drag gesture.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerFilter</b>
<br>
<span style="">Use</span>
</h2>
<p>The method used to find fingers to use with this component. See LeanFingerFilter documentation for more information.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Camera</b>
<br>
<span style="">Camera</span>
</h2>
<p>The camera the translation will be calculated using.</p><p>None/null = MainCamera.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Sensitivity</span>
</h2>
<p>The movement speed will be multiplied by this.</p><p>-1 = Inverted Controls.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Damping</span>
</h2>
<p>If you want this component to change smoothly over time, then this allows you to control how quick the changes reach their target value.</p><p>-1 = Instantly change.</p><p>1 = Slowly change.</p><p>10 = Quickly change.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Inertia</span>
</h2>
<p>This allows you to control how much momentum is retained when the dragging fingers are all released.</p><div class="tip"><strong>NOTE</strong>&emsp; This requires <b>Dampening</b> to be above 0.</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">AddFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually add a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually remove a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveAllFingers</span>
<br>
<b></b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually remove all fingers.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanFingerData"></a><h2>LeanFingerData</h2><p>This base class can be used to associate extra data with the specified LeanFinger instance.</p><br><br></div><div style="overflow:hidden;"><a name="LeanFingerDown"></a><h2>LeanFingerDown</h2><p>This component invokes events when a finger touches the screen that satisfies the specified conditions.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreStartedOverGui</span>
</h2>
<p>Ignore fingers with StartedOverGui?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanSelectable</b>
<br>
<span style="">RequiredSelectable</span>
</h2>
<p>If the specified object is set and isn't selected, then this component will do nothing.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerEvent</b>
<br>
<span style="">OnFinger</span>
</h2>
<p>This event will be called if the above conditions are met when your finger begins touching the screen.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanScreenDepth</b>
<br>
<span style="">ScreenDepth</span>
</h2>
<p>The method used to find world coordinates from a finger. See LeanScreenDepth documentation for more information.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3Event</b>
<br>
<span style="">OnWorld</span>
</h2>
<p>This event will be called if the above conditions are met when your finger begins touching the screen.</p><p>Vector3 = Start point based on the ScreenDepth settings.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2Event</b>
<br>
<span style="">OnScreen</span>
</h2>
<p>This event will be called if the above conditions are met when your finger begins touching the screen.</p><p>Vector2 = Finger position in screen space.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanFingerFilter"></a><h2>LeanFingerFilter</h2><p>This class manages a list of fingers, and can return a filtered version of them based on the criteria you specify. This allows you to quickly implement complex controls involving multiple fingers.</p><p>By default, all fingers seen by LeanTouch are used by this class, but you can set <b>Filter</b> to <b>ManuallyAddedFingers</b>, and you can manually call the <b>AddFinger</b> method to add them yourself.</p><div class="tip"><strong>NOTE</strong>&emsp; If you use this class then you must call the <b>UpdateAndGetFingers</b> method every frame/Update to update the class state. This is required because this update method will remove fingers that went up. If you don't call this then they will remain, and this may lead to unexpected behavior.</div><div style="padding-left:75px;"><br>
<h2>
<b style="">FilterType</b>
<br>
<span style="">Filter</span>
</h2>
<p>The method used to find fingers to use with this component.</p><p>ManuallyAddedFingers = You must manually call the AddFinger function (e.g. from a UI button).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreStartedOverGui</span>
</h2>
<p>Ignore fingers that began touching the screen on top of a GUI element?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">int</b>
<br>
<span style="">RequiredFingerCount</span>
</h2>
<p>If the amount of fingers doesn't match this number, ignore all fingers?</p><p>0 = Any amount.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">int</b>
<br>
<span style="">RequiredMouseButtons</span>
</h2>
<p>When using simulated fingers, should a specific combination of mouse buttons be held?</p><p>0 = Any.</p><p>1 = Left.</p><p>2 = Right.</p><p>3 = Left + Right.</p><p>4 = Middle.</p><p>5 = Left + Middle.</p><p>6 = Right + Middle.</p><p>7 = Left + Right + Middle.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanSelectable</b>
<br>
<span style="">RequiredSelectable</span>
</h2>
<p>If the specified RequiredSelectable component's IsSelected setting is false, ignore all fingers?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">UpdateRequiredSelectable</span>
<br>
<b>GameObject gameObject</b>
</h2>
<p>If the current RequiredSelectable is null, this method allows you to try and set it based on the specified GameObject.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">AddFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Filter to ManuallyAddedFingers, then you can call this method to manually add a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Filter to ManuallyAddedFingers, then you can call this method to manually remove a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveAllFingers</span>
<br>
<b></b>
</h2>
<p>If you've set Filter to ManuallyAddedFingers, then you can call this method to manually remove all fingers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">List&lt;LeanFinger&gt;</b>
<br>
<span style="">UpdateAndGetFingers</span>
<br>
<b>bool ignoreUpFingers = false</b>
</h2>
<p>This method returns a list of all fingers based on the current settings.</p><div class="tip"><strong>NOTE</strong>&emsp; This method must be called every frame/Update.</div>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanFingerOld"></a><h2>LeanFingerOld</h2><p>This component fires events on the first frame where a finger has been touching the screen for more than <b>TapThreshold</b> seconds, and is therefore no longer eligible for tap or swipe events.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreStartedOverGui</span>
</h2>
<p>Ignore fingers with StartedOverGui?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreIsOverGui</span>
</h2>
<p>Ignore fingers with OverGui?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanSelectable</b>
<br>
<span style="">RequiredSelectable</span>
</h2>
<p>If the specified object is set and isn't selected, then this component will do nothing.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerEvent</b>
<br>
<span style="">OnFinger</span>
</h2>
<p>This event will be called if the above conditions are met when your finger becomes old.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanScreenDepth</b>
<br>
<span style="">ScreenDepth</span>
</h2>
<p>The method used to find world coordinates from a finger. See LeanScreenDepth documentation for more information.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3Event</b>
<br>
<span style="">OnWorld</span>
</h2>
<p>This event will be called if the above conditions are met when your finger becomes old.</p><p>Vector3 = Finger position in world space.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2Event</b>
<br>
<span style="">OnScreen</span>
</h2>
<p>This event will be called if the above conditions are met when your finger becomes old.</p><p>Vector2 = Finger position in screen space.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanFingerSwipe"></a><h2>LeanFingerSwipe</h2><p>This component fires events if a finger has swiped across the screen.</p><p>A swipe is defined as a touch that began and ended within the LeanTouch.TapThreshold time, and moved more than the LeanTouch.SwipeThreshold distance.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreStartedOverGui</span>
</h2>
<p>Ignore fingers with StartedOverGui?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreIsOverGui</span>
</h2>
<p>Ignore fingers with OverGui?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanSelectable</b>
<br>
<span style="">RequiredSelectable</span>
</h2>
<p>If the specified object is set and isn't selected, then this component will do nothing.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanFingerTap"></a><h2>LeanFingerTap</h2><p>This component calls the OnFingerTap event when a finger taps the screen.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreStartedOverGui</span>
</h2>
<p>Ignore fingers with StartedOverGui?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreIsOverGui</span>
</h2>
<p>Ignore fingers with OverGui?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanSelectable</b>
<br>
<span style="">RequiredSelectable</span>
</h2>
<p>If the specified object is set and isn't selected, then this component will do nothing.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">int</b>
<br>
<span style="">RequiredTapCount</span>
</h2>
<p>How many times must this finger tap before OnTap gets called?</p><p>0 = Every time (keep in mind OnTap will only be called once if you use this).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">int</b>
<br>
<span style="">RequiredTapInterval</span>
</h2>
<p>How many times repeating must this finger tap before OnTap gets called?</p><p>0 = Every time (e.g. a setting of 2 means OnTap will get called when you tap 2 times, 4 times, 6, 8, 10, etc).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerEvent</b>
<br>
<span style="">OnFinger</span>
</h2>
<p>This event will be called if the above conditions are met when you tap the screen.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">IntEvent</b>
<br>
<span style="">OnCount</span>
</h2>
<p>This event will be called if the above conditions are met when you tap the screen.</p><p>Int = The finger tap count.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanScreenDepth</b>
<br>
<span style="">ScreenDepth</span>
</h2>
<p>The method used to find world coordinates from a finger. See LeanScreenDepth documentation for more information.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3Event</b>
<br>
<span style="">OnWorld</span>
</h2>
<p>This event will be called if the above conditions are met when you tap the screen.</p><p>Vector3 = Finger position in world space.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2Event</b>
<br>
<span style="">OnScreen</span>
</h2>
<p>This event will be called if the above conditions are met when you tap the screen.</p><p>Vector2 = Finger position in screen space.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanFingerUp"></a><h2>LeanFingerUp</h2><p>This component calls the OnUp event when a finger stops touching the screen.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreStartedOverGui</span>
</h2>
<p>Ignore fingers with StartedOverGui?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreIsOverGui</span>
</h2>
<p>Ignore fingers with OverGui?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanSelectable</b>
<br>
<span style="">RequiredSelectable</span>
</h2>
<p>If the specified object is set and isn't selected, then this component will do nothing.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerEvent</b>
<br>
<span style="">OnFinger</span>
</h2>
<p>This event will be called if the above conditions are met when your finger stops touching the screen.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanScreenDepth</b>
<br>
<span style="">ScreenDepth</span>
</h2>
<p>The method used to find world coordinates from a finger. See LeanScreenDepth documentation for more information.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3Event</b>
<br>
<span style="">OnWorld</span>
</h2>
<p>This event will be called if the above conditions are met when your finger stops touching the screen.</p><p>Vector3 = Finger position in world space.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2Event</b>
<br>
<span style="">OnScreen</span>
</h2>
<p>This event will be called if the above conditions are met when your finger stops touching the screen.</p><p>Vector2 = Finger position in screen space.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanFingerUpdate"></a><h2>LeanFingerUpdate</h2><p>This component allows you to detect when a finger is touching the screen.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreStartedOverGui</span>
</h2>
<p>Ignore fingers with StartedOverGui?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreIsOverGui</span>
</h2>
<p>Ignore fingers with OverGui?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreIfStatic</span>
</h2>
<p>If the finger didn't move, ignore it?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreIfDown</span>
</h2>
<p>If the finger just began touching the screen, ignore it?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreIfUp</span>
</h2>
<p>If the finger just stopped touching the screen, ignore it?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IgnoreIfHover</span>
</h2>
<p>If the finger is the mouse hover, ignore it?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanSelectable</b>
<br>
<span style="">RequiredSelectable</span>
</h2>
<p>If the specified object is set and isn't selected, then this component will do nothing.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerEvent</b>
<br>
<span style="">OnFinger</span>
</h2>
<p>Called on every frame the conditions are met.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">CoordinateType</b>
<br>
<span style="">Coordinate</span>
</h2>
<p>The coordinate space of the OnDelta values.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Multiplier</span>
</h2>
<p>The delta values will be multiplied by this when output.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2Event</b>
<br>
<span style="">OnDelta</span>
</h2>
<p>This event is invoked when the requirements are met.</p><p>Vector2 = Position Delta based on your Coordinates setting.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">FloatEvent</b>
<br>
<span style="">OnDistance</span>
</h2>
<p>Called on the first frame the conditions are met.</p><p>Float = The distance/magnitude/length of the swipe delta vector.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanScreenDepth</b>
<br>
<span style="">ScreenDepth</span>
</h2>
<p>The method used to find world coordinates from a finger. See LeanScreenDepth documentation for more information.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3Event</b>
<br>
<span style="">OnWorldFrom</span>
</h2>
<p>Called on the first frame the conditions are met.</p><p>Vector3 = Start point in world space.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3Event</b>
<br>
<span style="">OnWorldTo</span>
</h2>
<p>Called on the first frame the conditions are met.</p><p>Vector3 = End point in world space.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3Event</b>
<br>
<span style="">OnWorldDelta</span>
</h2>
<p>Called on the first frame the conditions are met.</p><p>Vector3 = The vector between the start and end points in world space.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3Vector3Event</b>
<br>
<span style="">OnWorldFromTo</span>
</h2>
<p>Called on the first frame the conditions are met.</p><p>Vector3 = Start point in world space.</p><p>Vector3 = End point in world space.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanPinchScale"></a><h2>LeanPinchScale</h2><p>This component allows you to scale the current GameObject relative to the specified camera using the pinch gesture.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerFilter</b>
<br>
<span style="">Use</span>
</h2>
<p>The method used to find fingers to use with this component. See LeanFingerFilter documentation for more information.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Camera</b>
<br>
<span style="">Camera</span>
</h2>
<p>The camera that will be used to calculate the zoom.</p><p>None/null = MainCamera.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">Relative</span>
</h2>
<p>Should the scaling be performed relative to the finger center?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Sensitivity</span>
</h2>
<p>The sensitivity of the scaling.</p><p>1 = Default.</p><p>2 = Double.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Damping</span>
</h2>
<p>If you want this component to change smoothly over time, then this allows you to control how quick the changes reach their target value.</p><p>-1 = Instantly change.</p><p>1 = Slowly change.</p><p>10 = Quickly change.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">AddFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually add a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually remove a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveAllFingers</span>
<br>
<b></b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually remove all fingers.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanScreenDepth"></a><h2>LeanScreenDepth</h2><p>This struct handles the conversion between screen coordinates, and world coordinates.</p><p>This conversion is required for many touch interactions, and there are numerous ways it can be performed.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">ConversionType</b>
<br>
<span style="">Conversion</span>
</h2>
<p>The method used to convert between screen coordinates, and world coordinates.</p><p>FixedDistance = A point will be projected out from the camera.</p><p>DepthIntercept = A point will be intercepted out from the camera on a surface lying flat on the XY plane.</p><p>PhysicsRaycast = A ray will be cast from the camera.</p><p>PathClosest = A point will be intercepted out from the camera to the closest point on the specified path.</p><p>AutoDistance = A point will be projected out from the camera based on the current Transform depth.</p><p>HeightIntercept = A point will be intercepted out from the camera on a surface lying flat on the XZ plane.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Camera</b>
<br>
<span style="">Camera</span>
</h2>
<p>The camera the depth calculations will be done using.</p><p>None = MainCamera.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Object</b>
<br>
<span style="">Object</span>
</h2>
<p>The plane/path/etc that will be intercepted.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LayerMask</b>
<br>
<span style="">Layers</span>
</h2>
<p>The layers used in the raycast.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Distance</span>
</h2>
<p>Tooltips are modified at runtime based on Conversion setting.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Vector3</b>
<br>
<span style="">LastWorldNormal</span>
</h2>
<p>When performing a ScreenDepth conversion, the converted point can have a normal associated with it. This stores that.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanScreenQuery"></a><h2>LeanScreenQuery</h2><p>This struct stores information about and allows you to search the scene for a specific object on screen space.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">MethodType</b>
<br>
<span style="">Method</span>
</h2>
<p>The method used to search the scene based on a screen position.</p><p>Raycast = 3D, 2D, and EventSystem raycast.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LayerMask</b>
<br>
<span style="">Layers</span>
</h2>
<p>The scene will be queried (e.g. Raycast) against these layers.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">SearchType</b>
<br>
<span style="">Search</span>
</h2>
<p>When the query hits a GameObject, how should the desired component be searched for relative to it?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">string</b>
<br>
<span style="">RequiredTag</span>
</h2>
<p>The component found from the search must have this tag.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Camera</b>
<br>
<span style="">Camera</span>
</h2>
<p>The camera used to perform the search.</p><p>None = MainCamera.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanSelectableByFinger"></a><h2>LeanSelectableByFinger</h2><p>This component makes this GameObject selectable.</p><p>If your game is 3D then make sure this GameObject or a child has a Collider component.</p><p>If your game is 2D then make sure this GameObject or a child has a Collider2D component.</p><p>If your game is UI based then make sure this GameObject or a child has a graphic with "Raycast Target" enabled.</p><p>To then select it, you can add the LeanSelect and LeanFingerTap components to your scene. You can then link up the LeanFingerTap.OnTap event to LeanSelect.SelectScreenPosition.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">UseType</b>
<br>
<span style="">Use</span>
</h2>
<p>This allows you to control which fingers will be used by components that require this selectable.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerEvent</b>
<br>
<span style="">OnSelectedFinger</span>
</h2>
<p>This event is called when selection begins (finger = the finger that selected this).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerEvent</b>
<br>
<span style="">OnSelectedFingerUp</span>
</h2>
<p>This event is called when selection begins (finger = the finger that selected this).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFinger</b>
<br>
<span style="">SelectingFinger</span>
</h2>
<p>This tells you the first or earliest still active finger that initiated selection of this object.</p><div class="tip"><strong>NOTE</strong>&emsp; If the selecting finger went up then this may return null.</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">List&lt;LeanFinger&gt;</b>
<br>
<span style="">SelectingFingers</span>
</h2>
<p>This tells you every currently active finger that selected this object.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static List&lt;LeanFinger&gt;</b>
<br>
<span style="">GetFingers</span>
<br>
<b>bool ignoreIfStartedOverGui, bool ignoreIfOverGui, int requiredFingerCount = 0, LeanSelectable requiredSelectable = null</b>
</h2>
<p>If requiredSelectable is set and not selected, the fingers list will be empty. If selected then the fingers list will only contain the selecting finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static LeanSelectableByFinger</b>
<br>
<span style="">FindSelectable</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If the specified finger selected an object, this will return the first one.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">IsSelectedBy</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>This tells you if the current selectable was selected by the specified finger.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanSelectableByFingerBehaviour"></a><h2>LeanSelectableByFingerBehaviour</h2><p>This is the base class for all components that need to implement some kind of special logic when selected. You can do this manually without this class, but this makes it much easier.</p><div class="tip"><strong>NOTE</strong>&emsp; This component will register and unregister the associated LeanSelectable in OnEnable and OnDisable.</div><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanSelectableByFinger</b>
<br>
<span style="">Selectable</span>
</h2>
<p>This tells you which LeanSelectable is currently associated with this component.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">Register</span>
<br>
<b></b>
</h2>
<p>This method allows you to manually register the LeanSelectable this component is associated with. This is useful if you're manually spawning and attaching children from code.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">Register</span>
<br>
<b>LeanSelectableByFinger newSelectable</b>
</h2>
<p>This method allows you to manually register the LeanSelectable this component is associated with.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">Unregister</span>
<br>
<b></b>
</h2>
<p>This method allows you to manually register the LeanSelectable this component is associated with. This is useful if you're changing the associated LeanSelectable.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanSelectByFinger"></a><h2>LeanSelectByFinger</h2><p>This component allows you to select LeanSelectable components.</p><p>To use it, you can call the SelectScreenPosition method from somewhere (e.g. the LeanFingerTap.OnTap event).</p><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">DeselectWithFingers</span>
</h2>
<p>If you enable this then any selected object will automatically be deselected if the finger used to select it is no longer touching the screen.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanSelectableLeanFingerEvent</b>
<br>
<span style="">OnSelectedFinger</span>
</h2>
<p>This is invoked when an object is selected.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">SelectStartScreenPosition</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>This method allows you to initiate selection at the finger's <b>StartScreenPosition</b>.</p><div class="tip"><strong>NOTE</strong>&emsp; This method be called from somewhere for this component to work (e.g. LeanFingerTap).</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">SelectScreenPosition</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>This method allows you to initiate selection at the finger's current <b>ScreenPosition</b>.</p><div class="tip"><strong>NOTE</strong>&emsp; This method be called from somewhere for this component to work (e.g. LeanFingerTap).</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">SelectScreenPosition</span>
<br>
<b>LeanFinger finger, Vector2 screenPosition</b>
</h2>
<p>This method allows you to initiate selection of a finger at a custom screen position.</p><div class="tip"><strong>NOTE</strong>&emsp; This method be called from a custom script for this component to work.</div>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">Select</span>
<br>
<b>LeanSelectable selectable, LeanFinger finger</b>
</h2>
<p>This method allows you to manually select an object with the specified finger using this component's selection settings.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">ReplaceSelection</span>
<br>
<b>List&lt;LeanSelectable&gt; newSelectables, LeanFinger finger</b>
</h2>
<p>This allows you to replace the currently selected objects with the ones in the specified list. This is useful if you're doing box selection or switching selection groups.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanSwipeBase"></a><h2>LeanSwipeBase</h2><p>This is the base class for all swiping actions.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">RequiredAngle</span>
</h2>
<p>The required angle of the swipe in degrees.</p><p>0 = Up.</p><p>90 = Right.</p><p>180 = Down.</p><p>270 = Left.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">RequiredArc</span>
</h2>
<p>The angle of the arc in degrees that the swipe must be inside.</p><p>-1 = No requirement.</p><p>90 = Quarter circle (+- 45 degrees).</p><p>180 = Semicircle (+- 90 degrees).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerEvent</b>
<br>
<span style="">OnFinger</span>
</h2>
<p>Called on the first frame the conditions are met.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">ModifyType</b>
<br>
<span style="">Modify</span>
</h2>
<p>Should the swipe delta be modified before use?</p><p>Normalize = The swipe delta magnitude/length will be set to 1.</p><p>Normalize4 = The swipe delta will be + or - 1 on either the x or y axis.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">CoordinateType</b>
<br>
<span style="">Coordinate</span>
</h2>
<p>The coordinate space of the OnDelta values.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Multiplier</span>
</h2>
<p>The swipe delta will be multiplied by this value.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector2Event</b>
<br>
<span style="">OnDelta</span>
</h2>
<p>Called on the first frame the conditions are met.</p><p>Vector2 = The scaled swipe delta.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">FloatEvent</b>
<br>
<span style="">OnDistance</span>
</h2>
<p>Called on the first frame the conditions are met.</p><p>Float = The distance/magnitude/length of the swipe delta vector.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanScreenDepth</b>
<br>
<span style="">ScreenDepth</span>
</h2>
<p>The method used to find world coordinates from a finger. See LeanScreenDepth documentation for more information.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3Event</b>
<br>
<span style="">OnWorldFrom</span>
</h2>
<p>Called on the first frame the conditions are met.</p><p>Vector3 = Start point in world space.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3Event</b>
<br>
<span style="">OnWorldTo</span>
</h2>
<p>Called on the first frame the conditions are met.</p><p>Vector3 = End point in world space.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3Event</b>
<br>
<span style="">OnWorldDelta</span>
</h2>
<p>Called on the first frame the conditions are met.</p><p>Vector3 = The vector between the start and end points in world space.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3Vector3Event</b>
<br>
<span style="">OnWorldFromTo</span>
</h2>
<p>Called on the first frame the conditions are met.</p><p>Vector3 = Start point in world space.</p><p>Vector3 = End point in world space.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanTouchSimulator"></a><h2>LeanTouchSimulator</h2><p>This component can be added alongside the <b>LeanTouch</b> component to add simulated multi touch controls using the mouse and keyboard.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">KeyCode</b>
<br>
<span style="">PinchTwistKey</span>
</h2>
<p>This allows you to set which key is required to simulate multi key twisting.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">KeyCode</b>
<br>
<span style="">MovePivotKey</span>
</h2>
<p>This allows you to set which key is required to change the pivot point of the pinch twist gesture.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">KeyCode</b>
<br>
<span style="">MultiDragKey</span>
</h2>
<p>This allows you to set which key is required to simulate multi key dragging.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Texture2D</b>
<br>
<span style="">FingerTexture</span>
</h2>
<p>This allows you to set which texture will be used to show the simulated fingers.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanTwistRotate"></a><h2>LeanTwistRotate</h2><p>This component allows you to transform the current GameObject relative to the specified camera using a twist gesture.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerFilter</b>
<br>
<span style="">Use</span>
</h2>
<p>The method used to find fingers to use with this component. See LeanFingerFilter documentation for more information.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Camera</b>
<br>
<span style="">Camera</span>
</h2>
<p>The camera we will be used to calculate relative rotations.</p><p>None/null = MainCamera.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">Relative</span>
</h2>
<p>Should the rotation be performed relative to the finger center?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Damping</span>
</h2>
<p>If you want this component to change smoothly over time, then this allows you to control how quick the changes reach their target value.</p><p>-1 = Instantly change.</p><p>1 = Slowly change.</p><p>10 = Quickly change.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">AddFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually add a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually remove a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveAllFingers</span>
<br>
<b></b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually remove all fingers.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanTwistRotateAxis"></a><h2>LeanTwistRotateAxis</h2><p>This component allows you to rotate the current GameObject around the specified axis using finger twists.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanFingerFilter</b>
<br>
<span style="">Use</span>
</h2>
<p>The method used to find fingers to use with this component. See LeanFingerFilter documentation for more information.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3</b>
<br>
<span style="">Axis</span>
</h2>
<p>The axis of rotation.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">Space</b>
<br>
<span style="">Space</span>
</h2>
<p>Rotate locally or globally?</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Sensitivity</span>
</h2>
<p>The sensitivity of the rotation.</p><p>1 = Default.</p><p>2 = Double.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">AddFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually add a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveFinger</span>
<br>
<b>LeanFinger finger</b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually remove a finger.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">RemoveAllFingers</span>
<br>
<b></b>
</h2>
<p>If you've set Use to ManuallyAddedFingers, then you can call this method to manually remove all fingers.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanPulseScale"></a><h2>LeanPulseScale</h2><p>This component will pulse the transform.localScale value over time.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">Vector3</b>
<br>
<span style="">BaseScale</span>
</h2>
<p>The default scale.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Size</span>
</h2>
<p>The current scale multiplier.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">PulseInterval</span>
</h2>
<p>The interval between each pulse in seconds.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">PulseSize</span>
</h2>
<p>The amount Size will be incremented each pulse.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Damping</span>
</h2>
<p>If you want this component to change smoothly over time, then this allows you to control how quick the changes reach their target value.</p><p>-1 = Instantly change.</p><p>1 = Slowly change.</p><p>10 = Quickly change.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanTouchEvents"></a><h2>LeanTouchEvents</h2><p>This component will hook into every LeanTouch event, and spam the console with the information.</p><br><br></div>
</div>
<div style="position: absolute; width: 310px; left: 0px; right: 0px; top: 20px; bottom: 20px; overflow-y: scroll; padding: 20px;">
<h2 style="padding-bottom: 5px;">Index</h2>
<p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GettingStarted">How do I get started?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#WithoutCode">How do I use Lean Touch without code?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#WithCode">How do I use Lean Touch with C#?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#MultiFinger">How do I handle multi-finger gestures (e.g. Pinch, Twist) from C#?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#FrameDelay">Why are my inputs delayed by one frame?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#ThroughUI">How do I stop my touch controls from going through my UI from C#?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#Namespace">Why do I have to keep typing Lean.Touch. before everything?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#Plus">What is Lean Touch+?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#NewDemo">Can I request a new demo scene?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#ScreenDepth">How does the Screen Depth inspector setting work?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#Link">Why do I have to link up so many components?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#Link">Why do all my objects move at the same time?</a></p>
<br><br>
<h2 style="padding-bottom: 5px;">Assets</h2>
<p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanGUI">Lean GUI</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanTransition">Lean Transition</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#PaintIn3D">Paint in 3D</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanPool">Lean Pool</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#SpaceGraphicsToolkit">Space Graphics Toolkit</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanTouch">Lean Touch</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanLocalization">Lean Localization</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanGUIShapes">Lean GUI Shapes</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#Destructible2D">Destructible 2D</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#PlanetPack">Planet Pack - Space Graphics Toolkit</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanTouchPlus">Lean Touch+</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#VolumetricAudio">Volumetric Audio</a></p>
<br><br>
<h2 style="padding-bottom: 5px;">Versions</h2>
<p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.2.0">2.2.0</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.1.8">2.1.8</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.1.7">2.1.7</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.1.6">2.1.6</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.1.5">2.1.5</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.1.4">2.1.4</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.1.3">2.1.3</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.1.2">2.1.2</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.1.1">2.1.1</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.1.0">2.1.0</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.0.9">2.0.9</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.0.8">2.0.8</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.0.7">2.0.7</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.0.6">2.0.6</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.0.5">2.0.5</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.0.4">2.0.4</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.0.3">2.0.3</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.0.2">2.0.2</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.0.1">2.0.1</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#2.0.0">2.0.0</a></p>
<br><br>
<h2 style="padding-bottom: 5px;">Components</h2>
<p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanFinger">LeanFinger</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanGesture">LeanGesture</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanSnapshot">LeanSnapshot</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanTouch">LeanTouch</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanDragCamera">LeanDragCamera</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanDragTrail">LeanDragTrail</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanDragTranslate">LeanDragTranslate</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanFingerData">LeanFingerData</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanFingerDown">LeanFingerDown</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanFingerFilter">LeanFingerFilter</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanFingerOld">LeanFingerOld</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanFingerSwipe">LeanFingerSwipe</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanFingerTap">LeanFingerTap</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanFingerUp">LeanFingerUp</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanFingerUpdate">LeanFingerUpdate</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanPinchScale">LeanPinchScale</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanScreenDepth">LeanScreenDepth</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanScreenQuery">LeanScreenQuery</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanSelectableByFinger">LeanSelectableByFinger</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanSelectableByFingerBehaviour">LeanSelectableByFingerBehaviour</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanSelectByFinger">LeanSelectByFinger</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanSwipeBase">LeanSwipeBase</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanTouchSimulator">LeanTouchSimulator</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanTwistRotate">LeanTwistRotate</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanTwistRotateAxis">LeanTwistRotateAxis</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanPulseScale">LeanPulseScale</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanTouchEvents">LeanTouchEvents</a></p>
<br><br>
</div>
<div style="background-color: #0075D0; position: absolute; left: 0px; right: 0px; bottom: 0px; height: 20px;">
</div>
</body>
</html>