前提・実現したいこと
OnTriggerStayとOnTriggerExitを用いてうまく判定を行いたいです。
発生している問題・エラーメッセージ
以下のようなコードで実行してみたところ、問題が発生しました。
一定距離以上主人公が離れても敵キャラが主人公を追いかけ続けることです。
敵キャラと主人公のどちらにもRigidbodyはつけておらず、CharactorControllerで動かしています。
###スクリプトについて
敵キャラに主人公が一定距離近づいたことを大きなColliderで判定し、敵キャラが主人公を追いかける。
主人公が一定距離より離れたら追いかけるのをやめるというスクリプトです。
また、大きなColliderにはCharacterControllerとは別にSphere Colliderを使用しています。
該当のソースコード
c#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class SearchCharacter : MonoBehaviour 6{ 7 private GolemController2 golemcontroller; 8 // Start is called before the first frame update 9 void Start() 10 { 11 golemcontroller = GetComponentInParent<GolemController2>(); 12 } 13 14 private void OnTriggerStay(Collider other) 15 { 16 if(other.tag == "Player") 17 { 18 GolemController2.EnemyState state = golemcontroller.GetState(); 19 20 if(state != GolemController2.EnemyState.Chase) 21 { 22 golemcontroller.SetState(GolemController2.EnemyState.Chase, other.transform); 23 } 24 } 25 } 26 27 private void OnTriggerExit(Collider other) 28 { 29 if (other.tag == "Player") 30 { 31 golemcontroller.SetState(GolemController2.EnemyState.Wait); 32 } 33 } 34} 35
解決法やアドバイスなどをいただければ嬉しいです。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。