|
4 / 3 / 2
Регистрация: 03.12.2023
Сообщений: 116
|
||||||
Привязка объектов сцены в скрипт на префабе10.12.2023, 17:49. Показов 2664. Ответов 33
Всепривет!
Назрел такой вопрос, пока ответа не нашел, лучше спрошу. На сцене лежит куб, на кубе скрипт- если в радиусе 3 есть объект Игрок (targetObject), можно по нажатии кнопки выполнить перемещение этого объекта в руку (Pickup). targetObject и Pickup я могу указать в инспекторе. Скрипт тут: Кликните здесь для просмотра всего текста
Суть проблемы в том, что куб находится на сцене и всё нормально работает, но в дальнейшем мне нужно будет сделать так, что бы такие-же новые кубы появлялись на сцене, а значит префаб куба должен уже быть с настроенным скриптом, где указан игрок- targetObject и рука- Pickup. Т.е. на старте в private void start() указать, что targetObject = модель игрока, Pickup = рука игрока.. Пока вижу только такой вариант- прячу настроенный образцовый куб под карту и клонирую его куда надо. Добавлено через 33 минуты Но тогда скрипт работает именно на образцовом кубе. Кнопка на канвасе в режиме toggle, я туда перетянул образцовый куб и функционал этого скрипта, как быть с клонами куба? Объединить кубы в стэк и скрипт на стэк- так они все возьмутся
0
|
||||||
| 10.12.2023, 17:49 | |
|
Ответы с готовыми решениями:
33
Фиксация объектов сцены Удаление объектов со сцены |
|
4 / 3 / 2
Регистрация: 03.12.2023
Сообщений: 116
|
||
| 13.12.2023, 18:16 [ТС] | ||
|
0
|
||
|
39 / 32 / 8
Регистрация: 29.03.2020
Сообщений: 184
|
|
| 13.12.2023, 18:21 | |
|
Цеплять коробки надо только те, что в коллайдере, но у тебя это происходит в методе по нажатию UI кнопки, а как туда проверку на коллизии вставить, я не скажу. Возможно это можно найти в документации.
0
|
|
|
4 / 3 / 2
Регистрация: 03.12.2023
Сообщений: 116
|
|
| 13.12.2023, 18:22 [ТС] | |
|
Возможно пригодится использовать при нажатии на кнопку- получать значение transform через OnTriggerEnter
0
|
|
|
39 / 32 / 8
Регистрация: 29.03.2020
Сообщений: 184
|
|||||||||||
| 13.12.2023, 18:56 | |||||||||||
|
Возможно в OnTriggerEnter прописать, чтобы объекты добавлялись в список, а при нажатии на кнопку проходила проверка, на подобии той, что я написал (через цикл).
Добавлено через 29 минут Сначала объявить список: List<Transform> boxes;Потом добавлять в список объекты в OnTriggerEnter:
1
|
|||||||||||
|
4 / 3 / 2
Регистрация: 03.12.2023
Сообщений: 116
|
||||||
| 13.12.2023, 18:57 [ТС] | ||||||
|
Добавил проверку триггера.
Сейчас я могу свою коробку таскать. Но когда я попробую взять другую- притянется моя "первая" коробка. Это происходит, если в коллайдере есть "любая коробка" Кликните здесь для просмотра всего текста
0
|
||||||
|
39 / 32 / 8
Регистрация: 29.03.2020
Сообщений: 184
|
|
| 13.12.2023, 19:11 | |
|
Попробуй, как я написал. В моём коде в результате в переменную
targetObject должен присваиваться ближайший ящик. Тебе надо всего лишь припарентить его и скинуть локальные координаты в 0.targetObject.transform.parent = transform;targetObject.transform.localPosition = Vector3.zero;И руку не надо искать. И в 14й строке правильнее вот так: if (i == boxes.Count - 1) targetObject = boxes[tmpI];
0
|
|
|
4 / 3 / 2
Регистрация: 03.12.2023
Сообщений: 116
|
||
| 13.12.2023, 19:13 [ТС] | ||
|
0
|
||
|
39 / 32 / 8
Регистрация: 29.03.2020
Сообщений: 184
|
|
| 13.12.2023, 19:20 | |
|
Там как в параметрах написать, так должно быть и в теле, просто совпадать должно.
Я даже не знаю, от чего ошибка. Добавлено через 1 минуту Вот так попробуй: if (other.gameObject.tag == "Box" && other != null) boxes.Add(other.transform);
1
|
|
|
4 / 3 / 2
Регистрация: 03.12.2023
Сообщений: 116
|
||
| 13.12.2023, 19:23 [ТС] | ||
|
NullReferenceException: Object reference not set to an instance of an object BoxPickup3.OnTriggerEnter (UnityEngine.Collider other) (at Assets/Dynamic First Person Mobile/Scripts/BoxPickup3.cs:19)
0
|
||
|
39 / 32 / 8
Регистрация: 29.03.2020
Сообщений: 184
|
|
| 13.12.2023, 19:27 | |
|
А что, если так:
if (other.tag == "Box" && other != null) boxes.Add(other.transform);
0
|
|
|
4 / 3 / 2
Регистрация: 03.12.2023
Сообщений: 116
|
|
| 13.12.2023, 19:28 [ТС] | |
|
Чуть поправил- Public List<Transform> boxes;
Список пополняется, но не очищается, ошибки нет. Только когда до 10 доходит- "превышен лимит"
0
|
|
|
39 / 32 / 8
Регистрация: 29.03.2020
Сообщений: 184
|
|
| 13.12.2023, 19:32 | |
|
Не знаю, не знаю... Должен очищаться при нажатии на кнопку. Ну ты понял boxes.Clear();
0
|
|
|
4 / 3 / 2
Регистрация: 03.12.2023
Сообщений: 116
|
|||
| 13.12.2023, 21:09 [ТС] | |||
|
Сейчас прикручу перемещение ящика в руки и паррент Добавлено через 8 минут Кнопка отвязана была ![]() Добавлено через 12 минут Основа рабочая! Сейчас попробую разобрать момент- взял ящик, перенес- поставил. Отошел далеко, нажал кнопку, перенесенный ящик прилетел в руки. Добавлено через 1 час 14 минут Вроде как всё хорошо. Таймер для очистки списка не подошел, но инструмент полезный, оставляем в комментариях). Очистка списка по выходу из коллизии лучший вариант, так нельзя притянуть к себе издалека коробку, до которой дотронулся, пока пробегал мимо. Если останавливать объект при взятии, то он почему то берется черт знает где, в Transform просто рандомные 3хзначные числа. targetObject.transform.localPosition = Vector3.zero; заменил на targetObject.position = transform.position;
0
|
|||
|
4 / 3 / 2
Регистрация: 03.12.2023
Сообщений: 116
|
|||||||
| 14.12.2023, 14:34 [ТС] | |||||||
|
Кликните здесь для просмотра всего текста
Добавлено через 34 минуты Вроде доработал, понял, где ошибка была. 17-18 строки работали именно на первый попавшийся (и запомненный) ящик
0
|
|||||||
| 14.12.2023, 14:34 | |
|
Auto resize объектов сцены Выбор объектов сцены мышью Видимость объектов сцены и их потомков классами
Как удалять со сцены одновременно несколько объектов? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|