我正在构建一个体素游戏,我想模拟水中产生的波浪。我想做的方式是绘制在短时间内增长的圆圈。为了给你一个我想要创建的视觉线索是这样的:
我用蓝色材质创建了一个平面,并且我有以下名为 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 圆圈的任何想法?