【Unity】GameObjectの色を変更する方法
▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
UnityでGameObjectの色を変更する方法
UnityでGameObjectの色を変更する方法を紹介します。
それでは見てきましょう!
方法その1 Materialを作成・適用して色を変更する方法
Materialの作成
Projectビュー → Create → Material から、Materialファイルを作成。
ファイル名は色名とか、用途とか、わかりやすいものが良いですね。
マテリアルの色はAlbedoからカラーパレットで設定。Aは透明度。
Materialの適用
GameObjectにドーン!と”ドラッグ&ドロップでアタッチ”するだけでOK
補足
こんな感じでシーンで使いたい色のマテリアルを作成して、適用するだけです。
他のオブジェクトに同じ色を設定したければ、マテリアルの使いまわしで演算負荷を軽減できますよ!
方法その2 スクリプトからMaterialの色を変更する方法
マテリアルの色はスクリプトから変更することができます。
Rendererコンポーネント経由でマテリアルのカラーを直接変更するという具合です。
デフォルトマテリアル、作ったマテリアル、どちらでも行えます。
// 赤色に変更する gameObject.GetComponent<Renderer>().material.color = Color.red;
Colorクラスにはredやblueなどのメジャーな色がプリセットされています。
細かい色であればColorクラスのインスタンスで生成することができます↓
// 黄緑色に変更する gameObject.GetComponent<Renderer>().material.color = new Color(173, 255, 47);
補足
あくまでこういうことが出来るよ!という話でして、実際にはマテリアルを作成しておき、プログラムからマテリアルを付け替えるという処理にする方が拡張性・保守性が高いでしょう↓
色を調整するだけなのにプログラムを修正する必要があるのは好ましくないですしね。
public Material material; void Start () { // マテリアルの付け替え clickedGameObject.GetComponent<Renderer>().material = this.material; }
Materialについて
Materialについて少しだけ進んだ解説です。
実はCubeやShpereのような3DオブジェクトにはDefault-Material(デフォルトマテリアル)という基本設定が存在します。Cubeを作ると最初から色が白っぽいのはこのデフォルトマテリアルの影響です。
そして、マテリアルが紐づいているのは Mesh RendererコンポーネントのMaterials項目です。
オブジェクトにドラッグ&ドロップでマテリアルを適用することと、この項目に適用することは同義です。
なおここは配列になっており、要素数(Size)を増やして複数のマテリアルを適用することも可能です。
/ 予めDefault-Materialが適用されているね \
ちなみに、オブジェクトからマテリアルの情報が完全に欠落すると、ピンク色になります。
あの有名な市街地データアセット「オタクシティ」を新しめのUnityに入れたりするとよく見るやつですね。
/ 恐怖のピンク \
できれば見たくないですが笑
以上です。
[Unity_317×90]
▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発