マウス操作によって、オブジェクトの色を変化させるように、コードを書いてみましょう。
マウスを乗せたときと離したとき、クリックボタンを押したときと離したとき、それぞれでカラーが変化します。
関連記事:
マウスオーバーでボタンの色を変える
一瞬だけオブジェクトの色を変える
マウス操作のスクリプト
Cubeオブジェクトを用意しました。
今回は、カラーの指定について、カラーコードやマテリアルなど使って、いくつか方法を試してみます。
まずはマテリアルを2つ作りましょう。
MyGeenとMyYellwoの2つを作成しました。
このうち、MyYellowについては、RGBAでカラー指定してみます。
MyYellowのRGBA値を控えておきましょう。
ColorChange.csを作成して、Cubeに追加します。
ColorChange.csを記述しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ColorChange : MonoBehaviour { public Material MyColor; //マウスカーソルを乗せたとき void OnMouseEnter() { GetComponent<Renderer>().material.color = Color.red; } //マウスカーソルを離したとき void OnMouseExit() { //RGBAでのカラー指定 GetComponent<Renderer>().material.color = new Color32 (226, 212, 16, 255); } //クリックボタンを押したとき void OnMouseDown() { GetComponent<Renderer>().material.color = Color.blue; } //クリックボタンを離したとき void OnMouseUp() { //Materialによるカラー指定 GetComponent<Renderer>().material = MyColor; } } |
Cubeを確認すると、MyColorフィールドができています。
ここに、MyGreenのマテリアルを入れます。
プレイして動きを確認しましょう。
マウスカーソルを乗せたときには赤になり、離せば黄色に変化。
クリックボタンを押したら青になり、離せば緑に変わります。
マウス操作による色変化を、カラー名、RGBA、マテリアル、3つのパターンで指定しました。