Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Встроенные операторы и их приоритет

Преобразование ссылок на объекты и классы | Объявление функций | Спецификаторы параметров функций | Переопределение функций | Private, Protected | Отладчик сценариев | Определение значений по умолчанию с использованием блока defaultproperties | Динамические массивы | Итераторы динамических массивов | Доступные спецификации метаданных |


Читайте также:
  1. II. Знаки приоритета
  2. Арифметика, логика и приоритеты
  3. В) Трудно учесть неоднородность потока заявок (приоритеты, различия длительностей обслуживания)
  4. Вложенные операторы If. Логические операции и выражения
  5. Вложенные операторы if. Сложное условие в операторе if. Логические операции
  6. ВОПРОСНИК: ИССЛЕДОВАНИЕ ПРИОРИТЕТНЫХ КОНКУРЕНТОВ
  7. Встроенные контейнеры компоновки

Язык 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| Создание объектов

mybiblioteka.su - 2015-2024 год. (0.007 сек.)