Раньше у меня был сценарий, который я мог смотреть на игрока, но только тогда, когда я нажимал на вкладку, но не мог переключаться между врагами или чем-то еще. В течение всего дня я искал ответы и пришел к выводу, что было бы замечательно. Теперь я могу найти вещи, помеченные врагами и перебирать их, но я не смог найти способ посмотреть на врага, продолжать смотреть на них и уметь двигайся по кругу.
public class debug : MonoBehaviour
{
public List<Transform> targets;
public Transform selectedTarget;
public string targetTag = "Enemy";
private Transform myTransform;
//Use this for initialization
void Start()
{
targets = new List<Transform>();
selectedTarget = null;
myTransform = transform;
AddAllEnemies();
}
public void AddAllEnemies()
{
GameObject[] go = GameObject.FindGameObjectsWithTag(targetTag);
foreach (GameObject enemy in go)
{
AddTarget(enemy.transform);
}
}
public void AddTarget(Transform enemy)
{
targets.Add(enemy);
}
/*private void SortTargetsByDistance()
{
targets.Sort(delegate (Transform t1, Transform t2) {
return (Vector3.Distance(t1.position, myTransform.position).CompareTo)
(Vector3.Distance(t2.position, myTransform.position));
});
} */
private void SortTargetsByDistance()
{
targets.RemoveAll(target => target == null);
targets.Sort(delegate (Transform t1, Transform t2) {
return (Vector3.Distance(t1.position, myTransform.position).CompareTo)
(Vector3.Distance(t2.position, myTransform.position));
});
}
private void TargetEnemy()
{
if (selectedTarget == null)
{
SortTargetsByDistance();
selectedTarget = targets[0];
}
else
{
int index = targets.IndexOf(selectedTarget);
if (index < targets.Count - 1)
{
index++;
}
else
{
index = 0;
}
selectedTarget = targets[index];
}
}
//Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Tab))
{
TargetEnemy();
}
}
}
Я пытаюсь использовать transform.LookAt(TargetEnemy);
в void update, но получаю сообщение об ошибке, в котором говорится, что преобразование из группы методов в преобразование невозможно. Я действительно застрял на этом, теперь любая помощь приветствуется.
Редактировать: я большой манекен, вместо этого я использовал transform.LookAt(selectedTarget);
, и персонаж на долю секунды поворачивается и смотрит на врага. Теперь мне нужно, чтобы игрок смотрел на цель и двигался вокруг нее.