Рисование круга на плоской поверхности - PullRequest
0 голосов
/ 11 июля 2019

Я создаю воксельную игру и хочу симулировать волны, которые создаются в воде. Я хочу нарисовать круги, которые растут в течение короткого периода времени. Чтобы дать вам визуальное представление о том, что я хочу создать, это что-то вроде этого:

Circles simulating water waves

Я создал самолет с синим материалом, и у меня есть следующий скрипт с именем 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 круги, которые появляются поверх синей плоской поверхности?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...