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

Создание объектов

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


Читайте также:
  1. A. Создание персонажей
  2. I. Создание визитной карточки
  3. I. Создание информационного трехстраничного буклета
  4. I. Создание Энергетического и Духовного Тел
  5. III. Мероприятия по обеспечению антитеррористической защищенности объектов (территорий)
  6. MS PowerPoint. Создание слайда с диаграммой и таблицей
  7. MS PowerPoint. Создание управляющих кнопок

Для того чтобы создать новый экземпляр объекта в UnrealScript, вы будете использовать одну из двух функций в зависимости от того, наследует ли класс объекта класс Actor. Для акторов вы должны использовать функцию Spawn, которая объявлена в файле сценария Actor.uc. Для остальных классов вы должны использовать оператор new. Синтаксис оператора new в отличается от любой другой функции. В дополнение к необязательному списку параметров вы должны указать класс нового объекта и необязательный шаблон объекта. В сценариях UnrealScript нет объявления для оператора new, но если бы было, то выглядело примерно так new:

native final operator function coerce Object new

(

object InOuter,

name InName,

int InFlags,

class InClass,

object InTemplate

);

InOuter

(необязательный) Пакет, который необходимо назначить как "внешний" (Outer) для вновь созданного объекта. Если этот параметр не указан, "внешним" для объекта будет установлен специальный пакет, который существует только во время игры, называемый "переходным пакетом" (transient package).

InName

(необязательный) Имя для нового объекта. Если параметр на указан, объекту будет дано уникальное имя в формате ClassName_##, где ## - уникальный номер, увеличивающийся при создании каждого нового экземпляра этого класса.

InFlags

(необязательный, в настоящее время значение ограничивается 64 битными флагами) Флаги, уточняющие особенности применения объекта после его создания:

· 0x0000000100000000: Редактором поддерживается отмена/повтор операций с данным объектом. (RF_Transactional)

· 0x0000000400000000: Может ссылаться на внешние файлы. (RF_Public)

· 0x0000400000000000: Не может быть сохранен на диск. (RF_Transient)

· 0x0010000000000000: Не загружать объект на игровой клиент. (RF_NotForClient)

· 0x0020000000000000: Не загружать объект на игровой сервер. (RF_NotForServer)

· 0x0040000000000000: Не загружать объект в редактор. (RF_NotForEdit)

· 0x0008000000000000: Держать объект для редактирования, даже если он не на что не ссылается. (RF_Standalone)

InClass

класса, экземпляр которого создается

InTemplate

Объект, используемый для инициализации значений свойств нового объекта

Синтаксис применения оператора new выглядит следующим образом:

ObjectVar = new[(InOuter, InName, InFlags)] <class'InClass'>[(InTemplate)];

Создать объект класса LightFunction:

function CreateALight()

{

local LightFunction NewObj;

 

NewObj = new class'Engine.LightFunction';

}

Создаем новый объект класса LightFunction с именем "NewLight", указываем этот объект как внешний пакет.

function CreateALight()

{

local LightFunction NewObj;

 

NewObj = new(Self,'NewLight') class'Engine.LightFunction';

}

Создаем новый объект класса LightFunction с именем "NewLight" в переходный пакет, инициализируем значения свойств нового объекта, используя переменную LightFunctionTemplate:


Дата добавления: 2015-11-14; просмотров: 45 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Встроенные операторы и их приоритет| Отладчик сценариев

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