【Unity2D】コライダーのオン・オフをスクリプトで制御する試みです。

今日も元気に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

コメント

タイトルとURLをコピーしました