Add component linesec.

This commit is contained in:
2023-04-14 14:31:08 +08:00
parent 48349b598d
commit 3690adf5dd
3 changed files with 35 additions and 5 deletions

View File

@@ -5,8 +5,38 @@ namespace Cryville.Crtr.Components {
public class TrackLine : SectionalGameObject {
readonly List<Vector3> vertices = new List<Vector3>();
LineRenderer lineRenderer;
public TrackLine() {
SubmitProperty("width", new PropOp.Float(v => Width = v));
}
private float m_width;
public float Width {
get { return m_width; }
set {
m_width = value;
if (lineRenderer != null) {
lineRenderer.startWidth = value;
lineRenderer.endWidth = value;
}
}
}
public override void Init() {
base.Init();
lineRenderer = gameObject.AddComponent<LineRenderer>();
lineRenderer.materials = materials = new Material[] { MeshWrapper.NewMaterial() };
Width = Width;
UpdateColor();
}
protected override void UpdateColor() {
base.UpdateColor();
if (lineRenderer != null) {
lineRenderer.startColor = Color;
lineRenderer.endColor = Color;
}
}
protected override void AppendPointInternal(Vector3 p, Quaternion r) {
@@ -14,13 +44,12 @@ namespace Cryville.Crtr.Components {
}
public override void Seal() {
var r = GetComponent<LineRenderer>();
#if UNITY_5_6_OR_NEWER
r.positionCount = vertices.Count;
lineRenderer.positionCount = vertices.Count;
#else
r.SetVertexCount(vertices.Count);
lineRenderer.SetVertexCount(vertices.Count);
#endif
for (int i = 0; i < vertices.Count; i++) r.SetPosition(i, vertices[i]);
for (int i = 0; i < vertices.Count; i++) lineRenderer.SetPosition(i, vertices[i]);
}
public override void Reset() {