日々是好日~every day is a good day~

日常の中の非日常の備忘録

【Unity】オブジェクトを線でつなぐ

今回はオブジェクトとオブジェクトを線でつなぐ方法です
1.つなぐオブジェクトをシーン内にドラッグ&ドロップ
レイヤーの順序を1にしておく

2.ヒエラルキーの+をクリックし エフェクト/ライン を選択

3.追加したLineオブジェクトの位置をすべて0にする

4.Line Rendererのサイズ Indexに数値を入力すると対応する線が表示される
サイズは点の数 Indexは点の座標

Line Rendererに直接数値を入力するやり方もありますが 次はスクリプトから設定する方法です
5.Assets/Scriptを右クリック
作成/C#スクリプトを選択してLineというスクリプトを作成
スクリプトのLineをLineオブジェクトに追加する

6.Lineスクリプトを編集

using UnityEngine;

public class Line : MonoBehaviour
{
    [SerializeField] GameObject apart;
    [SerializeField] GameObject house;
    private  LineRenderer lineRenderer;
    private void Awake()
    {
        lineRenderer = this.GetComponent<LineRenderer>();

        lineRenderer.material = new Material(Shader.Find("Sprites/Default"));
        lineRenderer.startColor = Color.yellow;  //開始点の色を黄色
        lineRenderer.endColor = Color.yellow;    //終了点の色を黄色

        lineRenderer.startWidth = 0.5f;   //開始点の太さを0.5にする
        lineRenderer.endWidth = 0.5f;     //終了点の太さを0.5にする

        var positions = new Vector3[]{
        apart.GetComponent<Transform>().position,  // 開始点(アパート)
        new Vector3(apart.GetComponent<Transform>().position.x,house.GetComponent<Transform>().position.y,0),
        new Vector3(house.GetComponent<Transform>().position.x,house.GetComponent<Transform>().position.y,0)
        };


        //点の数
        lineRenderer.positionCount = positions.Length;
        //線の座標
        lineRenderer.SetPositions(positions);
    }
}

7.LineスクリプトにApartとHouseをドラッグ&ドロップ

実行すると線が表示されます