LoginSignup
0
2

More than 3 years have passed since last update.

Unity 2D #1 円の描画

Posted at

Unityで円を描画する
参考URL:https://baba-s.hatenablog.com/entry/2019/10/18/110000

Line Rendererを使用し、円状に点を配置することで実装

[SerializeField] private LineRenderer m_lineRenderer = null; // 円を描画するための LineRenderer
[SerializeField] private float m_radius = 0;    // 円の半径
[SerializeField] private float m_lineWidth = 0;    // 円の線の太さ
[SerializeField] private float center_x = 0;    // 円の中心座標
[SerializeField] private float center_y = 0;    // 円の中心座標
private void Reset(){
    m_lineRenderer = GetComponent<LineRenderer>();
}
private void Awake(){
    int segments = 380;
    m_lineRenderer.startWidth = m_lineWidth;
    m_lineRenderer.endWidth = m_lineWidth;
    m_lineRenderer.positionCount = segments;
    var points = new Vector3[segments];
    for (int i = 0; i < segments; i++){
        var rad = Mathf.Deg2Rad * (i * 380f / segments);
        var x = center_x + Mathf.Sin(rad) * m_radius;
        var y = center_y + Mathf.Cos(rad) * m_radius;
        points[i] = new Vector3(x, y, 0);
    }
    m_lineRenderer.SetPositions(points);
}

segmentsの値が360でないのは、360にするとLine Rendererの両端が十分に重なってなく、円が一部欠けたように見えてしまうからです。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2