Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 19.02.2019
Сообщений: 15
1

Поиск ближайшего объекта по тегу

08.11.2020, 22:35. Показов 4899. Ответов 2

Author24 — интернет-сервис помощи студентам
Скорее всего, данный вопрос задавался много раз, но мне не помогали решения, которые я нашел в интернете... Вместо того, чтобы идти к ближайшему, персонаж-бактерия направляется к самому новому.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
private Transform target;
    public float speed = 2f;
private GameObject targett;
    GameObject[] targets;
    GameObject iol;
    public GameObject Eda;
    public string nearest;
void Update()
    {
        Puk();
        transform.position += (target.position - transform.position).normalized * speed * Time.deltaTime;
        transform.up = Vector3.Lerp(transform.up, (target.position - transform.position), 1.5f * Time.deltaTime);
        if ((target.position - transform.position).sqrMagnitude < 0.1f)
        {
            Spawn();
            Destroy(targett);
            nutrition = nutrition + 1f;
            Puk();
        }
        
    }
 
    void Puk()
    {
        targets = GameObject.FindGameObjectsWithTag("Food");
        targett = GameObject.Find(Find().name);
        target = targett.transform;
    }
 
    GameObject Find()
    {
        float dist = Mathf.Infinity;
        Vector3 position = transform.position;
        foreach (GameObject go in targets)
        {
            Vector3 diff = go.transform.position;
            float currdist = diff.sqrMagnitude;
            if (currdist < dist)
            {
                iol = go;
                dist = currdist;
            }
        }
        return iol;
    }
 void Spawn()
    {
        int x = Random.Range(-10, 10);
        int y = Random.Range(-3, 3);
        int op = Random.Range(1, 100000);
        string ap = op + "";
        GameObject neweda = Instantiate(Eda);
        neweda.transform.position = new Vector3(x, y, 0);
        neweda.name = ap;
 
    }
Для поста, наверно, многовато кода, но я думаю чтобы понять полностью, этого предостаточно.

Буду благодарен за любую помощь, но мне бы код...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2020, 22:35
Ответы с готовыми решениями:

Центрирование ближайшего объекта в Canvas Scroll
Здрасте, есть вопрос, можно ли сделать так, что бы при сенсорной прокрутке Scroll'а , элемент...

Определение расстояние от камеры до ближайшего объекта
Как определить на каком расстоянии от тебя находится ближайший объект и запретить передвигаться?...

Как получить расстояние до ближайшего объекта с меткой?
Сабж.

Поиск по тегу
У меня поиск идет противника (допустим башня чтобы выстрелить) так public void FindEnemy(){ ...

2
109 / 81 / 37
Регистрация: 13.01.2016
Сообщений: 408
08.11.2020, 23:55 2
Создать массив в отдельном скрипте, куда помещать объекты, среди которых производится поиск (сделать это в методе Start самих объектов). Затем в этом массиве проводить поиск по дистанции. Если никто не напишет лучше, то утром скину код
1
304 / 211 / 96
Регистрация: 04.07.2012
Сообщений: 896
09.11.2020, 11:47 3
А мне поиск по тегу кажется логичнее. Вот только реализации совсем не вижу в коде, а писать с нуля лень. Этой инфы столько в сети, что написать тоже самое в миллионный раз смысла не вижу.
FindGameObjectsWithTag и так создает массив.
Дальше перебираем все элементы массива и записываем в отдельную переменную (int arrayIndex) индекс элемента массива, если расстояние меньше переменной private float distance = 10000f. А расстояние пишем в distance. В результате после окончания перебора в переменной arrayIndex имеем индекс ближайшего элемента.
10000f для красоты можно поменять на то значение, которое будет гарантированно больше хотя бы одного элемента массива.
0
09.11.2020, 11:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2020, 11:47
Помогаю со студенческими работами здесь

Поиск по тегу
В общем, смотрим функцию Sum(). Эта функция у меня отвечает за то, чтобы выводить сумму заказа при...

Поиск по тегу
Я даже не знаю как правильно это называется?Поиск по тегу? или сортировка какая то... При нажатии...

Карта, на которой можно построить путь до ближайшего объекта
Добрый день. Может быть кто-то видел на просторах интернета такую вещь. Веб-приложение...

Поиск компонента по тегу
Знаю про поиск компонента по имени, а есть по тегу? Я так понял каждому компоненту можно задать...

Поиск ссылки по тегу и ее запуск
Народ кто знает как найти ссылку среди текста отмеченную тегом &lt;а&gt; знают многие. А как ее запустить...

Поиск и уничтожение объектов по тегу
Здравствуйте , не могу понять как сделать код для уничтожения всех объектов с одним тегом....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru