【Unity】線を引く(LineRenderer)

Unityで線を引く LineRenderer C#
Unityで線を引く LineRenderer
バージョン
  • Unity 2022.3.45f1

Unityで線を引く方法です。画像編集ソフトや描画系アプリで線を引くのは直感的で簡単ですが、Unityでは基本的に頂点を設定して繋げる形になります。

LineRendererの生成

最初に線を引くためのゲームオブジェクトを作成します。

Unity Editor

ヒエラルキー右クリック →
「Effects」→「Line」

これで線用のゲームオブジェクト(LineRenderer)が準備できました。

Unity Editor

LineRendererの設定

作成したゲームオブジェクトにはLineRendererというコンポーネントが含まれているので、インスペクターで線の設定をしていきます。
よく使うものは以下の通りです。

コントロール説明
Scene Toolsシーンビューでのビジュアル編集
Loop始点と終点を線で繋ぐ
Positions線を繋ぐ頂点の設定
Size:頂点の数
Index:頂点番号
X:頂点の水平位置
Y:頂点の垂直位置
Z:頂点の奥行位置
Width線の幅設定
Color線の色設定
Corner Vertices曲がり角の丸み設定
End Cap Vertices線終端の丸み設定
Line Renderer Inspector

画像右側のインスペクターのように設定すると青い線が引けます。
色の設定は始点と終点の2つ設定しています。(#0000FF)

スクリプトから操作

LineRendererの設定はC#スクリプトからも行えます。
以下のコードは新たに緑色の三角形を描画するサンプルです。

using UnityEngine;

public class CreateTriangle : MonoBehaviour
{
    private LineRenderer lineRenderer;

    void Start()
    {
        //LineRenderer追加
        lineRenderer = gameObject.AddComponent<LineRenderer>();

        //シェーダー取得
        Shader lineShader = Shader.Find("Hidden/Internal-Colored");

        //マテリアル作成
        Material lineMaterial = new Material(lineShader);

        //LineRendererにマテリアルを追加
        lineRenderer.material = lineMaterial;

        //LineRenderer設定
        SetupLine();
    }

    private void SetupLine()
    {
        //ループ設定
        lineRenderer.loop = true;

        //頂点の初期設定
        Vector3[] positions = new Vector3[3];
        positions[0] = new Vector3(0, 3, 0);
        positions[1] = new Vector3(-3, -3, 3);
        positions[2] = new Vector3(3, -3, 0);

        //頂点の数を設定
        lineRenderer.positionCount = positions.Length;

        //頂点の位置設定
        lineRenderer.SetPositions(positions);

        //幅の設定
        lineRenderer.startWidth = 0.5f;
        lineRenderer.endWidth = 0.5f;

        //色の設定
        lineRenderer.startColor = Color.green;
        lineRenderer.endColor = Color.green;

        //曲がり角の丸み設定
        lineRenderer.numCornerVertices = 10;

        //線終端の丸み設定
        lineRenderer.numCapVertices = 0;
    }
}

このようにスクリプトからも設定・制御することができます。

空のオブジェクトに上記スクリプトをアタッチして実行します。
最初に生成した青い線はそのままにしています。

Line Renderer
Line Renderer コンポーネント - Unity マニュアル
Line Renderer (ラインレンダラー) コンポーネントは、3D 空間の 2 つ以上の点の配列をとり、それぞれの間に直線を描きます。1 つのラインレンダラーを使用して、単純な直線から複雑な螺旋まで、どんなものでも描画することができま...
タイトルとURLをコピーしました