Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Unity Script.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
57.72 Кб
Скачать

Unity Script

Автор: DadaJava

О мануале

Данный мануал не написан мною. Я являюсь лишь его переводчиком, но также мною в данный мануал было включено кое-что из своих знаний, дабы весь туториал получился более развёрнутым и давал хорошие знания по Unity Script. Здесь собраны переведённые мною статью в официального Scripting Reference, а также с unifycommunity. Все они объединены в один мануал, состоящий из трёх глав, где первые две главы это перевод статей с unifycommunity, а третья (И самая большая глава) содержит пока что незаконченный, но уже готовый более чем наполовину официальный Scripting Reference. Это мой первый серьёзный перевод такого масштаба, поэтому я прошу строго его не судить, и по всем замечаниям писать на соответствующую тему на http://gamecreatingcommunity.ru.

Я думаю, что данный мануал будет полезен многим новичкам на Unity, да и ветеранам будет, что прочитать, чтобы освежить память.

Приятного чтения!

Оригиналы уроков:

http://www.unifycommunity.com/wiki

http://unity3d.com/support/documentation/ScriptReference/index.html

Глава 1 Введение

Unity Script представляет собой специальную версию популярного в среде Web-программирования языка JavaScript. Эта глава представляет широкий обзор языка. В последующих главах мы будем подробнее вдаваться в технику программирования на нём.

Приступая к работе

С чего обычно начинается изучение любого языка программирования? Правильно, конечно же, с написания самого простого сценария на нём, и таким уже давно является «Hello, World». Итак, вот как будет выглядеть он на Unity Script:

function Start()

{

print(“Hello, World”);

}

Для того чтобы назначить наш скрипт какому-либо объекту в сцене, для начала следует его создать. Итак, давайте создадим самый простой объект, на который и назначим наш скрипт. Для этого в верхнем меню Unity, необходимо выбрать пункт “Game Object --> Create Empty”. После этого в окне “Hierarchy” вы можете наблюдать только что созданный нами пустой объект с именем “GameObject”. Ну что же, теперь дело за малым, осталось назначить наш скрипт на этот объект, для этого просто перетащите созданный нами скрипт на данный объект.

Примечание

Все назначенные вами на объект скрипты, вы всегда можете увидеть в окне “Inspector”, после того как выберете его в окне “Hierarchy”. В этом же окне вы можете изменить и значения переменных ваших скриптов.

Ну что же, после того как скрипт назначен на объект, мы можем протестировать его. Для этого просто нажмите кнопку “Play”. И в нижнем углу, в окне консоли вы сможете наблюдать появившуюся надпись “Hello, World”.

Весь код JavaScript, который написан или будет написан вами для ваших проектов. Как правило, хранится в текстовом файле с расширением .js, как и в нашем примере “helloworld.js”. Также, стоить отметить то, что после того как вы написали сценарий во встроенном редакторе Unity и сохранили его, движок автоматически компилирует его и проверяет на наличие ошибок. Это помогает вам предотвратить ошибки в игре в ходе её тестирования. И если ваш скрипт имеет ошибку, то Unity автоматически оповестит вас об этом в консоли.

Типы

Теперь мы можем приступить к изучению такой темы как “Типы”. Unity Script имеет различные ссылки и типы значений использующиеся для написания ваших скриптов. Значения и ссылки отличаются тем, как данные связаны с переменной. Для типов значений, только одна переменная связана с данными, а что же касается ссылочных типов, то они могут иметь множество переменных связанных между собой данными.

Две переменные ссылочного типа могут указывать на один и тот же экземпляр класса самостоятельно.

Вот пример:

class SomeClass

{

var someValue=0;

}

function Start()

{

print(“Value types”);

var intValue = 1;

var anotherValue = 2;

print(intValue);

print(anotherValue);

anotherIntValue=intValue;

intValue = 999;

print(intValue);

print(anotherValue);

print(“Reference types”);

var classVar = someClass();

var anotherClassVar = classVar;

print(classVar.someValue);

print(anotherClassVar.someValue);

classVar.someValue = 111;

print(classVar.someValue);

print(anotherClassVar.SomeValue);

}

Вывод:

Типы значений

1

2

999

1

Ссылочные типы

0

0

111

111

После того как вы запустите игры, вы увидите что назначение на intValue anotherValue копирует данные, в то время как назначение на classVar anotherValue копирует указывает две переменные с теми же данными.

Предопределённые типы

Unity Script имеет следующие стандартные типы:

Тип

Описание

Пример

sbyte

8-разрядное число

var n : sbyte = -2

short

16-разрядное число

var n : short = -2

int

32-разрядное число

var n : int = 2

long

64-разрядное число

var n : long = 2

byte

8-разрядное число без знака

var n : byte = 2

ushort

16-разрядное число без знака

var n : ushort = 2

uint

32-разрядное число без знака

var n : uint = 2

ulong

64-разрядное число без знака

var n : ulong = 2

float

Одинарная точность с плавающей точкой

var f : float = 2.0

double

Двойная точность с плавающей точкой

var f : double = 2.0

boolean

Представляет значение правда/ложь

var b : boolean = true

char

Unicode

var c : char = “c”[0];

String

Представляет текст как последовательность символов Unicode

var s : String = “Hello, World”

Дополнительные встроенные типы перечислены в справочнике Scripting Reference.

Преобразования

Стандартные типы могут быть преобразованы. Явные преобразования поддерживаются для ссылочных типов, но не для предопределённых типов значений. Будьте осторожны при преобразовании между предопределёнными типами, которые имеют различные минимальные и максимальные диапазоны. Например:

function Start()

{

var longValue : long = System.Int64.MaxValue;

var intValue : int = LongValue;

}

Вывод следующего сообщения в консоли: “OverflowException:NumberOverflow” происходит потому что целый тип не может содержать максимальное значение.

Типы массивов

В Unity Script есть два типа массивов – встроенные массивы и массивы класса. Массивы позволяют хранить несколько объектов в одной переменной. Вот пример того что можно сделать с массивом класса:

function Start(){

var arr = new Array();

//Добавляем один элемент

arr.Push(“Hello”);

//Выводим в консоль первый эллемент “Hello”

print(arr[0]);

//Изменяем размер массива

arr.length = 2;

//Присваиваем значение “World” следующему элементу

arr[1] = “World”;

//Проходим по массиву

for (var value : string in arr){

print(value);

}

}

Встроенные массивы очень быстры и эффективны, но они не могут быть изменены. Также их можно отредактировать в окне “Inspector”. Вот простой пример того как можно использовать встроенные массивы:

var values : float[];

function Start(){

//Проходим по массиву

for(var value in values){

print(value);

}

//Поскольку мы не можем изменить размер встроенных массивов

//Мы должны восстановить массив изменив его размер

values = new float[10];

//Присваиваем второй элемент

values[1]=5.0;

}

Также, встроенные массивы полезны при критичной производительности кода.

Обычные массивы Java Script могут быть изменены, отсортированы, а также могут проводить другие операции из массива класса. Также JavaScript массивы не отображаются в инспекторе.

function Start(){

var array = new Array(Vector3(0,0,0),Vector3(0,0,1));

array.Push(Vector3(0,0,2));

array.Push(Vactor3(0,0,3));

//Копируем JS массивы во встроенный массив

var bultinArray : Vector3[] = array.ToBuiltin(Vector3);

//Назначаем встроенный массив в массив JS

var newarr = new Array(builtinArray);

//Newarr содержит те же элементы в виде массива

print(newarr);

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]