И вот, зайдя в юнити и прочитав пару статей, вы обращаете внимание на панельку под названием Inspector.
Каждое подменю - это так называемый компонент. Что это? Вкратце - кусочки, из которых складывается поведение объекта, его положение в мире и все-все-все. Так, например, компонент Collider дает предмету осязаемую форму, на которую смогут реагировать другие объекты, у которых есть компонент, ответственный за физику - RigidBody, не говоря о Transform, который позволяет нашему предмету иметь в мире положение, масштаб и поворот. Вкратце говоря, если Game Object - предмет, то компоненты - его свойства.
На этих кирпичиках и строится мир в юнити. Попробуем написать собственный компонент.
Дважды кликнув по выбранному в поле Script файлу, или найдя этот файл в папке проекта, мы попадем в нашу рабочую среду, где и будем творить.
По умолчанию это MonoDevelop, но вы всегда можете сменить на другой в Edit/Preferences/ExternalTools.
Создадим новый скрипт пройдя в меню Assets/Create/C#Script. Новый скрипт, для примера, мы назовем "SomeComponent".
И вот мы смотрим на код.
Дважды кликнув по выбранному в поле Script файлу, или найдя этот файл в папке проекта, мы попадем в нашу рабочую среду, где и будем творить.
По умолчанию это MonoDevelop, но вы всегда можете сменить на другой в Edit/Preferences/ExternalTools.
Создадим новый скрипт пройдя в меню Assets/Create/C#Script. Новый скрипт, для примера, мы назовем "SomeComponent".
И вот мы смотрим на код.
using UnityEngine;
using System.Collections;
public class SomeComponent : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
Разберем этот код. (Важно - имя класса обязательно должно совпадать с именем файла).
Замечу, что функции Start, Update и FixedUpdate есть только в тех компонентах, что наследуются от MonoBehaviour.
MonoBehaviour - это компонент, описывающий поведение объекта. Отсюда и слово "Behaviour". Скажем, это может быть поведение юнита, здания, игрока, двери или еще какой другой оказии в игровом мире. Чтобы обеспечить взаимодействие с миром и сделаны специальные методы, которые позволяют нам отслеживать окружающие изменения.
MonoBehaviour - это компонент, описывающий поведение объекта. Отсюда и слово "Behaviour". Скажем, это может быть поведение юнита, здания, игрока, двери или еще какой другой оказии в игровом мире. Чтобы обеспечить взаимодействие с миром и сделаны специальные методы, которые позволяют нам отслеживать окружающие изменения.
Start - вызывается при появлении этого компонента на нашей сцене (Если был там с самого начала - запустится при запуске сцены), появился ли он во время игры вместе с некоторым новым объектом или был добавлен уже к существующему.
Update - этот метод вызывается каждый раз при перерисовке картинки на экране. Замечу, что добавив слово Fixed вы получите...
FixedUpdate - метод, вызывающийся каждый раз, при каждом просчете физики.
Немного отвлечемся. Вы правильно поняли, физика и графика идут раздельно и считаются с разными периодами. Это позволяет, к примеру, полностью останавливая просчет физики, не трогать ничего, связанного с графикой.
Это основные, общие для всех компонентов функции, но не единственные.
Пример
// Update is called once per frame
void Update () {
transform.position = transform.position + Vector3.up;
}
Так например этот код будет каждый раз при перерисовке графики поднимать наш объект на 1 единицу вверх.
Важно заметить, что все публичные переменные, объявленные в этом классе, автоматически появляются в подменю, где их можно будет изменить на те значения, какие будут нужны при запуске сцены, если вы конечно не написали кастомное, хотя, вряд ли вы тогда читали бы эту статью.
Ред. AsagiriGen