こんばんは、Arumiです!
今回はRigidbodyなしで衝突判定を行ってみましょう(๑•̀ㅂ•́)و✧
#実装
collider.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
public class PlayerCollider : MonoBehaviour
{
// BoxCollider2D コンポーネント
BoxCollider2D collider2d;
// 衝突結果を格納 (最大5個まで)
Collider2D[] results = new Collider2D[5];
// 開始処理
void Start ( )
{
// Colliderをキャッシュ
collider2d = GetComponent<BoxCollider2D> ();
}
// 更新処理
void Update ( )
{
if ( IsHitToEnemy () ) {
Debug.Log ("衝突しています");
}
}
// 敵との衝突判定
bool IsHitToEnemy ( )
{
// collider2dと衝突しているcolliderの数が返ってくる
int hitCount = collider2d.OverlapCollider(new ContactFilter2D(), results);
if ( hitCount > 0 )
{
for ( int i = 0; i < hitCount; i++ )
{
// 衝突したオブジェクトのTagがEnemyならreturn
if ( results [ i ].tag == "Enemy")
{
return true;
}
}
}
return false;
}
}
BoxCollider2Dと先程のコンポーネントを取り付けたプレイヤー(仮)
BoxCollider2DとTagをEnemyにした敵オブジェクト(仮)
2つのオブジェクトを作り、重なるように配置したら再生してみてください
今回はここまで(`・ω・´)ゞ
ありがとうございました!