Читайте также:
|
|
Язык UnrealScript предоставляет широкий спектр операторов в стиле C, C++ и Java для таких операций, как сложение чисел, сравнение значений, и инкремент переменных. Полный набор операторов определен в пакете Object.u. Ниже описаны стандартные операторы, в порядке убывания приоритета. Обратите внимание, что все операторы в стиле С имеют тот же приоритет, что и в языке C.
Оператор | Типы, к которым применим оператор | Назначение |
@ | string | Объединение строк с дополнительным пробелом между двумя строками. "string1"@"string2" = "string1 string2" |
@= | string | Объединение строк, с дополнительным пробелом между двумя строками, объединить и присвоить. "string1"@="string2", "string1" => "string1 string2" (версия 3323 и выше) |
$ | string | Объединение строк. "string1"$"string2" = "string1string2" |
$= | string | Объединение строк, объединить и присвоить. "string1"$="string2", "string1" => "string1string2" (версия 3323 и выше) |
*= | byte, int, float, vector, rotator | Умножить и присвоить |
/= | byte, int, float, vector, rotator | Разделить и присвоить |
+= | byte, int, float, vector | Сложить и присвоить |
-= | byte, int, float, vector | Вычесть и присвоить |
|| | bool | Логическое ИЛИ |
&& | bool | Логическое И |
^^ | bool | Логическое исключающее ИЛИ |
& | int | Побитовое И |
| | int | Побитовое ИЛИ |
^ | int | Побитовое исключающее ИЛИ (XOR) |
!= | Все | Провенить на неравенство |
== | Все | Проверить на равенство |
< | byte, int, float, string | Меньше, чем |
> | byte, int, float, string | Больше, чем |
<= | byte, int, float, string | Меньше или равно |
>= | byte, int, float, string | Больше или равно |
~= | float, string | Проверить на приблизительное равенство (с точностью 0.0001), сравнить без учета регистра (для строк). |
<< | int, vector | Левый двоичный сдвиг (int), прямое преобразование вектора (vector) |
>> | int, vector | Правый двоичный сдвиг (int), обратное преобразование вектора (vector) |
>>> | То же, что и >> | |
+ | byte, int, float, vector | Сложить |
- | byte, int, float, vector | Вычесть |
% | float, int, byte | По модулю (остаток от деления) |
* | byte, int, float, vector, rotator | Умножить |
/ | byte, int, float, vector, rotator | Разделить |
Dot | vector | Скалярное произведение (dot product) |
Cross | vector | Векторное произведение (cross product) |
** | float | Возведение в степень |
ClockwiseFrom | int (элементы rotator) | Возвращает истину, если первый аргумент расположен по часовой стрелке по отношению ко второму аргументу |
В таблице, приведенной выше, перечислены операторы в порядке убывания их приоритета (для каждой группы операторов). При вводе сложного выражения, например: "1 * 2 + 3 * 4", UnrealScript автоматически группирует операторы по их приоритету. Так как умножение имеет более высокий приоритет, чем сложение, выражение рассматривается компилятором как "(1 * 2) + (3 * 4)".
Операторы "&&" (логическое И) и "||" (логическое ИЛИ) являются замкнутыми: если результат выражения может быть определен только из первого выражения (например, если первый аргумент операции && имеет значение false), то второе выражение не вычисляется.
Что касается операций прямого и обратного преобразования векторов, оператор >> переводит вектор из локального пространства в пространство мира, а оператор << производит обратное преобразование, то есть переводит вектор из пространства мира в локальное пространство.
Например, если у вас есть вектор перед, находящийся в 64 единицах перед игроком, vect(64,0,0) - это вектор локального пространства игрока. Если вы хотите перевести его в мировое пространство, то вы должны преобразовать его с использованием вектора ориентации игрока, вычислив вектор в пространстве мира следующим образом:
myWorldSpaceVect = my64Vect >> playerPawn.rotation;
Прямое преобразование вам нужно использовать в тех случаях, когда у вас есть вектор пространства мира, а вам необходимо преобразовать его в локальное пространство игрока. Например, вы можете преобразовать скорость актора автомобиля из пространства мира в локальное пространство автомобиля, таким образом вы можете получить вектор с компонентом x, равным скорости автомобиля, чтобы затем отобразить его скорость на HUD.
В дополнение к стандартным операторам язык UnrealScript поддерживает следующие унарные операторы:
Время от времени в движок будут добавляться новые операторы. Полный список операторов вы найдете в исходном коде класса Object.
Дата добавления: 2015-11-14; просмотров: 50 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Выражения case | | | Создание объектов |