【Unity 3D】プレイヤーに当たったら色が変わるブロックを作る

Unity

スポンサーリンク

プレイヤーに当たったら色が変わるブロックを作る方法を紹介します。

プレイヤーとしては以下を使います。

色が変わるGameObjectを作成

1.例としてCylinderを設置します。名前はCylinderChangeColorにします。

プレイヤーが当たったら色が変わるスクリプトを作成する

1.ChangeColorRed.csという名前のスクリプトを作成して、以下のコードを記載する。

Color.redをColor.blueなどにすれば他の色に変えることができる。

using UnityEngine;
public class ChangeColorBlue : MonoBehaviour
{
	/// <summary>
	/// 衝突した時
	/// </summary>
	/// <param name="collision"></param>
	void OnCollisionEnter(Collision collision)
	{
		// 衝突した相手にPlayerタグが付いているとき
		if (collision.gameObject.tag == "Player"){
			// 自分自身の色を赤に変える
			GetComponent<Renderer>().material.color = Color.red;
		}
	}
}

スクリプトを色を変えたいGameObjectにアタッチする

1.ChangeColorRed.csを消したいブロック(CylinderChangeColorオブジェクト)にアタッチする。

プレイヤーオブジェクトのTagに"Player"を設定

1.プレイヤーオブジェクト(今回はunitychan)のTagに"Player"を設定

完成

これでプレイヤーが色が変わるGameObject(CylinderChangeColorオブジェクト)にぶつかると、色が赤くなる。

Unity

Posted by ton