Skip to content

MeshRenderer Component ​

読み込んだモデルを描画します。SubMeshごとにMaterialやUVを設定できます。

設定する手順 ​

  1. Mesh Assetを設定し、Materialと表示レイヤーを確認します。
  2. SceneViewまたはGameViewで結果を確認します。
  3. 編集中のSceneまたはPrefabを保存します。

項目の説明 ​

項目C#名型操作定義時の初期値意味
RenderingLayerMaskRenderingLayerMaskuint読取・変更1uこのRendererを表示するCameraのCullingMaskと照合するbit集合です。
メッシュMeshMesh?読取・変更{}描画するMesh Assetです。
既定マテリアルMaterialMaterial?読取・変更{}描画に使うMaterial参照です。既定MaterialはEngine側から解決されます。
レイヤーLayerint読取・変更0描画するLayer番号です。
描画順Orderint読取・変更0同じLayer内の並び順です。
表示Visiblebool読取・変更true通常描画に表示するかを指定します。
BlendModeBlendModeBlendMode読取・変更BlendMode::Normal背景への色の混ぜ方です。加算などの方式を選びます。
QueueQueueRenderPhase読取・変更RenderPhase::Opaque同じ描画区分内の並び順です。
ZプリパスEnableZPrepassbool読取・変更true深度の先行描画を使います。
RenderFlagsRenderFlagsMeshRenderFlags読取・変更MeshRenderFlags::Default照明・影・IBL・反射などを受けるかのbit設定です。
デカールを受けるreceiveDecalsbool読取・変更trueDecalの投影を受け付けます。

Inspectorの設定と使い方 ​

「Editor / C#」は両方から変更できる設定、「Editorのみ」は公開C# APIのない編集操作です。「Editor表示のみ」は計算結果や統計などの確認欄です。「C#のみ」は、このInspectorに編集欄のない操作です。

設定・操作編集場所C#の入口意味・使い方
表示レイヤーと描画順Editor / C#RenderingLayerMask / Layer / OrderRenderingLayerMaskはCameraのCullingMaskと照合する表示先のbitです。LayerとOrderは描画の並び順で、衝突タイプとは別です。
Material・個別パラメータEditor / C#Material / MaterialInstanceMaterialは共有Asset、MaterialInstanceはこのRendererの上書きです。色・Texture・発光などの公開Parameterを個別に変え、ほかの物体のMaterial設定を変えずに点滅や色違いを作れます。
ブレンドモード・キューEditor / C#BlendMode / Queue透明度をどう合成するかと、どの描画段階へ送るかを指定します。Alphaを下げるだけで透過描画になるとは限らないため、Materialの表面方式と合わせます。
Mesh・Material・SubMeshEditor / C#Mesh / GetSubMeshes / SetSubMesh / GetMaterialInstanceモデルを指定し、SubMesh単位で表示・Material・表面方式・Alpha閾値を調整します。C#ではGetSubMeshesで設定を取得し、変更した要素をSetSubMesh(index, settings)で戻します。Materialの個別値はGetMaterialInstance(index)で変更します。
SubMeshのローカルSRT・UVEditor / C#GetSubMeshes / SetSubMeshモデル内の部位だけを移動・回転・拡縮したり、その部位のUVをずらしたりします。GameObject全体のTransformとは別です。nameやstableIDは対象部位を確認する情報です。
Zプリパス・デカール受け取りEditor / C#EnableZPrepass / receiveDecals / RenderFlagsZプリパスは深度の事前描画、receiveDecalsは投影デカールの受け取りです。描画フラグはMaterialの描画方式と合わせます。
SubMeshの同時編集Editorのみ—複数部位のMaterialをまとめて編集する操作用のチェックです。実行データのboolプロパティではありません。C#では対象の各MaterialInstanceやSubMesh設定へ変更を適用します。
マテリアルパラメータの再読み込みEditorのみ—モデルから得たMaterial情報を編集内容へ取り込むための操作です。ゲーム中の色変更の関数ではありません。個別の上書きを戻したくない場合は、再読み込み前に設定を確認します。
モデル判定・描画方式・行列Editor表示のみ—モデルから判定した表面方式、解決後の描画方式、World行列・UV行列を確認します。表示中の計算結果へ直接入力する操作ではありません。

初期値はEngineのComponent定義時の値で、C++表記を含みます。C#へ貼り付ける実行例ではありません。既存Sceneの保存値や既定Assetがある場合はそちらが優先されます。数値の編集範囲はInspectorで制限される場合があります。

C#から使う ​

操作型はMeshRendererです。 GameObjectから取得する基本操作はGameObjectの操作を参照してください。以下には基本プロパティだけでなく、公開関数・追加の設定API・継承した共通操作も掲載します。

実用例:ダメージ時に一時的に赤くする ​

MeshRendererのある物体へ追加します。ゲームの被弾処理からFlash()を呼びます。MaterialがBaseColorを使うことを確認します。

cs
using System.Collections;
using NEMEngine;

public sealed class DamageFlash : MonoBehaviour {

    [SerializeField, Min(0.01f)] private float duration = 0.15f;
    private MeshRenderer? renderer;
    private bool flashing;

    void Start() {
        // 被弾処理から使うRendererを保持
        renderer = GetComponent<MeshRenderer>();
    }

    public void Flash() {
        // 進行中の点滅を重ねて元の色を失わないようにする
        if (!flashing && renderer != null) StartCoroutine(FlashRoutine());
    }

    IEnumerator FlashRoutine() {
        if (renderer == null) yield break;
        flashing = true;

        // 部位ごとの元の色を保持して赤くする
        var colors = new Color4[renderer.GetSubMeshes().Count];
        for (int i = 0; i < colors.Length; ++i) {
            colors[i] = renderer.GetColor(i);
            renderer.SetColor(i, new Color4(1.0f, 0.1f, 0.1f, 1.0f));
        }
        yield return new WaitForSeconds(duration);

        // モデルやRendererが残っている範囲だけ元へ戻す
        if (renderer != null) {
            int count = Math.Min(colors.Length, renderer.GetSubMeshes().Count);
            for (int i = 0; i < count; ++i) renderer.SetColor(i, colors[i]);
        }
        flashing = false;
    }
}

設定用・関連するC#型 ​

選択値(Enum) ​

型・各値の詳説使える値
BlendModeAdd / Multiply / Normal / Screen / Subtract
MeshRenderFlagsCastReflection / CastShadow / Default / Lighting / None / ReceiveIBL / ReceiveReflection / ReceiveShadow
RenderPhaseEditorOverlay / Opaque / PostProcessUI / ScreenUI / Transparent

MeshRenderer ​

宣言・詳説種類・操作役割
public BlendMode BlendModeプロパティ(読取・変更)背景への色の混ぜ方です。加算などの方式を選びます。
public bool EnableZPrepassプロパティ(読取・変更)深度の先行描画を使います。
public static MeshRenderer FromEntity(GameObject gameObject)関数既にComponentを持つGameObjectから操作用の参照を作ります。Componentを追加する操作ではありません。
public Color4 GetColor()関数現在のマテリアル color を取得する。先頭サブメッシュを代表値として返す。
public Color4 GetColor(int subMeshIndex)関数Rendererのベースカラーを取得します。
public MaterialInstance GetMaterialInstance(int subMeshIndex)関数指定SubMeshの個別Material Parameterを取得します。
public IReadOnlyList<SubMeshSettings> GetSubMeshes()関数全SubMeshの編集用設定を取得します。
public int Layerプロパティ(読取・変更)描画するLayer番号です。
public Material? Materialプロパティ(読取・変更)描画に使うMaterial参照です。既定MaterialはEngine側から解決されます。
public MaterialInstance MaterialInstanceプロパティ(読取専用)subMeshIndex -1は全サブメッシュへ同じ値を設定する
public Mesh? Meshプロパティ(読取・変更)描画するMesh Assetです。
public int Orderプロパティ(読取・変更)同じLayer内の並び順です。
public RenderPhase Queueプロパティ(読取・変更)同じ描画区分内の並び順です。
public MeshRenderFlags RenderFlagsプロパティ(読取・変更)照明・影・IBL・反射などを受けるかのbit設定です。
public uint RenderingLayerMaskプロパティ(読取・変更)このRendererを表示するCameraのCullingMaskと照合するbit集合です。
public void SetColor(Color3 color)関数色Parameterを設定します。
public void SetColor(Color4 color)関数全サブメッシュのマテリアル color を上書きする。
public void SetColor(int subMeshIndex, Color3 color)関数色Parameterを設定します。
public void SetColor(int subMeshIndex, Color4 color)関数指定サブメッシュのマテリアル color を上書きする。
public void SetSubMesh(int index, SubMeshSettings settings)関数変更したSubMesh設定をRendererへ反映します。
public bool Visibleプロパティ(読取・変更)通常描画に表示するかを指定します。
public static int componentTypeIDプロパティ(読取専用)組み込みComponentの接続識別子です。通常のゲームコードではGetComponentで取得します。
public bool receiveDecalsプロパティ(読取・変更)Decalの投影を受け付けます。

継承する共通操作:Component ​

宣言・詳説種類・操作役割
public T AddComponent<T>() where T : Component関数ComponentまたはScriptを追加し、操作する参照を返します。
public T? GetComponent<T>() where T : class関数component access(owner GameObjectへの委譲)
public T? GetComponentInChildren<T>(bool includeInactive = false) where T : class関数子階層から指定型のComponentを探します。
public T? GetComponentInParent<T>(bool includeInactive = false) where T : class関数親階層から指定型のComponentを探します。
public T[] GetComponents<T>() where T : class関数同じGameObjectにある指定型のComponentをすべて取得します。
public void GetComponents<T>(List<T> results) where T : class関数同じGameObjectにある指定型のComponentをすべて取得します。
public T[] GetComponentsInChildren<T>(bool includeInactive = false) where T : class関数子階層にある指定型のComponentを収集します。
public void GetComponentsInChildren<T>(bool includeInactive, List<T> results) where T : class関数子階層にある指定型のComponentを収集します。
public void GetComponentsInChildren<T>(List<T> results) where T : class関数子階層にある指定型のComponentを収集します。
public T[] GetComponentsInParent<T>(bool includeInactive = false) where T : class関数親階層にある指定型のComponentを収集します。
public void GetComponentsInParent<T>(bool includeInactive, List<T> results) where T : class関数親階層にある指定型のComponentを収集します。
public override int GetHashCode()関数同じ値を検索Keyに使うためのHashを返します。
public bool HasComponent<T>() where T : class関数指定型のComponentを持つかを調べます。
public void RemoveComponent<T>() where T : Component関数指定型のComponentを取り除きます。
public bool TryGetComponent<T>(out T component) where T : class関数Componentを検索し、見つかったかをbool、結果をout引数で返します。
public GameObject gameObjectプロパティ(読取専用)このComponentを所有するGameObjectです。
public Transform transformプロパティ(読取専用)所有GameObjectのTransformです。

継承する共通操作:Object ​

宣言・詳説種類・操作役割
public static void Destroy(Object? target)関数参照先の個体だけを安全地点で破棄する
public override bool Equals(object? obj)関数2つの値が等しいかを調べます。
public override int GetHashCode()関数同じ値を検索Keyに使うためのHashを返します。
public static GameObject Instantiate(Prefab original)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static GameObject Instantiate(Prefab original, GameObject? parent)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static GameObject Instantiate(Prefab original, Vector3 position, Quaternion rotation)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static GameObject Instantiate(Prefab original, Vector3 position, Quaternion rotation, GameObject? parent)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original, GameObject? parent) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original, Vector3 position, Quaternion rotation) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original, Vector3 position, Quaternion rotation, GameObject? parent) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static bool operator ==(Object? lhs, Object? rhs)関数等値比較を行います。引数型と戻り値型で、成分ごとの演算か対象参照の比較かを確認してください。
public static implicit operator bool(Object? value)関数暗黙の型変換を行います。引数型と戻り値型で、成分ごとの演算か対象参照の比較かを確認してください。
public static bool operator !=(Object? lhs, Object? rhs)関数不等値比較を行います。引数型と戻り値型で、成分ごとの演算か対象参照の比較かを確認してください。

使用時の注意 ​

BaseColorが正しくてもNormalやMetallicで見た目が変わります。SubMeshの設定はGetSubMeshes/SetSubMeshで制御します。

Play中の変更は実行用Worldへ反映します。Scene編集のUndoと実行中の値の変更は別です。保存方法は編集と実行時変更を参照してください。

関連項目 ​

現行版マニュアル · 8ea58ba2 · 2026-10-28確認