СПРАВОЧНИККОМПОНЕНТЫ
UCFBreakableInstancesComponent
Разрушаемые элементы на ядре элементов Crushform, уложенные владельцем: ISM-инстансы, которые их показывают, раскладка, в которой они стоят, респаун на стороне сервера и, для определений, которые этого требуют, разрушение от любого тела. Ничего не знает о том, вдоль чего владелец их раскладывает. Владелец раскладывает элементы и передаёт их в SetUnits на каждом инстансе с одинаковыми данными; индекс элемента — его идентичность везде, и он не меняется за время жизни владельца. ISMs, переданные в SetInstanceSlots, должны быть прикреплены к этому компоненту с единичным преобразованием: FindForPrimitive идёт от перекрытого ISM к его родителю прикрепления. У элемента два уровня, целый (0) и разрушенный (1); базовый компонент реплицирует, предсказывает и проигрывает их.
Любое тело: элемент, у определения которого задано bBreaksFromAnyBody, разрушается только на авторити физическим телом или идущей пешкой, у которых нет собственного компонента контакта (CFBreakable::IsContactBody). Зацикленный таймер (UCFBreakableSettings::AnyBodyCheckIntervalSeconds) при каждом срабатывании один раз ищет тела в боксе вокруг стоящих помеченных элементов; пока одно из них тяжёлое и достаточно быстрое, компонент тикает после физики и проверяет путь каждого такого тела в кадре относительно границ элементов, а кадр без таких тел выключает тик. Без помеченного определения, а также на клиенте и в мире, который не является игровым, компонент не держит таймера и никогда не тикает.
Функции
Компонент экземпляров, которому принадлежат экземпляры Primitive, или nullptr.
Один ISM на каждый слот определения (FCFBreakableUnit::DefinitionIndex индексирует оба массива); задаёт меш каждого ISM.
Заменяет список элементов и показывает каждый элемент, который реплицированное состояние не помечает как разрушенный.
Реплицированное представление авторити.
Мировой бокс неразрушенного меша элемента.
Элемент, к которому относится результат пересечения с одним из ISMs этого компонента; INDEX_NONE, если это не наш элемент.
Немедленно разрушает элемент на этом инстансе (скрывает его, разбрасывает обломки, проигрывает отклик) и ждёт подтверждения от авторити; неподтверждённые разрушения отменяются через PredictionConfirmTimeoutSeconds. Возвращает false, если элемент здесь уже разрушен. Ещё стоящие элементы из FCFBreakableUnit::LinkedUnits разрушаются вместе с ним, каждый как самостоятельное разрушение.
Только для авторити: записывает и реплицирует разрушение и планирует респаун. Для уже разрушенного элемента ничего не делает. Ещё стоящие элементы из FCFBreakableUnit::LinkedUnits разрушаются вместе с ним, каждый как самостоятельное разрушение.
Авторити: все разрушенные элементы сразу встают, независимо от того, что возвращает CanRespawnUnit. Возвращает количество поднявшихся элементов.
Взведён ли поиск тела любого типа: компонент находится в игровом мире на авторити и содержит элемент, чьё определение разрушается от любого тела.
Тикает ли компонент сейчас; он тикает, только пока последний поиск нашёл тело, способное разрушить элемент.
Унаследовано от UCFBreakableUnitsComponent
Функции
- Find
Units Компонент элементов, для элемента которого стоит Primitive, и индекс этого элемента: через ICFBreakableUnitPart на примитиве, иначе через первого родителя прикрепления, который знает примитив. nullptr, если ни один не знает.For Primitive - Apply
Hit Авторити: применяет внешний удар по примитиву к элементу, которому он принадлежит.Result On Authority - Predict
Hit Любой инстанс: предсказательный аналог ApplyHitResultOnAuthority.Result - Apply
Hit Авторити: поднимает элемент до уровня, который его определение задаёт для этого удара (HitResponses), реплицирует его и проигрывает.On Authority - Predict
Hit Любой инстанс: сразу показывает уровень удара и ждёт авторити; отменяется через PredictionConfirmTimeoutSeconds. - Get
Unit Сколько элементов разложил владелец.Count - Get
Max Наивысший уровень, которого может достичь элемент, как задано в InitUnits; элемент цел на уровне 0.Level - Get
Unit Уровень, который показывает этот инстанс: уровень на авторити или предсказание, опережающее этот уровень.Level - Get
Confirmed Уровень, подтверждённый на авторити в текущем поколении.Unit Level - Is
Unit true для корректного индекса, показанный уровень которого равен 0; false для некорректного индекса.Intact - Predict
Unit Сразу показывает уровень StoredImpact, опережая авторити, вместе с элементами, которые добавляет GatherUnitsRaisedWith.Level - Raise
Unit Авторити: подтверждает Level для элемента и для элементов, которые добавляет GatherUnitsRaisedWith, реплицирует его, проигрывает здесь и сообщает OnUnitsRaisedOnAuthority.Level On Authority - Cancel
Prediction Откатывает предсказание элемента к подтверждённому уровню, а вместе с ним предсказания элементов, которые добавляет GatherUnitsRaisedWith. - Apply
Generation Любой инстанс: первое поколение, которое узнаёт этот компонент (отсюда или из реплицированных уровней), принимается, каким бы оно ни было; после этого более новое поколение сразу возвращает все элементы здесь к целому состоянию, а равное или более старое игнорируется. - Find
Unit Элемент, для которого стоит примитив (и его экземпляр, ItemIndex), или INDEX_NONE.For Primitive
События
- On
Unit Оба срабатывают на каждом инстансе, когда меняется показанный уровень элемента.Level Changed Native - On
Unit Level Changed