Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 07.01.2020
Сообщений: 2

Создание подсказки при наведении курсора на определенное СЛОВО в тексте

07.01.2020, 20:16. Показов 7445. Ответов 4
Метки text (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток уважаемые коллеги..
После довольно продолжительного поиска, все еще не нашел ответа или направления на ответ на свой вопрос(

Во многих играх есть такая функция, как отображение подсказки при наведении на какой-то текст.
Например в UI статуса персонажа был наложен эффект кровотечения, из-за компактности интерфейса вся информация по этому эффекту скрыта в подсказке. Пользователь может навести курсор на слово "кровотечение" чтобы узнать подробнее, как влияет этот эффект.

Сделал небольшой прототип (скриншот), весь текст в черной Panel это один Text, при наведении на цветной текст отображается подсказка. Например (как на скриншоте) при наведении на голубой текст появляется подсказка на белой Panel с текстом "Вы навелись на голубой текст". Если навестись на зеленый, желтый и тд (другой) текст подсказка будет иной.
p.s. скриншот - сырые наброски panel в редакторе и Photoshop, это лишь примерный вид того, как должно работать и выглядеть.

Буду рад вашим советам в реализации такой функции!)

(Зеркало.скриншот)
Миниатюры
Создание подсказки при наведении курсора на определенное СЛОВО в тексте  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.01.2020, 20:16
Ответы с готовыми решениями:

Как включить подсказки при наведении курсора на панель уведомлений в Windows 10?
Привет. Я пользуюсь Win.7, и с 10-ой не знаком. Одной пожилой женщине на работе важны подсказки, т. к она не знает, что означают иконки....

Изменение изображения при наведении курсора в определённое место
Добрый вечер, как реализовать такое? http://www.ilm.com/ (водите курсором по изображению). Если не составит труда киньте пожалуйста пример.

Изменение изображения при наведении курсора в определённое место
Добрый вечер, как реализовать вот такое? http://www.ilm.com (водите курсором по изображению)

4
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
07.01.2020, 21:09
Делаешь префаб подсказки, текст + фон, пишешь скрипт, который при наведении на UI будет создавать префаб, сувать его под канвас, присваивать нужный текст и позицию. Я недавно писал нечто подобное, но там всё через мои костыли, поэтому не получится отсоединить от контекста.
Но работает это вот так: https://www.youtube.com/watch?... e=youtu.be
Скрипты показал для наглядности, копировать их смысла нет, потому что для каждой задачи свою нюансы.
https://docs.unity3d.com/2019.... ndler.html

Добавлено через 3 минуты
И да, если надо будет распознавать именно определенное слово, придется как-то разбивать их на отдельные тексты или брать позицию с рейкаста и ориентироваться по ней.
0
0 / 0 / 0
Регистрация: 07.01.2020
Сообщений: 2
07.01.2020, 21:45  [ТС]
1max1, спасибо за ответ...

Я уже читал "подобные" темы на этом форуме, но все они сводились к отображению подсказки по наведению на конкретный объект, будь то кнопка, панель, любой другой элемент или даже блок в 3D мире.
Я уже разобрался в создании ЭТИХ подсказок. На данный момент меня интересует как именно можно сделать подсказку не по UI элементу, а по конкретному контенту в этом элементе.

Самое простое, в HTML есть простой тег <span title="Подсказка">, который можно прикрутить вообще ко всему: слову, цифре, символу, даже картинке.
(Наглядный пример)

Здесь же в Text в свойствах RichText на данный момент ничего полезного, кроме <color=#цвет> я не увидел(


Мои видения как можно реализовать:
* сделать их слова некликабельную ссылку (кнопку), по наведении на которую будет срабатывать событие с показом подсказки
* сделать некую область, если курсор мыши находится в этой области - показывать подсказку

Я бы мог попробовать воплотить эти идеи прежде чем писать пост, но вот как интегрировать что-то подобное в простой UI.Text я не знаю, да и вообще стоит ли, если возможно есть более простой способ.


Надеюсь пример с HTML тегом дал исчерпывающее понимание, что конкретно требуется)
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
07.01.2020, 22:00
Вот тут что-то похожее, но я не стал в этом разбираться)
https://deltadreamgames.com/unity-tmp-hyperlinks/
1
 Аватар для Steroid
296 / 217 / 86
Регистрация: 17.02.2016
Сообщений: 1,276
Записей в блоге: 1
08.01.2020, 01:36
красить текст впринципе легко
C#
1
text.text =("<color=#00ffff>" +  textGreen + "</color>" + " " + "<color=#0000ff>" +  textBlau + "</color>");
небольшой пример:
Кликните здесь для просмотра всего текста
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
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
 
public class testTextColor : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
    public Text text; //создаем текст и назначаем в инспекторе
    public string textGreen; //пишим чтонибудь в инспекторе
    public string textBlau; //пишим чтонибудь в инспекторе
    public GameObject info; //создаем панель  и назначаем в инспекторе
    public Text infoText; //создаем текст внутри пинели и назначаем в инспекторе
 
    // Start is called before the first frame update
    void Start()
    {
        text.text =("<color=#00ffff>" +  textGreen + "</color>" + " " + "<color=#0000ff>" +  textBlau + "</color>");  // здесь красим текст как в HTML
 
    }
    public void OnPointerEnter(PointerEventData eventData)
    {
        testTextColor testText = eventData.pointerEnter.GetComponent<testTextColor>(); //проверяем навелись ли мы на нужный объект
        info.SetActive(true); // активируем окно тултипа
        info.transform.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y); //показывает тоолтип на координатах мыши
        infoText.text = ("Sie zeigen auf " + text.color.ToString() + " gefärbte text"); // тут вприныипе нужно както вывести цвет именно того текста на который мы навелись но я не вкурсе как :( надо наверное както парсить. а так нам показывается цвет самого компонента но это не то что нам надо
    }
 
    public void OnPointerExit(PointerEventData eventData)
    {
        info.SetActive(false); // отключает тултип
    }
}

как вывести цвет именно тех букв на которые навели мышку я чтото не вкуриваю пока
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.01.2020, 01:36
Помогаю со студенческими работами здесь

Выполнять определенное действие при наведении курсора на элемент управления
привет всем, прошу помочь, у меня возник вопрос как выполнять определенное действие при наведении курсора на допустим кнопку, тоесть при...

Создание подсказки по наведению курсора
При наведении курсора мыши на ссылку, как сделать подсказку , содержащую несколько строк Спасибо

В тексте найти определенное слово
задание таково: прочитать первое слово из первого текстовика и найти это слово в другом текстовике а после до начала слова поставить энтер...

Закрасить определенное слово в тексте другим цветом
Можно ли изменить цвет определенного в txt или rich боксах?

Всплывающие подсказки при наведении мышки на кнопку
Как сделать чтобы при наводе мышки на кнопку всплывала подсказка?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru