|
4 / 3 / 2
Регистрация: 03.12.2023
Сообщений: 116
|
||||||
Привязка объектов сцены в скрипт на префабе10.12.2023, 17:49. Показов 2477. Ответов 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 объектов сцены Выбор объектов сцены мышью Видимость объектов сцены и их потомков классами
Как удалять со сцены одновременно несколько объектов? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
|
После бана на Пикабу не работает авторизация аккаунта с Яндекса.
Hrethgir 09.07.2026
В частности https:/ / auto. ru/ logbook/ zapret-na-vozhdenie-posle-65-let_1cf28789-07b4-4c75-a2f7-4cd4edf9deeb тут хотел оставить комментарий такой
Зрите в корень - монополизация на разработку программ. . .
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|