Блокнот для игры / заметки игрока

В былые времена, для прохождения некоторых игр, нужно было при себе держать листок бумаги и ручку, чтобы делать важные заметки, записывать какие-то коды и прочие интересности. Настоящий хардкор! Не то что современные бродилки, где даже и думать не надо (а парой и играть вовсе), игра всё сама делает. Так вот, если вы хотите для своей игры добавить возможность игроку делать свои заметки, не на бумаге, а прямо в игре, то мы предлагаем простое и эффективное решение. Данный блокнот, позволяет сохранять и загружать набранный текст.


Для ввода текста, нам понадобится Input Field, на который вешаем скрипт:

using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class NotepadComponent : MonoBehaviour, IPointerClickHandler, IPointerExitHandler {

    public InputField inputField;
    private bool wasFocused;

    void IPointerClickHandler.OnPointerClick(PointerEventData eventData)
    {
        if (!wasFocused)
        {
            inputField.caretPosition = inputField.text.Length;
            wasFocused = true;
        }
    }

    void IPointerExitHandler.OnPointerExit(PointerEventData eventData)
    {
        wasFocused = false;
    }
}
Кроме ссылки на объект ввода, этот класс нужен, чтобы сбрасывать авто выделение текста. Обратите внимание, что размер текста в InputField, должен быть такой же, как и у InputField Placeholder. Это необходимо для корректной регулировки высоты текстового поля.

Теперь, куда-нибудь на сцену вешаем управляющий скрипт Notepad.
Здесь используется ScrollRect, чтобы была возможность прокрутки текста. Сам InputField, нужно поместить в раздел контента ScrollRect и настроить его по ширине окна прокрутки, а высота будет регулироваться в зависимости от объема текста. Более подробно можно всё посмотреть и пощупать в демо ниже...

Скачать демо проект:
https://www.patreon.com/posts/bloknot-dlia-23168197
Тестировалось на: Unity 2018.2.17
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика