今回はゲームオブジェクトから他のゲームオブジェクトの子オブジェクトの色を変えてみる。
最初に空のゲームオブジェクトを作る。
キューブを作り、さらにその下にキューブをつける。
名前は「cube1」とした。
スクリプトを書く。
今回はインスペクターで指定したオブジェクトの子オブジェクトのRendererにアクセスする。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestScript : MonoBehaviour
{
public GameObject obj;
Renderer renderercolor;
void Start()
{
renderercolor = obj.transform.Find("cube1").gameObject.GetComponent<Renderer>();
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
renderercolor.material.color = new Color(1f, 0.0f, 0.0f, 0.0f);
}
}
}
renderercolor = obj.transform.Find("cube1").gameObject.GetComponent<Renderer>();
ここの部分でpublicで指定したゲームオブジェクトの子オブジェクトを見つけてRendererをGetComponentし、変数に入れる。Find("")のカッコの中にはアクセスする子オブジェクトの名前を入れる。
できたら空のゲームオブジェクトにつける。
再生し、クリックすると赤色になる。
キューブにマテリアルをつけるのを忘れずに!