• Increase font size
  • Default font size
  • Decrease font size
  • default color
  • cyan color
  • red color
Unity 3D. Основы скриптинга на C#. Часть 1.
Автор: Administrator   
28.05.2011 17:06

Требуемые знания Юнити: начальные. 
Требуемые знания С#: начальные. 
Здравствуйте, сегодня я покажу вам основы скриптинга в движке Unity 3D на C#. Для работы нам понадобится, как понятно - сам Unity3D (я пользуюсь версией 3.1, последней на данный момент, но все должно работать и на 3.0, и на 2.x) и какой-нибудь редактор кода. Стандартный Юнайтовский редактор никуда не годится, т.к. мало возможностей - мнения типа "для обучения сойдет" бред, потому что все равно потом придется перейти на VS. Для C# приходится выбирать между Visual Studio Professional (с версией Express все немного по другому) и MonoDevelop (идет в поставке с Юнити, но возможностей меньше). Я выбираю первый. Скачиваем триалку отсюда



После того, как вы установили Visual Studio Professional, приступим к настройке. Создадим новый проект (File->New Project) в пути без кириллицы, т.к. с ней у Unity бывают иногда проблемы. В моем случае я выбрал путь D:MyProjectsUrok1. 
Не ставьте никаких галочек рядом с пакетами ассетов - в этом уроке они не понадобятся. 



Выберем в меню Edit->Preferences. Появится вот такое окошко: 


 

Если вы правильно поставили студию, то в списке External Script Editor можно быть ее выбрать. 
Создадим в Project View папочку _Scripts. Там создадим наш первый скрипт на C#. Переименуем его в myFirstScript
Щелкнем два раза по нему. 
Через несколько секунд откроется студия со скриптом. 



Как видим, во вкладочке справа открыт Scripting Reference - незаменимый помощник в скриптинге. 
Давайте разберем скрипт по полочкам. 

 

using UnityEngine; 
using System.Collections;

 

Здесь все просто - просто подключаем библиотеки кода для работы, а точнее для распознования кода, т.к. компилируем мы не через студию, а через Unity. Студия тут - просто редактор кода. 

 

public class NewBehaviourScript : MonoBehaviour

 

Базовый класс для всех классов-скриптов Unity - MonoBehaviour, поэтому наследуем его. 
Внимание: название класса должно быть то же самое, что и у файла со скриптом (myFirstScript в данном случае)! 

 

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

Cобственно, внутри таких функций и пишется весь код скрипта. По умолчанию создается только две функции (Start (инициализация скрипта) и Update (выполняется в каждом кадре)). Названия таких функций уже "забиты" в движок, и компилятор Юнити их подхватывает при работе. Вот так все продуманнo



Давайте заставим наш скрипт делать что-то. Как всегда, это будет "Hello, world!". happy Причем выводить будем аж двумя способами. Добавим в начало скрипта, объявления класса такой код: 

 


public string outString; // переменная для строки, которую будем выводить. Если мы сделаем ее public, то ее можно будет   
// прямо в Inspector'е Unity.

А в функцию Start впишем: 

 

Пишем именно в Start, а не в Update, иначе код будет выполняться каждый кадр. 
Сохраним код (Ctrl+S) и перейдем в Unity. Создадим пустой ГО (меню GameObject->Create Empty) и перетащим на него наш скрипт. Вид Inspector изменился. 

 


Видите поле Out String? Вот, через него как раз можно редактировать переменную. cool Введем в него "Hello, World!". Жмем Play. Что же видим? Внизу, в консоли отобразилась наша строка - то, что хотели. 

 




Вам не кажется, что этого маловато? Тогда давайте сделаем так, чтобы наша строка показывалась на экране игры. 
Создадим функцию OnGUI (). В ней-то и нужно писать операции с GUI (интерфейсом пользователя). Далее, выведем через метод Label наш текст. 

 

void OnGUI() 
      { 
          GUI.Label(new Rect(10, 10, 150, 20), outString); // Rect определяет позиция и размер нашего текста 
      }

Смотрим, что получилось. 


 



Всем пока, ждите следующих частей!



Готовый скрипт:

using UnityEngine; 
using System.Collections; 
 
public class myFirstScript : MonoBehaviour { 
 
     public string outString; // переменная для строки, которую будем выводить. Если мы сделаем ее public, то ее можно будет  
                    // прямо в Inspector'е Unity. 
  // Use this for initialization 
  void Start () { 
         Debug.Log(outString); // выведем в отладочную консоль Unity нашу строку 
  } 
 
     void OnGUI() 
     { 
         GUI.Label(new Rect(10, 10, 150, 20), outString); // Rect определяет позиция и размер нашего текста 
     } 
  // Update is called once per frame 
  void Update () { 
 
  } 
}


Кому что-то непонятно по C# - это урок по API Юнити, почитайте несколько первых уроков тут.

 

Автор: Zer0n

 

Вход на сайт

Онлайн

Сейчас 49 гостей онлайн

Понравился сайт?


Счетчики

Rambler's Top100

Облако тэгов

Joomla Extensions



Карта сайта