Files
CartoonRPG/Library/PackageCache/com.unity.visualeffectgraph@2973a8ac1070/Editor/Models/Deprecated/CollisionCylinderDeprecated.cs
Caleb Sandford deQuincey 02c4b5ab66 Adding in new packages
2025-06-05 22:59:18 +01:00

57 lines
1.8 KiB
C#

using UnityEngine;
namespace UnityEditor.VFX.Block
{
class CollisionCylinderDeprecated : CollisionBase
{
public override string name { get { return "Collide with Cylinder (deprecated)"; } }
public class InputProperties
{
[Tooltip("Sets the cylinder with which particles can collide.")]
public Cylinder Cylinder = new Cylinder() { height = 1.0f, radius = 0.5f };
}
private string collisionTestSource
{
get
{
if (mode == Mode.Solid)
return @"
bool collision = abs(dir.y) < halfHeight && sqrLength < cylinderRadius * cylinderRadius;
";
else
return @"
bool collision = abs(dir.y) > halfHeight || sqrLength > cylinderRadius * cylinderRadius;
";
}
}
private string normalAndPushSource
{
get
{
if (mode == Mode.Solid)
return @"
n *= distToSide < distToCap ? float3(1,0,1) : float3(0,1,0);
position += n * min(distToSide,distToCap);
";
else
return @"
position += n * float3(max(0,distToSide).xx,max(0,distToCap)).xzy;
n *= distToSide > distToCap ? float3(1,0,1) : float3(0,1,0);
";
}
}
public override void Sanitize(int version)
{
var newCollisionCone = ScriptableObject.CreateInstance<CollisionConeDeprecatedV2>();
SanitizeHelper.MigrateBlockTShapeFromShape(newCollisionCone, this);
var newCollisionConeShape = ScriptableObject.CreateInstance<CollisionShape>();
SanitizeHelper.MigrateBlockCollisionShapeToComposed(newCollisionConeShape, newCollisionCone, CollisionShapeBase.Type.Cone);
ReplaceModel(newCollisionConeShape, this);
}
}
}