Version: 5.5
public static void DrawDottedLines (Vector3[] lineSegments, float screenSpaceSize);

パラメーター

lineSegments 線分の開始と終了を示す 1 組になった点の配列
screenSpaceSize ラインの長さとライン間の幅(ピクセル単位)

説明

含まれる線分を点線で描画します。


Draw multiple dotted lines in Scene view.

The following example uses DrawDottedLines to draw a line between GameObjects defined in a list.

この例を使用するには、以下のスクリプトを Assets/Editor フォルダーに保存します。

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(DrawDottedConnectedLines))] public class DrawDottedConnectedLinesEditor : Editor { void OnSceneGUI() { DrawDottedConnectedLines t = target as DrawDottedConnectedLines;

if (t == null || t.GameObjects == null) return;

Vector3[] lineSegments = new Vector3[t.GameObjects.Length * 2]; int pointIndex = 0;

for (int i = 0; i < t.GameObjects.Length - 1; i++) { if (t.GameObjects[i] != null &amp;&amp; t.GameObjects[i + 1] != null) { lineSegments[pointIndex++] = t.GameObjects[i].transform.position; lineSegments[pointIndex++] = t.GameObjects[i + 1].transform.position; } }

Handles.DrawDottedLines(lineSegments, t.DashSize); } }

このスクリプトを線の始点としたいアンカーオブジェクトにアタッチします。線の終点としたいゲームオブジェクトをスクリプトのインスペクターの配列にドラッグアンドドロップし、点線の間の差をそれぞれ調整します。

using UnityEngine;

[ExecuteInEditMode] public class DrawDottedConnectedLines : MonoBehaviour { public GameObject[] GameObjects; public float DashSize = 4; }

public static void DrawDottedLines (Vector3[] points, int[] segmentIndices, float screenSpaceSize);

パラメーター

points ポイントのリスト
segmentIndices 線分の開始と終了を示す 1 組になった点のインデックスの配列
screenSpaceSize ラインの長さとライン間の幅(ピクセル単位)

説明

インデックス化された線分を点線で描画します。

The following example uses DrawDottedLines to draw a line between objects defined in a list. To use this example, save the following script into the Assets/Editor folder:

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(DrawDottedConnectedLinesUsingPoints))] public class DrawDottedConnectedLinesUsingPointsEditor : Editor { void OnSceneGUI() { DrawDottedConnectedLinesUsingPoints t = target as DrawDottedConnectedLinesUsingPoints;

if (t == null || t.GameObjects == null) return;

Vector3[] points = new Vector3[t.GameObjects.Length]; int[] segmentIndices = new int[t.GameObjects.Length * 2]; int pointsIndex = 0;

for (int i = 0; i < t.GameObjects.Length; i++) { if (t.GameObjects[i] != null) points[pointsIndex++] = t.GameObjects[i].transform.position; }

for (int i = 0; i < pointsIndex - 1; i++) { int segmentIndex = i * 2;

segmentIndices[segmentIndex] = i; segmentIndices[segmentIndex + 1] = i + 1; }

Handles.DrawDottedLines(points, segmentIndices, t.DashSize); } }

このスクリプトを線の始点としたいアンカーオブジェクトにアタッチします。線の終点としたいゲームオブジェクトをスクリプトのインスペクターの配列にドラッグアンドドロップし、点線の間の差をそれぞれ調整します。

using UnityEngine;

[ExecuteInEditMode] public class DrawDottedConnectedLinesUsingPoints : MonoBehaviour { public GameObject[] GameObjects; public float DashSize = 4; }