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

466 lines
172 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 Transition - Documentation - 1.2.1</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 Transition</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="WhatIs"></a><h2>What is Lean Transition?</h2><p>Lean Transition allows you to smoothly animate GameObject and Component settings from their current values, to new values.</p><p>Transitions can be as simple as fading menus in and out, to complex sequences with many different branches.</p><p>Transitions can be set up in the editor, as well as from code, using exactly the same procedure!</p><br><br></div><div style="overflow:hidden;"><a name="HowToUse"></a><h2>How do I use it?</h2><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Editor</span></h2><p>First, add transition components to your GameObject. If you click the <b>Add Component</b> button and type in <b>"Transition"</b>, you will see a list of all available components. For example, the <b>Transform.localPosition Transition (LeanTransformLocalPosition)</b> component can be added to your GameObject, allowing you t alter the <b>Transform</b> component's <b>localPosition</b> setting.</p><p>Next, you must begin the transition. This can be done using many different methods:</p><div class="tip"><strong>Method 1 [Editor Only]</strong>&emsp;Open your transition component's <b>Context Menu</b> (gear icon at the top right), and select <b>Begin All Transitions</b>.</div><div class="tip"><strong>Method 2</strong>&emsp;Connect your UI button's <b>On Click</b> event to your transition component's <b>Begin All Transitions</b> function.</div><div class="tip"><strong>Method 3</strong>&emsp;Make a new GameObject with the <b>LeanAnimate</b> component, and drag and drop your transitions GameObject into the <b>Transitions</b> setting. You can now call the <b>LeanAnimate.Begin Transitions</b> function from your UI buttons.</div><div class="tip"><strong>Method 4</strong>&emsp;Make a new GameObject with the <b>LeanAnimateKeyPress</b> component, and drag and drop your transitions GameObject into the <b>Transitions</b> setting. You can now press the <b>Required Key</b> button, and the animation will begin.</div></div><br><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Code</span></h2><p>First, you must use the Lean.Transition namespace. Put this at the top of your source file:</p><div class="code"><pre>using Lean.Transition;<br></pre></div><p>This namespace includes all the extension methods for you to use.</p><p>Next, simply replace your normal code with transition variants. For example:</p><div class="code"><pre>// Instantly change our transform component's localPosition to 10, 10, 10<br>transform.localPosition = new Vector3(10, 10, 10);<br></pre></div><p>Can be turned into:</p><div class="code"><pre>// Gradually change our transform component's localPosition to 10, 10, 10 over 0.5 seconds<br>transform.localPositionTransition(new Vector3(10, 10, 10), 0.5f);<br></pre></div><p>It's as simple as that!</p><div class="tip"><strong>NOTE</strong>&emsp; All Lean Transition extension methods are named like this with <b>Transition</b> added to the end, so it should be really easy to find them.</div><div class="tip"><strong>NOTE</strong>&emsp; Not all values have transitions. If you feel like I've missed an important one then please contect me so I can implement it!</div></div><br><br><br></div><div style="overflow:hidden;"><a name="Ease"></a><h2>How do the ease functions work?</h2><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Basic</span></h2><p>Ease functions allow you control how a value transitions from its original value to its target value.</p><div class="tip"><strong>Smooth</strong>&emsp;This smoothly accelerates from a speed of 0, reaches max speed in the middle, and smoothly decelerates to 0. This ease is also known as smoothstep.</div><div class="tip"><strong>Accelerate</strong>&emsp;This smoothly accelerates from a speed of 0, and reaches max speed at the end where it instantly stops.</div><div class="tip"><strong>Decelerate</strong>&emsp;This instantly begins at max speed and smoothly decelerates to a speed of 0.</div><div class="tip"><strong>Accelerate</strong>&emsp;This smoothly accelerates from a speed of 0, overshoots the end, and wobbles back and forth before smoothly stopping.</div><div class="tip"><strong>Back</strong>&emsp;This smoothly accelerates from a speed of 0, overshoots the end, and smoothly goes back.</div><div class="tip"><strong>Bounce</strong>&emsp;This smoothly accelerates from a speed of 0, hits the end and bounces several times before coming to a stop.</div></div><br><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Advanced</span></h2><p>The advanced list of ease functions contains most ease methods commonly seen in other software, though their names may be hard to understand. You can view more information online on sites like <a href="https://easings.net/">THIS</a>.</p></div><br><br><br></div><div style="overflow:hidden;"><a name="Combine"></a><h2>How do I combine transitions to make a sequence?</h2><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Editor</span></h2><p>Simply add the <b>LeanJoin</b> component between them.</p></div><br><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Code</span></h2><p>You must call the <b>JoinTransition()</b> method between them. For example:</p><div class="code"><pre>transform.<br> localPositionTransition(new Vector3(10, 10, 10), 0.5f).<br> JoinTransition().<br> localPositionTransition(new Vector3(1, 1, 1), 0.5f);<br></pre></div></div><br><br><br></div><div style="overflow:hidden;"><a name="Delay"></a><h2>How do I add a delay between transitions?</h2><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Editor</span></h2><p>Instead of connecting transitions with the <b>LeanJoin</b> component, use the <b>LeanJoinDelay</b> component.</p></div><br><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Code</span></h2><p>Instead of calling the <b>JoinTransition()</b> method, use the <b>JoinDelayTransition()</b> method. For example:</p><div class="code"><pre>transform.<br> localPositionTransition(new Vector3(10, 10, 10), 0.5f).<br> JoinDelayTransition(5.0f).<br> localPositionTransition(new Vector3(1, 1, 1), 0.5f);<br></pre></div></div><br><br><br></div><div style="overflow:hidden;"><a name="Insert"></a><h2>How do I insert transitions to save time?</h2><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Editor</span></h2><p>Instead of connecting transitions with the <b>LeanJoin</b> component, use the <b>LeanJoinInsert</b> component.</p></div><br><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Code</span></h2><p>Instead of calling the <b>JoinTransition()</b> method, use the <b>JoinInsertTransition()</b> method. For example:</p><div class="code"><pre>transform.<br> localPositionTransition(new Vector3(10, 10, 10), 0.5f).<br> JoinInsertTransition(gameObjectWithTransitions).<br> localPositionTransition(new Vector3(1, 1, 1), 0.5f);<br></pre></div></div><br><br><br></div><div style="overflow:hidden;"><a name="InsertWithoutJoin"></a><h2>How do I delay or insert without joining?</h2><p>The <b>JoinDelay</b> and <b>JoinInsert</b> features are same as <b>Delay</b> and <b>Insert</b>, except they automatically have a <b>Join</b> placed at the start and end.</p><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Editor</span></h2><p>Instead of connecting transitions with the <b>LeanJoinInsert</b> component, you can manually add the <b>LeanJoin</b> and <b>LeanInsert</b> components.</p><p>Instead of connecting transitions with the <b>LeanJoinDelay</b> component, you can manually add the <b>LeanJoin</b> and <b>LeanDelay</b> components.</p></div><br><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Code</span></h2><p>Instead of calling the <b>JoinDelayTransition()</b> method, you can manually call the <b>JoinTransition()</b> and <b>DelayTransition()</b> methods.</p><p>Instead of calling the <b>JoinInsertTransition()</b> method, you can manually call the <b>JoinTransition()</b> and <b>InsertTransition()</b> methods.</p></div><br><br><br></div><div style="overflow:hidden;"><a name="Timing"></a><h2>How do I change the transition timing?</h2><p>By default, all transitions are executed in <b>Update</b>, using <b>Unscaled Time</b>.</p><p>To change this, simply modify the settings of the <b>LeanTransition</b> component in your scene. If your scene doesn't contain this component, then make a new GameObject and add it.</p><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Editor</span></h2><p>Insert the <b>LeanTime()</b> component into your transition, and all transitions after it will use the specified time.</p><div class="tip"><strong>NOTE</strong>&emsp; This isn't a transition, so you don't need to join it to your other transitions.</div><div class="tip"><strong>NOTE</strong>&emsp; The transition time will be reset to default the next time you begin transitions.</div></div><br><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Code</span></h2><p>Simply call the TimeTransition() method, and all transitions after it will use the specified time.</p><div class="tip"><strong>NOTE</strong>&emsp; To reset the transition time you must call the <b>LeanTransition.ResetTiming</b> method, or call the <b>TimeTransition()</b> method with <b>LeanTime.Default</b>.</div></div><br><br><br></div><div style="overflow:hidden;"><a name="Timing"></a><h2>How do I perform a custom action?</h2><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Editor</span></h2><p>You can add the <b>LeanEvent</b> component into your transition, and make the event call a custom function.</p><div class="tip"><strong>NOTE</strong>&emsp; The <b>LeanEvent</b> component executes after the specified <b>Delay</b>, it's not instant.</div><div class="tip"><strong>NOTE</strong>&emsp; This isn't a transition, so you don't need to join it to your other transitions.</div><div class="tip"><strong>NOTE</strong>&emsp; The transition time will be reset to default the next time you begin transitions.</div></div><br><div style="padding-left:75px; overflow:hidden;"><br>
<h2><span style="">Code</span></h2><p>Simply call the EventTransition() method, and the specified action will be invoked after the specified time. For example:</p><div class="code"><pre>transform.EventTransition(() => Debug.Log("Hello World!"), 1.0f);<br></pre></div></div><br><br><br></div>
<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="https://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/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="GetLeanTouch"></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/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="GetLeanTouchPlus"></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/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="GetLeanLocalization"></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/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="GetLeanPool"></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/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="GetLeanTransition"></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/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="GetLeanGUI"></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/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="GetLeanGUIShapes"></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/LeanTexture" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/200591/icon" alt="Lean Texture" width="128" height="128" /></a></div>
<a name="GetLeanTexture"></a><h2>Lean Texture</h2>
<p>Lean Texture allows you quickly modify textures in your project with a range of filters, pack them together into channels, and much more!</p>
</div>
<br><div style="overflow:hidden;">
<div style="float: left; padding-right: 20px;"><a href="https://CarlosWilkes.com/Get/LeanTexturePlus" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/200571/icon" alt="Lean Texture+" width="128" height="128" /></a></div>
<a name="GetLeanTexturePlus"></a><h2>Lean Texture+</h2>
<p>Lean Texture+ is an extension to Lean Texture, adding many new types of texture modification tools!</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="GetPaintIn3D"></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/FLOW" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/197014/icon" alt="FLOW" width="128" height="128" /></a></div>
<a name="GetFlow"></a><h2>FLOW</h2>
<p><strong>FLOW</strong> allows you to add large scale interactive fluids to your scene - all highly optimized using GPU acceleration.</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="GetDestructible2D"></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/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="GetSpaceGraphicsToolkit"></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/SpaceGraphicsPlanets" target="_blank"><img src="https://api.assetstore.unity3d.com/affiliate/embed/package/124578/icon" alt="Space Graphics Planets" width="128" height="128" /></a></div>
<a name="GetPlanetPack"></a><h2>Space Graphics Planets</h2>
<p>Enhance your space scenes using this large pack of high detail volumetric planets. These planets are finished using the powerful planet features from Space Graphics Toolkit (not required).</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="GetVolumetricAudio"></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="1.2.1"></a><h2>1.2.1</h2><p>Updated common library code.</p><br><br></div><div style="overflow:hidden;"><a name="1.2.0"></a><h2>1.2.0</h2><p>Added transition builder tool.<br>Added <b>Stop</b> demo scene.<br>Added <b>Skip</b> demo scene.<br>Added <b>Repeat</b> demo scene.<br>Added <b>LeanGameObjectPool.GetClones</b> method.<br>Renamed <b>LeanAnimation</b> component to <b>LeanManualAnimation</b>.<br>Renamed <b>LeanTransition.CurrentHead</b> property to <b>PreviousState</b>.<br>Renamed vector element transitions (e.g. from "positionTransitionX" to "positionTransition_x").<br>Added <b>LeanAnimationRepeater.RemainingCount</b> setting.<br>Removed <b>LeanAnimationOnce</b> component (use <b>LeanAnimationRepeater</b> instead).</p><br><br></div><div style="overflow:hidden;"><a name="1.1.4"></a><h2>1.1.4</h2><p>Fixed joining to transitions with a <b>Duration</b> of 0.<br>Disabled <b>PlaySound</b> transition Fill button.</p><br><br></div><div style="overflow:hidden;"><a name="1.1.3"></a><h2>1.1.3</h2><p>Fixed transition players starting with a <b>Speed</b> of 0.<br>Zero duration transitions now instantly execute.<br>Added advanced ease types.</p><br><br></div><div style="overflow:hidden;"><a name="1.1.2"></a><h2>1.1.2</h2><p>Moved main build to Unity <b>2018.4.13f1</b>.<br>Simplified <b>LeanPlayer</b> code.<br>Added per-transition settings to <b>LeanPlayer</b>.</p><br><br></div><div style="overflow:hidden;"><a name="1.1.1"></a><h2>1.1.1</h2><p>Moved main build to Unity 2018.4.0f1.<br>Updated documentation.<br>Added asmdef.</p><br><br></div><div style="overflow:hidden;"><a name="1.1.0"></a><h2>1.1.0</h2><p>Transitions with quaternions now show euler angles in inspector.<br>JoinDelay Transition (LeanJoinDelay) now accepts a negative delay time.<br>All nested transitions now begin after the last transition in the parent completes.<br>Updated component documentation link.<br>Renamed <b>auto fill</b> button to <b>fill</b>.<br>Fill button is now always visible for component that can be filled.<br>Added <b>Time</b> demo scene.<br>Added <b>Transform.position.x</b> transition.<br>Added <b>Transform.position.y</b> transition.<br>Added <b>Transform.position.z</b> transition.<br>Added <b>Material float</b> transition.<br>Added <b>Material color</b> transition.<br>Added <b>Material vector</b> transition.<br>Added transition class name to component path name.<br>Organized transition component names into folders.</p><br><br></div><div style="overflow:hidden;"><a name="1.0.9"></a><h2>1.0.9</h2><p>Fixed transition timing implementation.<br>Fixed <b>auto fill</b> button not appearing for transitions without targets.<br>Added <b>Time.timeScale</b> transition.<br>Updated common library code.</p><br><br></div><div style="overflow:hidden;"><a name="1.0.8"></a><h2>1.0.8</h2><p>Fixed inspector expand buttons in UI Elements.</p><br><br></div><div style="overflow:hidden;"><a name="1.0.7"></a><h2>1.0.7</h2><p>Fixed bug in LeanHelper.cs that prevents making builds.</p><br><br></div><div style="overflow:hidden;"><a name="1.0.6"></a><h2>1.0.6</h2><p>Updated <b>Common</b> library code.</p><br><br></div><div style="overflow:hidden;"><a name="1.0.5"></a><h2>1.0.5</h2><p>Fixed issue where transitions wouldn't stop when exiting play mode.<br>Updated <b>Common</b> library code.<br>Updated demo scene design.</p><br><br></div><div style="overflow:hidden;"><a name="1.0.4"></a><h2>1.0.4</h2><p>Fixed <b>LeanPlaySound</b> auto fill button.<br>Improved inspector code.<br>Improved code comments.</p><br><br></div><div style="overflow:hidden;"><a name="1.0.3"></a><h2>1.0.3</h2><p>Added <b>Auto Fill</b> button to transition components.</p><br><br></div><div style="overflow:hidden;"><a name="1.0.2"></a><h2>1.0.2</h2><p>Updated documentation.</p><br><br></div><div style="overflow:hidden;"><a name="1.0.1"></a><h2>1.0.1</h2><p>Added Transform.position transition.<br>Fixed bug when adding multiple events to the same object.<br>Allowed LeanPlayer.Speed to be toggled off.</p><br><br></div><div style="overflow:hidden;"><a name="1.0.0"></a><h2>1.
<br><br>
<br><br>
<h1>Components</h1>
<div style="overflow:hidden;"><a name="LeanMethod"></a><h2>LeanMethod</h2><p>This is the base class for all transition methods.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanState</b>
<br>
<span style="">PreviousState</span>
</h2>
<p>Each time this transition method registers a new state, it will be stored here.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">Smooth</span>
<br>
<b>LeanEase ease, float x</b>
</h2>
<p>This will take the input linear 0..1 value, and return a transformed version based on the specified easing function.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">T</b>
<br>
<span style="">GetAliasedTarget&lt;T&gt;</span>
<br>
<b>T current</b>
</h2>
<p>This allows you to get the current <b>Target</b> value, or an aliased override.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanPlayer"></a><h2>LeanPlayer</h2><p>This class allows you to reference Transforms whose GameObjects contain transition components.</p><p>If these transition components define TargetAlias names, then this class will also manage them in the inspector.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">List&lt;Entry&gt;</b>
<br>
<span style="">Entries</span>
</h2>
<p>This stores a list of all <b>Transform</b>s containing transitions that will be played, and their settings.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">Begin</span>
<br>
<b></b>
</h2>
<p>This method will begin all transition entries.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanState"></a><h2>LeanState</h2><p>This is the base class for all transition states. When you register a transition (e.g. LeanTransformLocalPosition), it will return an instance of this class, allowing it to be updated by the transition manager.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Duration</span>
</h2>
<p>The transition will complete after this many seconds.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Age</span>
</h2>
<p>The current amount of seconds this transition has been running (-1 for pending Begin call).</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">List&lt;LeanState&gt;</b>
<br>
<span style="">Prev</span>
</h2>
<p>If this transition is chained to another, then this tells you which must finish before this can begin.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">List&lt;LeanState&gt;</b>
<br>
<span style="">Next</span>
</h2>
<p>If this transition is chained to another, then this tells you which will begin after this finishes.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">bool</b>
<br>
<span style="">Ignore</span>
</h2>
<p>If this is enabled then the current transition will no longer update, but will otherwise act as normal and not be removed. This is so any transition chain can still work as expected.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">float</b>
<br>
<span style="">Remaining</span>
</h2>
<p>This tells you how many seconds remain until this state completes.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">BeginAfter</span>
<br>
<b>LeanState previousState</b>
</h2>
<p>If you want this transition to begin after another completes, then call this method.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">Skip</span>
<br>
<b></b>
</h2>
<p>This will instantly skip this transition to its final state.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">SkipAll</span>
<br>
<b></b>
</h2>
<p>This will instantly skip this transition to its final state, and all others joined to it.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">Stop</span>
<br>
<b></b>
</h2>
<p>This will stop this transition at its current position.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">void</b>
<br>
<span style="">StopAll</span>
<br>
<b></b>
</h2>
<p>This will stop this transition at its current position, and all others joined to it.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanStateWithTarget&lt;T&gt;"></a><h2>LeanStateWithTarget&lt;T&gt;</h2><p>This class stores additional base data for transitions that modify a target UnityEngine.Object (most do).</p><div style="padding-left:75px;"><br>
<h2>
<b style="">T</b>
<br>
<span style="">Target</span>
</h2>
<p>This is the target of the transition. For most transition methods this will be the component that will be modified.</p>
</div><br><br><br></div><div style="overflow:hidden;"><a name="LeanTransition"></a><h2>LeanTransition</h2><p>This component updates all active transition methods, both in game, and in the editor.</p><div style="padding-left:75px;"><br>
<h2>
<b style="">LeanTiming</b>
<br>
<span style="">DefaultTiming</span>
</h2>
<p>This allows you to set where in the game loop animations are updated when timing = LeanTime.Default.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static List&lt;LeanTransition&gt;</b>
<br>
<span style="">Instances</span>
</h2>
<p>This stores a list of all active and enabled <b>LeanTransition</b> instances in the scene.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static LeanTiming</b>
<br>
<span style="">CurrentDefaultTiming</span>
</h2>
<p>This property gives you the first <b>DefaultTiming</b> instance value.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static int</b>
<br>
<span style="">Count</span>
</h2>
<p>This tells you how many transitions are currently running.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static LeanState</b>
<br>
<span style="">PreviousState</span>
</h2>
<p>After a transition state is registered, it will be stored here. This allows you to copy it out for later use.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static LeanState</b>
<br>
<span style="">CurrentQueue</span>
</h2>
<p>If you want the next registered transition state to automatically begin after an existing transition state, then specify it here.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static LeanTiming</b>
<br>
<span style="">CurrentTiming</span>
</h2>
<p>This allows you to change where in the game loop all future transitions in the current animation will be updated.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static float</b>
<br>
<span style="">CurrentSpeed</span>
</h2>
<p>This allows you to change the transition speed multiplier of all future transitions in the current animation.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Dictionary&lt;string, Object&gt;</b>
<br>
<span style="">CurrentAliases</span>
</h2>
<p>This allows you to change the alias name to UnityEngine.Object association of all future transitions in the current animation.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static LeanTiming</b>
<br>
<span style="">GetTiming</span>
<br>
<b>LeanTiming current = LeanTiming.Default</b>
</h2>
<p>This method will return the specified timing, unless it's set to <b>Default</b>, then it will return <b>UnscaledTime</b>.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static LeanTiming</b>
<br>
<span style="">GetTimingAbs</span>
<br>
<b>LeanTiming current</b>
</h2>
<p>This method works like <b>GetTiming</b>, but it won't return any unscaled times.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static void</b>
<br>
<span style="">RequireSubmitted</span>
<br>
<b></b>
</h2>
<p>If you failed to submit a previous transition then this will throw an error, and then submit them.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static void</b>
<br>
<span style="">ResetTiming</span>
<br>
<b></b>
</h2>
<p>This will reset any previously called <b>CurrentTiming</b> calls.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static void</b>
<br>
<span style="">ResetQueue</span>
<br>
<b></b>
</h2>
<p>This will reset any previously called <b>CurrentQueue</b> calls.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static void</b>
<br>
<span style="">ResetSpeed</span>
<br>
<b></b>
</h2>
<p>This will reset any previously called <b>CurrentSpeed</b> calls.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static void</b>
<br>
<span style="">ResetState</span>
<br>
<b></b>
</h2>
<p>This will reset the <b>CurrentTiming</b>, <b>CurrentQueue</b>, and <b>CurrentSpeed</b> values.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static void</b>
<br>
<span style="">Submit</span>
<br>
<b></b>
</h2>
<p>This will submit any previously registered transitions, and reset the timing.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static void</b>
<br>
<span style="">BeginAllTransitions</span>
<br>
<b>Transform root, float speed = 1.0f</b>
</h2>
<p>This will begin all transitions on the specified GameObject, all its children, and then submit them.</p><p>If you failed to submit a previous transition then this will also throw an error.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static void</b>
<br>
<span style="">InsertTransitions</span>
<br>
<b>GameObject root, float speed = 1.0f, LeanState parentHead = null</b>
</h2>
<p>This will begin all transitions on the specified GameObject, and all its children.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static void</b>
<br>
<span style="">InsertTransitions</span>
<br>
<b>Transform root, float speed = 1.0f, LeanState parentHead = null</b>
</h2>
<p>This will begin all transitions on the specified Transform, and all its children.</p>
</div><br><div style="padding-left:75px;"><br>
<h2>
<b style="">static Dictionary&lt;string,System.Type&gt;</b>
<br>
<span style="">FindAllAliasTypePairs</span>
<br>
<b>Transform root</b>
</h2>
<p>This method returns all TargetAliases on all transitions on the specified Transform.</p>
</div><br><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="#WhatIs">What is Lean Transition?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#HowToUse">How do I use it?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#Ease">How do the ease functions work?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#Combine">How do I combine transitions to make a sequence?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#Delay">How do I add a delay between transitions?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#Insert">How do I insert transitions to save time?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#InsertWithoutJoin">How do I delay or insert without joining?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#Timing">How do I change the transition timing?</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#Timing">How do I perform a custom action?</a></p>
<br><br>
<h2 style="padding-bottom: 5px;">Assets</h2>
<p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetLeanTouch">Lean Touch</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetLeanTouchPlus">Lean Touch+</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetLeanLocalization">Lean Localization</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetLeanPool">Lean Pool</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetLeanTransition">Lean Transition</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetLeanGUI">Lean GUI</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetLeanGUIShapes">Lean GUI Shapes</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetLeanTexture">Lean Texture</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetLeanTexturePlus">Lean Texture+</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetPaintIn3D">Paint in 3D</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetFlow">FLOW</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetDestructible2D">Destructible 2D</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetSpaceGraphicsToolkit">Space Graphics Toolkit</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetPlanetPack">Space Graphics Planets</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#GetVolumetricAudio">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="#1.2.1">1.2.1</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.2.0">1.2.0</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.1.4">1.1.4</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.1.3">1.1.3</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.1.2">1.1.2</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.1.1">1.1.1</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.1.0">1.1.0</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.0.9">1.0.9</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.0.8">1.0.8</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.0.7">1.0.7</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.0.6">1.0.6</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.0.5">1.0.5</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.0.4">1.0.4</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.0.3">1.0.3</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.0.2">1.0.2</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.0.1">1.0.1</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#1.0.0">1.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="#LeanMethod">LeanMethod</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanPlayer">LeanPlayer</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanState">LeanState</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanStateWithTarget&lt;T&gt;">LeanStateWithTarget&lt;T&gt;</a></p><p style="margin: 2px; padding-left: 10px; text-indent: -10px;"><a href="#LeanTransition">LeanTransition</a></p>
<br><br>
</div>
<div style="background-color: #0075D0; position: absolute; left: 0px; right: 0px; bottom: 0px; height: 20px;">
</div>
</body>
</html>