----- 2.00 ----- FEATURE: Editor UI upgrade FEATURE: Completely new Spline Editor written from scratch to be faster, more flexible and intuitive FEATURE: Added the "Optimized" sample mode for the Spline Computer which removes spline samples at straight segments to reduce polycount and memory (uses more CPU) FEATURE: Added the "Auto Rebuild" property to the Spline Computer which defines whether or not the spline will be automatically re-sampled and the users re-built when a change occurs FEATURE: New point deleting tool which works like a brush FEATURE: Clicking and holding the left mouse button in create point mode will now adjust the created point's tangents (only in Bezier mode) FEATURE: Added the Auto Tangents point operation which generates smooth tangents for the selected Bezier points FEATURE: Points can now be moved along surfaces with mesh colliders using the move tool FEATURE: New normal editing tool - "Auto" which keeps the spline normals perpendicular to the spline FEATURE: Ctrl + A during spline edit mode selects all points FEATURE: Ctrl + D during spline edit mode duplicates the selected points and inserts them into the spline FEATURE: Added sample count and spline length information inside the Spline Computer editor FEATURE: A brand new spline morphing system with a lot of new features FEATURE: Sample Modifiers for offset, direction, color and size added to the SplineUser class, allowing for easy manipulation of the spline samples. FEATURE: Added the option to remove inner faces for meshes assigned to the Spline Mesh component FEATURE: Added the vertex group margin property to the SplineMesh channels. Increasing its value reduces the amount of spline calculations per mesh but also makes the mesh look chunky (used when performance is targeted). FEATURE: The 2D option for the splines is no longer an editor-only feature. The SplineComputer now has a "is2D" property which when toggled, will keep the spline flat and the normals pointing back automatically FEATURE: Multi-object editing for Spline Users and Spline Computers inside the editor FEATURE: Newly created splines start in point creation mode (can be turned off from the preferences) FEATURE: Added the Auto Count option to the SplineMesh component's channels. This will automatically set the mesh count for the channel based on the mesh bounds and the spline length OPTIMIZATION: Spline Users no longer sample the Spline Computers. Instead, the Spline Computer now caches the spline results - this optimizes memory usage. OPTIMIZATION: Splines are no longer re-calculated when moving the Spline Computer's transform. Instead, the raw spline samples are now cached and only transformed when the Spline Computer's transform changes. OPTIMIZATION: When changing a spline point, only the affected spline area is re-sampled instead of resampling the whole spline (works only for non-uniform splines). OPTIMIZATION: General SplineUser performance improvement OPTIMIZATION: Multithreading has changed. Instead of each Spline User creating its own thread, a thread manager has been introduced. It automatically runs several threads (two by default) and finds the best suitable thread to run the current frame's logic in. FIX: Marking mesh generators as double sided no longer throws an exception FIX: Reduced GC in the SplineMesh component FIX: When a Spline Computer or a Node is a child of another object, moving the parent object will now properly update them FIX: Improved the spline drawing performance in the editor FIX: The SplineMesh now properly preserves lightmap coordinates FIX: The expand functionality of the Surface Generator now works properly for non-extruded surfaces FIX: Improved the stability of the Surface Generator FIX: Improved the direction calculation for Linear splines REMOVED: The Junction address has been removed from the Spline Users completely - the system was not flexible enough to facilitate most gameplay needs. CHANGE: The Precision of the splines [0-1] has been replaced by the sample rate (integer) [2-N] CHANGE: The "computer" property of the SplineUser class has been renamed to "spline" CHANGE: The sample targets hav been removed - Spline Users now only sample Spline Computers CHANGE: The "Uniform Samples" and "Preserve Clip Range" properties of the Spline User have been removed. Uniform is now a property of Spline Computer and samples are automatically handled CHANGE: The morph system has been taken out of the Spline Computer component and made into a new, separate component CHANGE: The spline triggers are now using the built-in Unity Events CHANGE: The spline triggers have been moved from the Spline Tracer class to the Spline Computer class. This allows CHANGE: The Custom Offset and Custom Rotation regions have been removed from the Spline Tracer class. The Sample Modifiers of the SplineUser class now do the same. CHANGE: The Mesh Filter component is no longer hidden by default when adding Mesh Generator components to a spline CHANGE: The Create new Spline and new Node functionality is now moved inside Game Object -> 3D Object -> Spline Computer API: Added the onNode event to the SplineTracer which is invoked at the end of every trace cycle and provides information about junctions and nodes passed along the way. API: Added the EvaluateUniform method to the Spline class which writes an array of uniformly-spaced values API: Added the SplinePoint.AreDifferent static method which compares the values of two spline points and returns true if they are different API: The Travel method now has an override with an additional parameter "out float moved" which outputs the actual moved distance API: All obsolete code removed API: SplineComputer.Project now returns a SplineResult instead of a double API: The Evalute, Travel, Project and CalculateLength methods of the SplineUser now only opperate inside the clip range 0 mapping the clipFrom value and 1 mapping the clipTo value API: Part of the Evaluate methods and the Project method of the SplineComputer class now have the "mode" parameter which allows for bypassing the spline cache and calculating the actual spline - gives more accurate results but is more performance-heavy API: The Evaluate method of the SplineComputer now takes the percent as the first parameter and the SplineResult object as the second one (parameters are flipped). API: The SplineFollower.autoFollow property is renamed to just "follow" API: Removed legacy code for Unity 5