ISAP/Library/PackageCache/com.unity.2d.spriteshape@9.0.2/Runtime/SpriteShapeGeometryModifier.cs

35 lines
1.7 KiB
C#

using Unity.Jobs;
using Unity.Collections;
using Unity.Mathematics;
namespace UnityEngine.U2D
{
/// <summary>
/// Custom Post Processing after geometry is generated.
/// </summary>
public abstract class SpriteShapeGeometryModifier : ScriptableObject
{
/// <summary>
/// Modify generated geometry or override custom geometry.
/// </summary>
/// <param name="generator">JobHandle of the Main Job. default if Override.</param>
/// <param name="spriteShapeController">SpriteShapeController from where this function is invoked from. </param>
/// <param name="indices">Indices of generated geometry. </param>
/// <param name="positions">Position of vertices in generated geometry. </param>
/// <param name="texCoords">Texture Coordinates of vertices in generated geometry. </param>
/// <param name="tangents">Tangent of vertices in generated geometry. </param>
/// <param name="segments">Submeshes in generated geometry. </param>
/// <param name="colliderData">Points that define the path of Collider. </param>
/// <returns></returns>
public abstract JobHandle MakeModifierJob(JobHandle generator, SpriteShapeController spriteShapeController, NativeArray<ushort> indices,
NativeSlice<Vector3> positions, NativeSlice<Vector2> texCoords, NativeSlice<Vector4> tangents,
NativeArray<SpriteShapeSegment> segments, NativeArray<float2> colliderData);
/// <summary>
/// Get Versioning so we can check if geometry needs to be generated.
/// </summary>
/// <returns></returns>
public virtual int GetVersion() => GetInstanceID();
}
};