箇条書きですが。。。
1.キューブの各面に子要素としてSphereをもたせておく。Sphereは描画しないようにしておく。
2.各SphereにはSphere Colliderをもたせ、"Is Trigger"にチェックをいれておく。
(チェックをいれておくことにより物理動作には影響せずに、色を変えるためのスイッチとして使える。)
3.各Sphereに以下のようなスクリプトを貼り付けておく。
ChangeColor.cs
using UnityEngine;
public class ChangeColor : MonoBehaviour {
// Unityエディタ上で変えたい色を指定できる。
public Color color = Color.red;
//オブジェクトが衝突したとき
void OnTriggerEnter(Collider other) {
IColorChangable changable = other.gameObject.GetComponent<IColorChangable>();
if(changable != null){
changable.ChangeColor(color);
}
}
}
ここまででSphereはこんな感じになる↓
4.色を変えたいオブジェクトには以下のようなスクリプトを貼り付けておく。
実際に色を変える処理はご自分で実装してください。
ColorChangable.cs
using UnityEngine;
class ColorChangable : MonoBehaviour, IColorChangable {
public void ChangeColor(Color color){
// ここで色を変える処理をする。
Debug.Log("change color to " + color);
}
}
5.このままでは、IColorChangableインターフェースが足りないので、以下のスクリプトを用意しておく。
(オブジェクトに貼り付ける必要はない。)
IColorChangable.cs
using UnityEngine;
interface IColorChangable {
void ChangeColor(Color color);
}
だいたいこんな感じでいけるかと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/23 08:35