オブジェクトを通り過ぎたら色が変わるようになる方法をまとめておきます。
通り過ぎたら色が変化するようにしたい
OnTriggerExit を使おう
- OnTriggerEnter:当たったとき
- OnTriggerStay:中にいるとき
- OnTriggerExit:出ていったとき
通り過ぎるのをきっかけにしたい場合は「OnTriggerExit」を使用します。
スクリプトはこんな感じ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Block : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void OnTriggerExit2D(Collider2D collision)
{
if(collision.gameObject.name == "player") // playerは通り過ぎるオブジェクトの名前
GetComponent<Renderer>().material.color = Color.gray;
}
}
2Dじゃない場合(3Dの場合)は、2Dを外しましょう。
「collision」はもっと自分のわかりやすい言葉に書き換え可能で、書き換えたら「if」の後の「collision」も書き換える必要があります。
他の色は以下を参考。
完全に色が変化するわけではない
この方法だと、完全に色が変化するわけではないようです。
自分は、通り過ぎた物体が使用済みというのがわかればいいので丁度いいのですが、完全に色を変えたい場合には使用できないですね。
あとがき
だいたいゲーム自体は完成した感じですが、1マスごとに動かせるようにすると壁に引っかかってしまうので、そのあたりをどうにかしたいですね。
コメント