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

Редактирование объекта при клике на него

03.07.2024, 12:04. Показов 443. Ответов 10

Author24 — интернет-сервис помощи студентам
Подскажите как сделать? Есть объекты столы (круг) при клике на определенный стол появлялось свое меню редактирования
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.07.2024, 12:04
Ответы с готовыми решениями:

Редактирование ячеек StringGrid при клике
Всем привет! Есть stringGrid c обнуленными ячейками. Нужно сделать так, чтобы при клике на ячейку...

Скрыть элемент при клике на него
Здравствуйте! Подскажите как правильно скрыть элемент при нажатии на него... Я написал такой код,...

Удалить checkbox при клике на него.
Здравствуйте, помогите пожалуйста, надо удалить checkbox при клике на него. const btn =...

Убрать квадрат при клике на него
Доброго времени суток! Такой вопрос: Я создаю квадрат ctx.fillRect(320, 320, 20, 20); и мне...

10
1045 / 258 / 143
Регистрация: 30.07.2022
Сообщений: 1,657
Записей в блоге: 4
03.07.2024, 12:53 2
Лучший ответ Сообщение было отмечено Владимир1233 как решение

Решение

Владимир1233, для того чтобы определить по какому объекту вы щелкнули мышкой в Unity
вы можете использовать:
IPointerClickHandler
Physics.Raycast
MonoBehaviour.OnMouseDown()

Цитата Сообщение от Владимир1233 Посмотреть сообщение
свое меню редактирования
далее действия будут отличаться в зависимости от типа редактирования.

если просто цвет поменять, то по клику помещаете объект в поле скрипта, обращаетесь к материалу объекта. меню должно так же иметь доступ к этому скрипту и по клику на пункте меню задавать новый цвет материалу.

PS:а вообще, очень объемный вопрос связанный с целой механикой, в двух словах сложно объяснить.
0
0 / 0 / 0
Регистрация: 26.08.2017
Сообщений: 26
03.07.2024, 16:53  [ТС] 3
не знаю правильно или нет


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
 
[SerializeField]
    private TMP_Text _title;
    public InputField inputField;
   public void GetInputText()
{
    string text = inputField.text;
     _title.text = text;
}
 
 
 
 
 
 void Update () {
 
    if (Input.GetMouseButtonDown(1)) 
    {
      RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
 if(hit.collider != null)
{
if(hit.collider.gameObject.name == gameObject.name)
{   GetInputText();
   Debug.Log ("name: " + hit.collider.gameObject.name); 
    
    
}}
    }
 
}

этим я добился при клике показывает имя и в инпуте менять текст

но у меня возникает проблемя при генерации нового обьекта

C#
1
2
3
4
5
6
public void InstantiateGameObject()
    {
 
       Instantiate(circle, new Vector3(0 * 2.0f, 0, 0), Quaternion.identity); 
      // circle.name = "i";
    }
уже кликая на каждый имя выводится любого на который кликнешь а вот редактировать я могу только последний созданный
0
191 / 132 / 57
Регистрация: 28.05.2022
Сообщений: 865
03.07.2024, 19:57 4
вы пытаетесь скорее всего изменить сам префаб (в ассетах) обращаясь к circle
вам нужен сделать так
C#
1
2
3
4
5
6
public void InstantiateGameObject()
    {
 
       instantiatedObject = Instantiate(circle, new Vector3(0 * 2.0f, 0, 0), Quaternion.identity); 
      // instantiatedObject.name = "i";
    }
и уже с instantiatedObject работать
0
0 / 0 / 0
Регистрация: 26.08.2017
Сообщений: 26
03.07.2024, 20:27  [ТС] 5
instantiatedObject сам откуда брать ? вешать на него префаб?
0
0 / 0 / 0
Регистрация: 26.08.2017
Сообщений: 26
05.07.2024, 22:26  [ТС] 6
ieretsumi, посмотрите на мой код пожалуйста, при данном кликаньи на объекты в консоли пише правильно имя если кликать поочереди а вот инпут работает только с последним созданным объектом
0
1045 / 258 / 143
Регистрация: 30.07.2022
Сообщений: 1,657
Записей в блоге: 4
06.07.2024, 01:06 7
Владимир1233, я в вашем годе вообще не вижу, что бы вы инпуту новые значения присваивали.

вам надо в инпут записывать значения имени из рейкаста
примерно так:
C#
1
inputField.text = hit.collider.gameObject.name;
тогда там будет нужное вам имя.
0
0 / 0 / 0
Регистрация: 26.08.2017
Сообщений: 26
06.07.2024, 14:16  [ТС] 8
Так я в инпуте пишу текст , текст прикреплент к объекту , мне нужно сделать проверку что текст с инпута менял текст объекта по которому кликаю, а он меняет только по последнему созданному


К примеру на экране круг с именем круг написал в инпут на нем появилось слово
Потом появляется круг клон написал в инпут текст поменялся но когда я опять кликаю на не клон ничего не происходит

Хотя в логах он пишет на какой именно объект я кликаю

Добавлено через 50 секунд
ieretsumi, Так я в инпуте пишу текст , текст прикреплент к объекту , мне нужно сделать проверку что текст с инпута менял текст объекта по которому кликаю, а он меняет только по последнему созданному


К примеру на экране круг с именем круг написал в инпут на нем появилось слово
Потом появляется круг клон написал в инпут текст поменялся но когда я опять кликаю на не клон ничего не происходит

Хотя в логах он пишет на какой именно объект я
0
1045 / 258 / 143
Регистрация: 30.07.2022
Сообщений: 1,657
Записей в блоге: 4
06.07.2024, 16:08 9
Владимир1233, Так уточню! Вам надо выбрать объект и присвоить его имени текст, который вы написали в Input?
0
0 / 0 / 0
Регистрация: 26.08.2017
Сообщений: 26
06.07.2024, 17:55  [ТС] 10
ieretsumi, circle прикреплен объект текст
Миниатюры
Редактирование объекта при клике на него  
0
0 / 0 / 0
Регистрация: 26.08.2017
Сообщений: 26
06.07.2024, 23:02  [ТС] 11
ieretsumi, я решил данную проблему )))) а именно когда я делал Instantiate у меня создавался объект со свои текстом а оригинал со своим и когда я вводил тест он менял на оригинале а у копии был свой текст

я сделал на фоне отдельно общую переменную теста

и уже любым объектом достаю ее через string text = GameObject.Find("FON").GetComponent<text>().myName;

и теперь что бы я не кликал текст появляется где нужно и какой нужно

Добавлено через 3 часа 11 минут
ieretsumi, и инпут повесил не на обьект а на фон
0
06.07.2024, 23:02
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.07.2024, 23:02
Помогаю со студенческими работами здесь

Убрать круг при клике на него
Здраствуйте. Написал скрипт для генерация кругов. Теперь нужно реализовать возможность исчезновения...

Изменение размера квадрата при клике на него
В HTML-документе задан тег &lt;div&gt; c идентификатором square в виде красного квадрата. У него есть...

Сворачивание блока при повторном клике на него
Доброго дня! На сайте используется простейший аккордеон: $(function() {...

Запрет активации checkbox при клике на него
Вообщем ситуация такая есть checkbox он false (то есть галка на нем не стоит) при клике на него...

Получение состояния элемента при клике на него
У меня есть список элементов с датам суммами и т.д. Нужно сделать так, чтобы при клике на нем можно...

Увеличение содержимого параграфа при клике на него
В HTML-документе есть несколько тегов &lt;p&gt;. Внутри них указаны числа. Напишите скрипт, который...

Сокрытие элемента при клике вне него
Здравствуйте. Имеется такой код $(function(){ //Живой поиск $('.who').bind(&quot;change...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru