Как создать простое модное меню в играх Unity

Sbenny.com доверяют 1,334,437 XNUMX XNUMX счастливых пользователей с 2014 года.
Зарегистрируйтесь

AndnixSH

Дикарь Уровень 6️⃣
Отряд СБ Мод ⭐
Участник 8 лет

Я получил много запросов на учебник, как сделать Меню MOD но не успел и почти забыл. Я должен был приостановить все свои другие защиты и сразу же начать работать с этим уроком.

Доступно Меню MOD, он позволяет игроку выбирать, какие хаки использовать. Меню MOD может быть полезным в многопользовательских играх, когда игрок может быстро включать и отключать хакерские игры, чтобы об этом не сообщали легальные игроки

Итак, начнем.

Требования:
- базовый опыт моддинга Unity
- знакомый с C # и dnSpy
- dnSpy установлен на вашем компьютере
- Unity редактор установлен на вашем компьютере
- Visual Studio 2017 установлен на вашем компьютере (необязательно.)

Установка редактора Unity:
Сначала создайте учетную запись или войдите с помощью Google или Facebook на Unity

Перейдите на Единство - Магазин и выберите «Попробовать лично». Это совершенно бесплатно. Скачайте и установите его. Если вы хотите, чтобы Visaul Studio 2017 была установлена, обязательно выберите ее в установщике. Если не установлен, вы будете использовать MonoDevelop.

1517086146771.png


Настройка редактора Unity:
Запустите Unity, войдите в свою учетную запись и заполните анкету. После этого вы можете создать новый проект. Назовите его, как хотите, и оставьте выделенным 3D. Нажмите "Создать проект".

Панель управления запустится.

Создайте новый скрипт C #:

1517086157910.png


Нажмите на Активы -> Создавай -> C # скрипт или щелкните правой кнопкой мыши на разделе проекта Создавай -> C # скрипт

Перетащите сценарий и поместите поверх Основная камера ниже Без названия чтобы убедиться, что ваш сценарий показан на игровой сцене.

Разработка и тестирование GUI:
Наконечник:
Во время программирования вы можете нажать кнопку воспроизведения и редактировать код во время игры. Редактор будет зависать некоторое время, когда вы откроете его.

Удалите методы Start () и Update () и добавьте метод OnGUI () следующим образом:

C #:
public class ModMenuScript : MonoBehaviour {

    void OnGUI() {

    }

}
Добавьте несколько полей выше OnGUI (), чтобы вы могли использовать его позже

Код:
public bool hack1;
public string string1;
public bool ShowHide = false;
Создайте кнопку "ПОКАЗАТЬ / СКРЫТЬ"

C #:
GUI.Button(new Rect(20, 20, 160, 20), "SHOW/HIDE"
Числа (20, 20, 160f, 20f) означают (x, y, ширина, высота)

Добавьте оператор if на кнопку GUI с оператором, чтобы вы могли скрыть / показать меню, нажав на кнопку

C #:
if (GUI.Button(new Rect(20, 20, 160, 20), "SHOW/HIDE"))
{
    ShowHide = !ShowHide;
}
Добавить новый метод кода оператора if в меню дизайна

C #:
if (ShowHide)
{

}
Добавить графическое окно с заголовком внутри кода оператора if

C #:
GUI.Box(new Rect(20, 50, 170, 150), "iAndroHacker's mod menu");
И добавить кнопку с оператором bwloe GUI box

C #:
if (GUI.Button(new Rect(25, 80, 160f, 30f), string1))
{
    hack1 = !hack1;
}
Добавьте новый код оператора if-else, который изменяет текст

C #:
if (hack1)
{
    string1 = "Unlimited health <color=green>ON</color>";
    hack1 = false;
}
else
{
    string1 = "Unlimited health <color=red>OFF</color>";
    hack1 = true;
}
Поздравляю, вы создали очень простую Меню MOD, Теперь вы можете легко настраивать и добавлять дополнительные кнопки и просматривать их в игровой сцене.

Шаблон скрипта: ModMenuScript.cs · master · iAndroHacker / unity-mod-menu · GitLab

1517086460977.png


Смотрите некоторые полезные документы:

Стилизованный текст: Unity - Руководство: Rich Text

GUI немедленного режима (IMGUI): Unity - Руководство: Rich Text

Добавление мод меню в файл assembly-sharp.dll:
Это сложная часть, потому что есть много способов добавить свой собственный код, например, добавить метод OnGUI в любые классы (Загрузка, LoadingScreen, MainMenu и т. Д.) Или добавить код в существующие методы OnGUI.

Метод 1: добавление метода OnGUI

В этом примере я создам OnGUI и добавлю свой код в UserInterfaceManager в Super Dungeon Bros.

Найдите активный класс или выполните поиск «Загрузка» и выберите один из способов загрузки. В моем примере я выбрал DisplayLoadingScreen, расположенный в UserInterfaceManager. Щелкните правой кнопкой мыши UserInterfaceManager и создайте метод.

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

1517086507093.png


Назовите его OnGUI и нажмите ОК.

Щелкните правой кнопкой мыши на OnGUI (); и редактировать метод

1517086512467.png


Удалите extern и измените код так, чтобы он выглядел так:

C #:
public void OnGUI() {
}
Вы можете вставить свой код здесь и скомпилировать его.

Удалите модификатор "static", если Меню MOD не появляется

Метод 2: создайте новый класс для GUI

Добавить класс в пустое пространство имен

1517086572219.png


Добавьте весь код и назовите свой класс. Убедитесь, что вы добавили что такое варган? и статический модификатор, как показано ниже, чтобы другие классы могли получить доступ к полям. ВАШЕ Имя метода не должно называться OnGUI, называть его MyGUI или как угодно. Это делается для того, чтобы избежать путаницы с другим OnGUI, поскольку Unity всегда что-то читает, если распознает методы OnGUI.

Пример:
C #:
public void OnGUI()
{
     ModMenuScript.OnGUI(); //makes problem
}
если вы не добавите статический модификатор, вы получите сообщение об ошибке "Ссылка на объект требуется для нестатического поля, метода или свойства" '"

1517086591413.png


Сохранить класс. Иногда dnSpy не может найти созданный вами класс, поэтому вам нужно сохранить сборку как Assembly-Csharp1.dll или любую другую, закрыть все библиотеки и открыть Assembly-Csharp1.dll

Для того, чтобы ваш Меню MOD появиться в игре, найти активный класс или выполнить поиск «Загрузка» и выбрать один из методов загрузки, создать метод OnGUI и отредактировать код, например:

C #:
public void OnGUI()
{
      ModMenuScript.MyGUI();
}
Взлом функции
Теперь найдите некоторые функции для взлома. Если вы добавили OnGUI в существующий класс с методом Instance, измените код следующим образом:

(Я изменяю этот метод получения в качестве примера)

C #:
public float ArmorCapacity
{
    get
    {
        if (UserInterfaceManager.Instance.hack1)
        {
            return 999f;
        }
        return this._armorCapacity;
    }
    set
    {
    }
}
Если вы добавили свои собственные классы, измените код следующим образом:

C #:
public int get_SupplyCost()
{
    if (ModMenuScript.hack1)
    {
        return 999;
    }
    return this.UnitInstance.SupplyCost;
}
Есть и другие способы взлома, но эти методы - лучший способ взломать новичков.

Сохраните файл dll и протестируйте свой Меню MOD :)

Пример видео: Bandicam 2018-01-26 18-59-25-119 - Streamable

Кредит:
iAndroHacker
 
Последнее редактирование:

Sbenny

Сумасшедший ученый
Штатный сотрудник
Администратор
Отряд СБ Мод ⭐
✔ Утвержденный релизер
Активный пользователь
Это чистое золото <3 большое спасибо за то, что поделились с нами своим уникальным уроком @iAndroHacker :D
 

БРИЛЛИАНТ

Ветеран Уровень 7️⃣
✔ Утвержденный релизер
Участник 6 лет
TYSM Ваш спасатель жизни, это мой HolyGrail! :): Скрываясь:
 

MrOnline

APK Fanatic Уровень 5️⃣
Участник 6 лет
@AndnixSH Я ценю вашу тяжелую работу на темы и видео. Но для новичков, таких как я, видео было слишком быстрым, и тема была Lil Hard в любом случае. Если мы действительно хотим что-то сделать, то мы определенно добиваемся того же, что и со мной. После просмотра ваших видео более 20 раз и получения сообщения об ошибке компилятора 100 times мне наконец-то удалось чтобы получить меню, отображаемое в игре. Спасибо за это большое tutorial.now я работаю над тем, чтобы заставить его работать. Спасибо слишком много: Inlovedroid:: Kissdroid:

РЕДАКТИРОВАТЬ: удалось заставить его работать. СПАСИБО ВАМ ЗА ЭТО РУКОВОДСТВО ТЕПЕРЬ МОЙ МОД РАБОТАЕТ ПОЛНОСТЬЮ НОРМАЛЬНО <3
 
Последнее редактирование:

shashuke

Lurker Уровень 0️⃣
Участник 7 лет
братан, как добавить изображение ico >> показать / скрыть меню if (name.Image == null)
 
Топовое