今日も元気にUnityしてますか?
今回は、コライダーのオン・オフをスクリプトから制御するための記事です。
今回は、特定のオブジェクトに触れたらコライダーがオフになるような実装にします。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TargetController : MonoBehaviour
{
// TargetオブジェクトにアタッチしているBoxCollider2D
public BoxCollider2D targetCollider;
private void OnCollisionEnter2D(Collision2D other)
{
if(other.gameObject.tag == "AIUEO")
{
targetCollider.enabled = false;
}
}
}
このコードを持っているオブジェクトが「AIUEO」というタグを持っているオブジェクトに触れると、
このコードを持っているオブジェクトのBoxCollider2Dがオフになる。
もちろん、オンにしたい場合は、「targetCollider.enabled = true;」と書いてあげればいい。
そもそも、
「enabled」に似た、「SetActive」があるが、違いとしては、
・「enabled」→オブジェクトにアタッチされているコンポーネントのオン・オフ
・「SetActive」→オブジェクトのオン・オフ
だそう。
参考サイト
・https://futabazemi.net/unity/collider-enabled
・https://shibuya24.info/entry/unity-active
・https://qiita.com/No2DGameNoLife/items/3ed17530dd594152efb3
コメント