以下のコードを使用して、ポイント数に基づいてラインレンダラを使用してシェイプを作成しています。 3より大きい点(三角形など)では、最初と最後の点は他の点と同じように形を閉じません。ギャップを残さずにラインレンダラシェイプをアニメーション化する方法
。どのように3つ以上の点を持つ形状を目に見える隙間なしで閉じることができますか?
どのように(特定のコルーチンを使用して)特定の期間にわたって線を描画するようにシェイプをアニメーションできますか?
public class CircleDrawing : MonoBehaviour
{
[Tooltip("The radius of the circle, measured in world units.")]
public float Radius = 2;
[Tooltip("The number of vertices in the circle.")]
public int Points = 5;
[Tooltip("The color of the circle.")]
public Color Color;
private LineRenderer lineRenderer;
public void Awake()
{
lineRenderer = gameObject.AddComponent<LineRenderer>();
lineRenderer.material = new Material(Shader.Find("Sprites/Default"));
lineRenderer.material.color = Color;
lineRenderer.startWidth = lineRenderer.endWidth = 0.5f;
lineRenderer.positionCount = Points + 1; //+1 to close the shape
Draw();
}
private void Draw()
{
float angle = 0f;
for (int i = 0; i <= Points; i++)
{
float x = Radius * Mathf.Cos(angle) + transform.position.x;
float y = Radius * Mathf.Sin(angle) + transform.position.y;
lineRenderer.SetPosition(i, new Vector3(x, y, 0.01f)); //Z is slightly behind the paddle so it draws in front
angle += (2f * Mathf.PI)/Points;
}
}
private void OnDestroy()
{
Destroy(lineRenderer.material);
}
}
[異なるStackExchangeのサイト間のないクロスポストをしてください](https://gamedev.stackexchange.com/questions/150200/how-to-animate-line-renderer-shapes-without-leaving-a -gap/150233#150233)。いずれかを選択してください(私はGameDev.StackExchangeでもっとゲームに特化した答えを得られると思います)。それは時々誰かが来て、あなたのために良い答えを書く時間があるためにしばらくかかることは当然です。それを明確にするためにあなたの質問を編集するか、または担当者が費やすために賞金を追加することは、より注意を引く効果的な方法になります。 – DMGregory
@DMGregoryごめんなさい、よく書かれています。 – ItsMeAgain
@DMGregory私はGameDevから質問を削除し、ここで賞品を始めました。 – ItsMeAgain