0

我正在构建一个体素游戏,我想模拟水中产生的波浪。我想做的方式是绘制在短时间内增长的圆圈。为了给你一个我想要创建的视觉线索是这样的:

模拟水波的圆圈

我用蓝色材质创建了一个平面,并且我有以下名为 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 圆圈的任何想法?

4

0 回答 0