Я создаю воксельную игру и хочу симулировать волны, которые создаются в воде. Я хочу нарисовать круги, которые растут в течение короткого периода времени. Чтобы дать вам визуальное представление о том, что я хочу создать, это что-то вроде этого:
Я создал самолет с синим материалом, и у меня есть следующий скрипт с именем WaterWave.cs:
public static class WaterWave
{
public static void DrawCircle(this GameObject container, float radius, float lineWidth)
{
var segments = 360;
var line = container.AddComponent<LineRenderer>();
line.useWorldSpace = false; // use parent's coordenates
line.startWidth = lineWidth;
line.endWidth = lineWidth;
line.positionCount = segments + 1;
var pointCount = segments + 1; // add extra point to make startpoint and endpoint the same to close the circle
var points = new Vector3[pointCount];
for (int i = 0; i < pointCount; i++)
{
var rad = Mathf.Deg2Rad * (i * 360f / segments);
points[i] = new Vector3(Mathf.Sin(rad) * radius, 0, Mathf.Cos(rad) * radius);
}
line.SetPositions(points);
}
}
Затем я создаю другой скрипт (WaveTest.cs) со следующим кодом:
public class WaveTest : MonoBehaviour
{
void Start()
{
WaterWave.DrawCircle(this.gameObject, 5.0f, 1.5f);
}
}
И, наконец, я назначаю оба сценария (WaterWave.cs и WaterTest.cs) объекту синей плоскости, но на поверхности плоскости ничего не появляется.
Есть идеи, как создать 2D круги, которые появляются поверх синей плоской поверхности?