Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/MegaShapeRectangle.cs
2026-02-21 16:45:37 +08:00

70 lines
2.3 KiB
C#

using UnityEngine;
[AddComponentMenu("MegaShapes/Rectangle")]
public class MegaShapeRectangle : MegaShape
{
public float length = 1f;
public float width = 1f;
public float fillet;
private const float CIRCLE_VECTOR_LENGTH = 0.5517862f;
public override string GetHelpURL()
{
return "?page_id=1189";
}
public override void MakeShape()
{
Matrix4x4 matrix = GetMatrix();
length = Mathf.Clamp(length, 0f, float.MaxValue);
width = Mathf.Clamp(width, 0f, float.MaxValue);
fillet = Mathf.Clamp(fillet, 0f, float.MaxValue);
MegaSpline megaSpline = NewSpline();
float num = length / 2f;
float num2 = width / 2f;
Vector3 vector = new Vector3(num2, num, 0f);
if (fillet > 0f)
{
float num3 = fillet * 0.5517862f;
Vector3 vector2 = new Vector3(fillet, 0f, 0f);
Vector3 vector3 = new Vector3(0f, fillet, 0f);
Vector3 vector4 = new Vector3(num3, 0f, 0f);
Vector3 vector5 = new Vector3(0f, num3, 0f);
Vector3 vector6 = vector - vector3;
megaSpline.AddKnot(vector6, vector6 - vector5, vector6 + vector5, matrix);
vector -= vector2;
megaSpline.AddKnot(vector, vector + vector4, vector - vector4, matrix);
vector = new Vector3(0f - num2, num, 0f);
Vector3 vector7 = vector + vector2;
megaSpline.AddKnot(vector7, vector7 + vector4, vector7 - vector4, matrix);
vector -= vector3;
megaSpline.AddKnot(vector, vector + vector5, vector - vector5, matrix);
vector = new Vector3(0f - num2, 0f - num, 0f);
vector6 = vector + vector3;
megaSpline.AddKnot(vector6, vector6 + vector5, vector6 - vector5, matrix);
vector += vector2;
megaSpline.AddKnot(vector, vector - vector4, vector + vector4, matrix);
vector = new Vector3(num2, 0f - num, 0f);
vector6 = vector - vector2;
megaSpline.AddKnot(vector6, vector6 - vector4, vector6 + vector4, matrix);
vector += vector3;
megaSpline.AddKnot(vector, vector - vector5, vector + vector5, matrix);
}
else
{
megaSpline.AddKnot(vector, vector, vector, matrix);
vector = new Vector3(0f - num2, num, 0f);
megaSpline.AddKnot(vector, vector, vector, matrix);
vector = new Vector3(0f - num2, 0f - num, 0f);
megaSpline.AddKnot(vector, vector, vector, matrix);
vector = new Vector3(num2, 0f - num, 0f);
megaSpline.AddKnot(vector, vector, vector, matrix);
}
megaSpline.closed = true;
CalcLength();
}
}