@Wadim_wadim2000

Unity — как найти 3 ближайших объекта из массива?

Вот я написал такой код, но он во-первых ресурсозатратный, а во-вторых - находит расстояние только до ближайшего обьекта.
Добавил обьекты в массив:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rasstoyanie : MonoBehaviour
{
    GameObject[] enemy;
    GameObject player;
    public string nearest;

    private void Start()
    {
        enemy = GameObject.FindGameObjectsWithTag("Enemy");
    }
}

и вот в этой части надо найти вместо 1 обьекта, 3 ближайших:
GameObject Find()
    {
        float dist = Mathf.Infinity;
        Vector3 position = transform.position;
        foreach(GameObject go in enemy)
        {
            Vector3 diff = go.transform.position;
            float currdist = diff.sqrMagnitude;
            if(currdist < dist)
            {
                player = go;
                dist = currdist;
            }        
        }
        return player;  
    }

можете поправить и подсказать, как найти ближайшие 3 обьекта? Просто первый раз с массивами столкнулся.
  • Вопрос задан
  • 1197 просмотров
Пригласить эксперта
Ответы на вопрос 1
@kot123123
я кот
Надо сделать парсер из for. Он будет проверять каждый объект в массиве и затем тебе надо брать данные с каждого объекта.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы