reckfellENGINE

AnimatedTexture

Устаревшая покадровая Texture2D; для нового кода выбирайте анимацию под задачу.

На этой странице
class AnimatedTextureReckfellSharpНаследует Texture2D

SDK 1.0.0 помечает весь класс Obsolete: реализация работает некорректно и может быть удалена. Это справочник существующего API, а не рекомендация для новых проектов. Для анимированного спрайта используйте AnimatedSprite2D и SpriteFrames; для смены свойства texture — AnimationPlayer. Эти решения не являются универсальной заменой ресурса во всех местах, принимающих Texture2D.

Ресурс хранит до 256 слотов текстур и длительностей. Frames включает первые N слотов; SetFrameTexture не увеличивает Frames. Индекс слота 0…255 отличается от допустимого CurrentFrame: 0…Frames-1. При уменьшении Frames сначала выберите допустимый CurrentFrame: setter Frames не сбрасывает индекс или таймер и не удаляет скрытые слоты. Все объекты, использующие один ресурс, разделяют его текущий кадр.

Для существующего ресурса настраивайте кадры при Pause=true, задавайте положительные конечные длительности, затем Frames и CurrentFrame, после этого снимайте паузу. Для остановки используйте Pause, не SpeedScale=0: текущий код при нулевом множителе получает нулевой лимит кадра и ветку обратного воспроизведения. Отрицательная ненулевая скорость задаёт обратное направление. OneShot удерживает крайний кадр, но не включает Pause и не предоставляет сигнал завершения.

По исходникам таймер обновляется при frame_pre_draw через часы ОС. Время добавляется и во время Pause; после снятия паузы возможен догоняющий переход. CurrentFrame сбрасывает накопленное время, даже при повторной установке того же индекса. Размер Texture2D берётся у текущего кадра, поэтому используйте одинаковые размеры, чтобы не менять геометрию потребителя. AtlasTexture не подходит как отдельный кадр: прокси получает RID без области атласа. Пустой слот не очищает ранее привязанный прокси; не считайте null прозрачным кадром.

Setters автоматически не испускают Resource.Changed и не пересылают изменения дочерней текстуры. В общем наборе выполнены 23 Windows headless-проверки состояния AnimatedTexture/MeshTexture; для этого класса проверены значения, слоты, ссылки и размеры. Тайминг воспроизведения, видимые кадры и корректность рендера не подтверждены.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

AnimatedTextureКонструктор
# AnimatedTexture
C#
public AnimatedTexture();

Создаёт собственный устаревший ресурс: Frames=1, CurrentFrame=0, Pause=false, OneShot=false, SpeedScale=1; все слоты null с длительностью 1 секунду. Для новых проектов не рекомендуется.

Свойства5

CurrentFrameСвойство
# CurrentFrame
C#
public int CurrentFrame { get; set; }

Индекс текущего кадра 0…Frames-1. Каждая установка, даже того же значения, сбрасывает накопленное время; прокси обновляется при следующем render callback, не синхронно setter-ом.

FramesСвойство
# Frames
C#
public int Frames { get; set; }

Число активных кадров 1…256. Не очищает неактивные слоты, не меняет CurrentFrame и не сбрасывает таймер. Перед уменьшением установите допустимый CurrentFrame.

OneShotСвойство
# OneShot
C#
public bool OneShot { get; set; }

Удерживает последний кадр при прямом ходе или первый при обратном. Само достижение края не устанавливает Pause и не испускает сигнал завершения.

PauseСвойство
# Pause
C#
public bool Pause { get; set; }

Запрещает переходы между кадрами, не сбрасывая индекс. В текущем исходном коде время всё равно накапливается; после снятия возможен догоняющий переход. Не обещает точного продолжения с прежней фазы.

SpeedScaleСвойство
# SpeedScale
C#
public float SpeedScale { get; set; }

Множитель направления/скорости: допустим -1000 ≤ scale < 1000. Для ненулевого значения лимит кадра равен duration/abs(scale). Ноль не используйте как паузу: текущая реализация даёт нулевой лимит и обратную ветку. Используйте Pause.

Методы14

GetCurrentFrameint
# GetCurrentFrame
C#
public int GetCurrentFrame();

Возвращает значение CurrentFrame. Индекс текущего кадра 0…Frames-1. Каждая установка, даже того же значения, сбрасывает накопленное время; прокси обновляется при следующем render callback, не синхронно setter-ом.

Возвращает int

Текущее значение CurrentFrame.

GetFrameDurationfloat
# GetFrameDuration
C#
public float GetFrameDuration(int frame);

Читает исходную длительность слота 0…255, без умножения на SpeedScale. Новый слот имеет 1 секунду.

Параметры
ИмяТипПо умолчанию
frameint—
frame

Индекс слота 0…255; он может быть вне активного Frames.

Возвращает float

Сохранённая длительность в секундах, без применения скорости.

GetFrameTextureTexture2D
# GetFrameTexture
C#
public Texture2D GetFrameTexture(int frame);

Возвращает общую текстуру слота 0…255, включая неактивные, либо null. Не копия: не освобождайте полученный алиас отдельно от используемого владельцем ресурса.

Параметры
ИмяТипПо умолчанию
frameint—
frame

Индекс слота 0…255; он может быть вне активного Frames.

Возвращает Texture2D

Общий ресурс либо null; не независимая копия.

GetFramesint
# GetFrames
C#
public int GetFrames();

Возвращает значение Frames. Число активных кадров 1…256. Не очищает неактивные слоты, не меняет CurrentFrame и не сбрасывает таймер. Перед уменьшением установите допустимый CurrentFrame.

Возвращает int

Текущее значение Frames.

GetOneShotbool
# GetOneShot
C#
public bool GetOneShot();

Возвращает значение OneShot. Удерживает последний кадр при прямом ходе или первый при обратном. Само достижение края не устанавливает Pause и не испускает сигнал завершения.

Возвращает bool

Текущее значение OneShot.

GetPausebool
# GetPause
C#
public bool GetPause();

Возвращает значение Pause. Запрещает переходы между кадрами, не сбрасывая индекс. В текущем исходном коде время всё равно накапливается; после снятия возможен догоняющий переход. Не обещает точного продолжения с прежней фазы.

Возвращает bool

Текущее значение Pause.

GetSpeedScalefloat
# GetSpeedScale
C#
public float GetSpeedScale();

Возвращает значение SpeedScale. Множитель направления/скорости: допустим -1000 ≤ scale < 1000. Для ненулевого значения лимит кадра равен duration/abs(scale). Ноль не используйте как паузу: текущая реализация даёт нулевой лимит и обратную ветку. Используйте Pause.

Возвращает float

Текущее значение SpeedScale.

SetCurrentFramevoid
# SetCurrentFrame
C#
public void SetCurrentFrame(int frame);

Устанавливает CurrentFrame. Индекс текущего кадра 0…Frames-1. Каждая установка, даже того же значения, сбрасывает накопленное время; прокси обновляется при следующем render callback, не синхронно setter-ом.

Параметры
ИмяТипПо умолчанию
frameint—
frame

Индекс 0…Frames-1; установка также сбрасывает время.

SetFrameDurationvoid
# SetFrameDuration
C#
public void SetFrameDuration(int frame, float duration);

Сохраняет длительность слота 0…255 в секундах. Setter не проверяет знак/конечность. Задавайте положительные конечные значения; 0 имеет нулевой лимит и может быть пропущен, отрицательные не являются поддержанным режимом воспроизведения.

Параметры
ИмяТипПо умолчанию
frameint—
durationfloat—
frame

Индекс слота 0…255; он может быть вне активного Frames.

duration

Положительное конечное время в секундах до применения скорости.

SetFrameTexturevoid
# SetFrameTexture
C#
public void SetFrameTexture(int frame, Texture2D texture);

Сохраняет общую ссылку Texture2D в слоте 0…255 независимо от Frames. Не увеличивает Frames, не копирует текстуру; null очищает слот. Сам ресурс запрещён как кадр. AtlasTexture не поддерживается как обрезанный кадр.

Параметры
ИмяТипПо умолчанию
frameint—
textureTexture2D—
frame

Индекс слота 0…255; он может быть вне активного Frames.

texture

Общая Texture2D либо null для очистки. Для кадра AnimatedTexture не используйте AtlasTexture или сам анимированный ресурс.

SetFramesvoid
# SetFrames
C#
public void SetFrames(int frames);

Устанавливает Frames. Число активных кадров 1…256. Не очищает неактивные слоты, не меняет CurrentFrame и не сбрасывает таймер. Перед уменьшением установите допустимый CurrentFrame.

Параметры
ИмяТипПо умолчанию
framesint—
frames

Число активных слотов 1…256; заранее исправьте CurrentFrame при уменьшении.

SetOneShotvoid
# SetOneShot
C#
public void SetOneShot(bool oneShot);

Устанавливает OneShot. Удерживает последний кадр при прямом ходе или первый при обратном. Само достижение края не устанавливает Pause и не испускает сигнал завершения.

Параметры
ИмяТипПо умолчанию
oneShotbool—
oneShot

true удерживает крайний кадр, false включает циклический переход.

SetPausevoid
# SetPause
C#
public void SetPause(bool pause);

Устанавливает Pause. Запрещает переходы между кадрами, не сбрасывая индекс. В текущем исходном коде время всё равно накапливается; после снятия возможен догоняющий переход. Не обещает точного продолжения с прежней фазы.

Параметры
ИмяТипПо умолчанию
pausebool—
pause

true запрещает переходы, false разрешает; накопленное время не очищается.

SetSpeedScalevoid
# SetSpeedScale
C#
public void SetSpeedScale(float scale);

Устанавливает SpeedScale. Множитель направления/скорости: допустим -1000 ≤ scale < 1000. Для ненулевого значения лимит кадра равен duration/abs(scale). Ноль не используйте как паузу: текущая реализация даёт нулевой лимит и обратную ветку. Используйте Pause.

Параметры
ИмяТипПо умолчанию
scalefloat—
scale

Конечный ненулевой множитель -1000 ≤ scale < 1000. Для остановки задайте Pause.

Поля и константы1

MaxFramesПоле
# MaxFrames
C#
public const long MaxFrames = 256;

Ёмкость 256 слотов; C# const long. Не текущее Frames и не максимальный допустимый индекс: последний индекс 255.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.