테스트 하다보면 적이 어디서 나타났는지 찾기 어렵다. 마우스 우클릭을 하면 적을 보게 하겠다. 적을 고를 수는 없다.
첫번째 방법은 씬뷰상의 MONSTER TAG를 이용해 적을 찾은후 LookAt하는 방법이다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RightClick : MonoBehaviour
{
// Start is called before the first frame update
public GameObject[] monster; //컴포넌트의 캐시를 처리할 변수
public int idx = 0;
// Update is called once per frame
void Update()
{
monster = GameObject.FindGameObjectsWithTag("MONSTER");
if (Input.GetMouseButtonDown(1)) {
idx = monster.Length-1;
while (idx>=0 && monster[idx].GetComponent<MonsterCtrl>().state == MonsterCtrl.State.DIE) idx--;
transform.LookAt(monster[idx].transform);
Debug.Log(monster.Length);
}
}
}
2번째 방법은 GameManager MonsterPool을 이용해 active한걸 찾아 LookAt하는 방법이다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RightClick : MonoBehaviour
{
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(1)) {
GameObject _monster = FindMonster();
if (_monster != null) {
transform.LookAt(_monster.transform);
}
}
}
GameObject FindMonster() {
foreach (var _monster in GameManager.instance.monsterPool) {
if (_monster.activeSelf == true) {
return _monster;
}
}
return null;
}
}
실행후 우클릭을 하면 적으로 자동 향합니다. 천천히 움직이지는 않습니다.
모든 Active한 Monster의 거리를 비교해 가장 가까운 몬스터를 향하게 할수도 있을듯.