Unity 6.3
0 онлайн 95 гостей 3 в системе
Вход
Программирование в Unity Шаг 16 из 210

MonoBehaviour

Класс MonoBehaviour предоставляет каркас, позволяющий прикрепить скрипт к GameObject в редакторе. Он также даёт точки подключения к полезным событиям, таким как Start и Update.

Вы можете создавать новые MonoBehaviour скрипты в Редакторе, как описано в Создание сценариев.

Полный справочник по всем членам класса MonoBehaviour и его техническим особенностям см. в Ссылка на скрипт MonoBehaviour.

Содержание файла скрипта MonoBehaviour

Двойной щелчок на Asset скрипта в Unity откроет его в текстовом редакторе. По умолчанию Unity использует Visual Studio, но вы можете выбрать любой редактор из панели Внешние инструменты в настройках Unity (меню: Unity > Настройки).

Если вы выберете создать скрипт MonoBehaviour, то первоначальное содержимое файла будет выглядеть примерно так:

using UnityEngine;
using System.Collections;

public class NewMonoBehaviourScript : MonoBehaviour {

    // Start is called once before the first execution of Update after the MonoBehaviour is created
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

Этот скрипт связывается с внутренним устройством Unity через класс, производный от встроенного класса MonoBehaviour. Класс можно воспринимать как своего рода чертёж для создания нового типа компонента, который можно прикреплять к GameObject. Каждый раз, когда вы прикрепляете компонент-скрипт к GameObject, создаётся новый экземпляр объекта, описанного этим чертежом. Имя класса берётся из имени, которое вы задали при создании файла. Рекомендуется держать имя класса и имя файла согласованными, см. Соображения, касающиеся названий.

Главное, на что стоит обратить внимание, — две функции, объявленные внутри класса. Обновление function — это место, где можно вставить код, который будет обрабатывать обновление кадров для GameObject. Это может включать движение, запускающие действия и реагирование на ввод пользователя, в основном, все, что необходимо обрабатывать со временем во время игры. Чтобы позволить функции Update выполнять свою работу, часто полезно иметь возможность устанавливать переменные, читать предпочтения и устанавливать связи с другими GameObjects до того, как произойдет какое-либо игровое действие. Начало функция будет вызвана Unity перед началом игры (до того, как функция Update будет вызвана в первый раз) и является идеальным местом для инициализации.

Примечание: Опытные программисты могут быть удивлены, что инициализация объекта не выполняется с помощью функции конструктора. Это потому, что построение объектов обрабатывается Unity Editor и не происходит в начале игры, как вы могли бы ожидать. Если вы попытаетесь определить конструктор для MonoBehaviour, это будет мешать нормальной работе Unity и может вызвать серьезные проблемы с проектом.

Управление GameObject

Скрипт определяет только схему для Компонента, так что ни один из его кодов не будет активен до тех пор, пока экземпляр скрипта не будет прикреплен к GameObject. Вы можете прикрепить скрипт, перетаскивая ассет скрипта на GameObject в панели иерархии или на Inspector текущего выбранного GameObject. Также в меню Компонента есть подменю Скрипты, которое содержит все доступные скрипты в проекте, включая те, которые вы создали сами. Экземпляр скрипта выглядит как любой другой Компонент в Inspector:

Компонент скрипта, прикрепленный к GameObject в Inspector.
Компонент скрипта, прикрепленный к GameObject в Inspector.

После подключения скрипт начнет работать, когда вы нажмете кнопку Play и запустите игру. Вы можете проверить это, добавив следующий код в функцию Start:

// Use this for initialization
void Start () 
{
    Debug.Log("Hello world!");
}

Debug.Log это простая команда, которая просто печатает сообщение на консоль Unity. Если вы нажмете Играть сейчас, вы увидите сообщение в нижней части главного окна Редактора и в окне Консоли (меню: Окно > Общие > Консоль).

Корутин

Класс MonoBehaviour позволяет запускать и останавливать корутины и управлять ими.

Дополнительные сведения о сопутствующих процедурах см. в Сопутствующие процедуры и ссылка на скрипт метода StartCoroutine в.

Мероприятия

Класс MonoBehaviour даёт доступ к обширному набору функции событий, что позволяет вам выполнять код на основе того, что происходит в данный момент в вашем проекте. Вот несколько наиболее распространенных примеров. Для списка всех из них, см. Сообщения раздел по вопросу Справочная страница скрипта MonoBehaviour

Дополнительные ресурсы