【Unity】色を変更したいオブジェクトではなく別のオブジェクトから色を変える方法

Unity

皆さんオブジェクトの色を変える時はスクリプトを付けたオブジェクトしか色を変えれないと思う方がいるかもしれません。

ただそうすると出来る範囲が狭まるので今回は別のオブジェクトから色を変更する方法を紹介したいと思います。

オブジェクトの色変更スクリプト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MaterialEdit : MonoBehaviour
{
    public Material EditMaterial;           // 変更したい色
    public GameObject EditMaterialObject;   // 色を変更したいオブジェクト

    void Update()
    {
        if (Input.GetKeyDown("a"))  // Aキーを押したら...
        {
            // マテリアルを変更
            EditMaterialObject.GetComponent<Renderer>().material = EditMaterial;
        }
    }
}

今回使用するスクリプトはこのようになります。

    public Material EditMaterial;           // 変更したい色
    public GameObject EditMaterialObject;   // 色を変更したいオブジェクト

つぎにプログラムの詳細を説明したいと思います。

public Material EditMaterial

public Material EditMaterialはEditMaterialというマテリアル設定します。

public GameObject EditMaterialObject

public GameObject EditMaterialはEditMaterialという色を変更したいオブジェクトを設定します。

if (Input.GetKeyDown(“a”))

if(Input.GetKeyDown(“a))はもしaキーを押したらという意味です。

EditMaterialObject

EditMaterialObject.GetComponent<Renderer>().material = EditMaterial;とは

まず、EditMaterialObjectにRendererを与えます。

そしてそのEditMaterialObjectのmaterialをEditMaterialに変更します。

タイトルとURLをコピーしました