表示テーマ
LineRenderer Component
点列や組み込み形状を線として描画します。
設定する手順
- 点を追加し、幅・色・ワールド空間とMaterialを設定します。
- SceneViewまたはGameViewで結果を確認します。
- 編集中のSceneまたはPrefabを保存します。
項目の説明
| 項目 | C#名 | 型 | 操作 | 定義時の初期値 | 意味 |
|---|---|---|---|---|---|
| RenderingLayerMask | RenderingLayerMask | uint | 読取・変更 | 1u | このRendererを表示するCameraのCullingMaskと照合するbit集合です。 |
| マテリアル | Material | Material? | 読取・変更 | {} | 描画に使うMaterial参照です。既定MaterialはEngine側から解決されます。 |
| 始点と終点を閉じる | Loop | bool | 読取・変更 | false | 末尾に到達したら先頭へ戻って再生します。 |
| 2D描画 | Is2D | bool | 読取・変更 | false | 2D用の座標・描画処理を使います。 |
| ワールド座標 | UseWorldSpace | bool | 読取・変更 | true | 点などの入力をWorld座標として扱います。 |
| 親のスケールを無視 | IgnoreParentScale | bool | 読取・変更 | false | 親の拡縮を継承しません。 |
| 親の回転を無視 | IgnoreParentRotation | bool | 読取・変更 | false | 親の回転を継承しません。 |
| Layer | Layer | int | 読取・変更 | 0 | 描画するLayer番号です。 |
| Order | Order | int | 読取・変更 | 0 | 同じLayer内の並び順です。 |
| 表示 | Visible | bool | 読取・変更 | true | 通常描画に表示するかを指定します。 |
| BlendMode | BlendMode | BlendMode | 読取・変更 | BlendMode::Normal | 背景への色の混ぜ方です。加算などの方式を選びます。 |
| Queue | Queue | RenderPhase | 読取・変更 | RenderPhase::Transparent | 同じ描画区分内の並び順です。 |
| ParentLocalFileID | ParentLocalFileID | GameObject? | 読取・変更 | {} | 参照する親GameObjectの保存用IDです。 |
Inspectorの設定と使い方
「Editor / C#」は両方から変更できる設定、「Editorのみ」は公開C# APIのない編集操作です。「Editor表示のみ」は計算結果や統計などの確認欄です。「C#のみ」は、このInspectorに編集欄のない操作です。
| 設定・操作 | 編集場所 | C#の入口 | 意味・使い方 |
|---|---|---|---|
| 表示レイヤーと描画順 | Editor / C# | RenderingLayerMask / Layer / Order | RenderingLayerMaskはCameraのCullingMaskと照合する表示先のbitです。LayerとOrderは描画の並び順で、衝突タイプとは別です。 |
| Material・個別パラメータ | Editor / C# | Material / MaterialInstance | Materialは共有Asset、MaterialInstanceはこのRendererの上書きです。色・Texture・発光などの公開Parameterを個別に変え、ほかの物体のMaterial設定を変えずに点滅や色違いを作れます。 |
| ブレンドモード・キュー | Editor / C# | BlendMode / Queue | 透明度をどう合成するかと、どの描画段階へ送るかを指定します。Alphaを下げるだけで透過描画になるとは限らないため、Materialの表面方式と合わせます。 |
| 2D・World座標・親 | Editor / C# | Is2D / UseWorldSpace / ParentLocalFileID / IgnoreParentRotation / IgnoreParentScale | 点列を画面・Worldのどちらで扱うかと、基準になる親を指定します。ParentLocalFileIDへはGameObject参照を渡します。座標の基準が異なる点を同じ線へ混ぜないでください。 |
| 点の追加・削除・位置・色・太さ | Editor / C# | Points / AddPoint / SetPoints / UpdatePoint / Clear | 点を並べた順番で線を接続します。C#でレーザーや照準線を動かす場合は、作成済みの点配列を更新してSetPointsへ渡せます。太さ0の点は見えなくなるため確認します。 |
| 始点と終点を閉じる | Editor / C# | Loop | 最後の点から最初の点へも線を引きます。輪郭や範囲表示には有効、レーザーや開いた経路には無効を使います。 |
初期値はEngineのComponent定義時の値で、C++表記を含みます。C#へ貼り付ける実行例ではありません。既存Sceneの保存値や既定Assetがある場合はそちらが優先されます。数値の編集範囲はInspectorで制限される場合があります。
C#から使う
操作型はLineRendererです。 GameObjectから取得する基本操作はGameObjectの操作を参照してください。以下には基本プロパティだけでなく、公開関数・追加の設定API・継承した共通操作も掲載します。
実用例:2点をつないでレーザーを追従させる
LineRendererのあるGameObjectへ追加し、endPointへ照射先を設定します。World座標とRendererのMaterialを使います。
cs
using NEMEngine;
public sealed class LaserLine : MonoBehaviour {
[SerializeField] private GameObject? endPoint;
[SerializeField, Min(0.001f)] private float width = 0.03f;
private LineRenderer? line;
private readonly LinePoint[] points = new LinePoint[2];
void Start() {
// 両端をWorld座標で渡す線として設定
line = GetComponent<LineRenderer>();
if (line == null) return;
line.Is2D = false;
line.UseWorldSpace = true;
line.Loop = false;
}
void Update() {
// 配列を作り直さず、移動した両端の位置だけを更新
if (line == null || endPoint == null) return;
var color = new Color4(1.0f, 0.2f, 0.1f, 1.0f);
points[0] = new LinePoint(transform.position, color, width);
points[1] = new LinePoint(endPoint.transform.position, color, width);
line.SetPoints(points);
}
}設定用・関連するC#型
選択値(Enum)
| 型・各値の詳説 | 使える値 |
|---|---|
| BlendMode | Add / Multiply / Normal / Screen / Subtract |
| RenderPhase | EditorOverlay / Opaque / PostProcessUI / ScreenUI / Transparent |
LineRenderer
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public LinePoint AddPoint(LinePoint point) | 関数 | 末尾へ1点追加し、indexを採番したLinePointを返す。後でUpdatePointに渡して更新できる |
public LinePoint AddPoint(Vector3 position, Color4 color, float thickness = 1) | 関数 | 末尾へ1点追加し、indexを採番したLinePointを返す |
public BlendMode BlendMode | プロパティ(読取・変更) | 背景への色の混ぜ方です。加算などの方式を選びます。 |
public void Clear() | 関数 | 点列をクリアする |
public static LineRenderer FromEntity(GameObject gameObject) | 関数 | 既にComponentを持つGameObjectから操作用の参照を作ります。Componentを追加する操作ではありません。 |
public Color4 GetColor() | 関数 | Rendererのベースカラーを取得します。 |
public bool IgnoreParentRotation | プロパティ(読取・変更) | 親の回転を継承しません。 |
public bool IgnoreParentScale | プロパティ(読取・変更) | 親の拡縮を継承しません。 |
public bool Is2D | プロパティ(読取・変更) | 2D用の座標・描画処理を使います。 |
public int Layer | プロパティ(読取・変更) | 描画するLayer番号です。 |
public bool Loop | プロパティ(読取・変更) | 末尾に到達したら先頭へ戻って再生します。 |
public Material? Material | プロパティ(読取・変更) | 描画に使うMaterial参照です。既定MaterialはEngine側から解決されます。 |
public MaterialInstance MaterialInstance | プロパティ(読取専用) | このRendererだけに適用するMaterial Parameterです。共有Materialの変更とは区別します。 |
public int Order | プロパティ(読取・変更) | 同じLayer内の並び順です。 |
public GameObject? ParentLocalFileID | プロパティ(読取・変更) | 参照する親GameObjectの保存用IDです。 |
public DynamicBuffer<LineRendererPoint> Points | プロパティ(読取専用) | LineRendererの点列Bufferです。 |
public RenderPhase Queue | プロパティ(読取・変更) | 同じ描画区分内の並び順です。 |
public uint RenderingLayerMask | プロパティ(読取・変更) | このRendererを表示するCameraのCullingMaskと照合するbit集合です。 |
public void SetColor(Color4 color) | 関数 | 色Parameterを設定します。 |
public void SetPoints(ReadOnlySpan<LinePoint> points, bool loop = false) | 関数 | 点列を差し替える。loopで始点と終点をつなぐ |
public void UpdatePoint(LinePoint point) | 関数 | AddPointで得たLinePointのindexの点を、座標・色・太さごと更新する |
public bool UseWorldSpace | プロパティ(読取・変更) | 点などの入力をWorld座標として扱います。 |
public bool Visible | プロパティ(読取・変更) | 通常描画に表示するかを指定します。 |
public static int componentTypeID | プロパティ(読取専用) | 組み込みComponentの接続識別子です。通常のゲームコードではGetComponentで取得します。 |
継承する共通操作:Component
継承する共通操作:Object
使用時の注意
点の順序が線の接続順です。2Dと3Dで座標の意味が異なります。
Play中の変更は実行用Worldへ反映します。Scene編集のUndoと実行中の値の変更は別です。保存方法は編集と実行時変更を参照してください。