Files
VOIDRPG/Assets/90 - Scripts/Generic/AreaOfEffect/LineAreaOfEffect.cs
T
2026-07-09 21:33:33 +02:00

41 lines
1.3 KiB
C#

using System.Linq;
using Sirenix.OdinInspector;
using UnityEngine;
namespace VOID.Generic.AreaOfEffect
{
[TypeRegistryItem("Line")]
public class LineAreaOfEffect : AbstractAreaOfEffect
{
[SerializeField, Required, MinValue(0.5), MaxValue(10)]
private float length;
[SerializeField, Required, MinValue(0.1), MaxValue(1)]
private float width;
public override Mesh GetMesh()
{
var scale = new Vector3(width, 1, length);
var cubeMesh = Resources.GetBuiltinResource<Mesh>("Cube.fbx");
var mesh = new Mesh();
mesh.vertices = cubeMesh.vertices.Select(vertex => Vector3.Scale(vertex, scale)).ToArray();
mesh.triangles = cubeMesh.triangles;
mesh.uv = cubeMesh.uv;
mesh.normals = cubeMesh.normals;
mesh.colors = cubeMesh.colors;
mesh.tangents = cubeMesh.tangents;
return mesh;
}
public override Collider AddCollider(GameObject gameObject)
{
var collider = gameObject.AddComponent<BoxCollider>();
collider.isTrigger = true;
collider.size = new Vector3(width, 1, length);
collider.center = new Vector3(0, 0, length/2);
return collider;
}
}
}