reckfellENGINE

VisualInstance3D

Родительский элемент всех визуальных 3D-узлов.

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

Родительский элемент всех визуальных 3D-узлов.

VisualInstance3D используется для подключения ресурса к визуальному представлению. Все визуальные 3D-узлы наследуются от VisualInstance3D. В общем случае не следует обращаться к свойствам VisualInstance3D напрямую, поскольку к ним обращаются и управляют узлы, наследующие от VisualInstance3D. VisualInstance3D — это представление узла экземпляра RenderingServer.

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

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

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

Свойства3

LayersСвойство
# Layers
C#
public uint Layers { get; set; }

Слои рендеринга, на которых нарисован этот VisualInstance3D. Этот объект будет виден только для Camera3D, чья маска отбраковки включает любой из слоев рендеринга, на который установлен этот VisualInstance3D. Для Light3D это можно использовать для управления тем, на какие VisualInstance3D влияет определенный свет. Для GpuParticles3D это можно использовать для управления тем, на какие частицы влияет определенный аттрактор. Для Decal это можно использовать для управления тем, на какие VisualInstance3D влияет определенный декаль. Чтобы упростить настройку VisualInstance3D.Layers с помощью скрипта, используйте VisualInstance3D.GetLayerMaskValue и VisualInstance3D.SetLayerMaskValue. Примечание: VoxelGI, SDFGI и LightmapGI всегда будут учитывать все слои, чтобы определить, что влияет на глобальное освещение. Если это проблема, установите GeometryInstance3D.GIMode на GeometryInstance3D.GIModeEnum.Disabled для сеток и Light3D.LightBakeMode на Light3D.BakeMode.Disabled для источников света, чтобы исключить их из глобального освещения.

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

Величина, на которую будет скорректирована глубина этого VisualInstance3D при сортировке по глубине. Использует те же единицы, что и движок (обычно это метры). Если настроить его на большее значение, VisualInstance3D будет надежно рисовать поверх других VisualInstance3D, которые в противном случае расположены в том же месте. Чтобы гарантировать, что он всегда рисует поверх других объектов вокруг него (не расположенных в том же месте), установите значение больше расстояния между этим VisualInstance3D и другими близлежащими VisualInstance3D.

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

Если true, объект сортируется на основе центра Aabb. В противном случае объект будет сортироваться на основе глобальной позиции. Сортировка на основе центра Aabb обычно более точна для 3D-моделей. Сортировка на основе позиции вместо этого позволяет лучше контролировать порядок рисования при работе с GpuParticles3D и CpuParticles3D.

Методы13

GetAabbAabb
# GetAabb
C#
public Aabb GetAabb();

Возвращает локальные геометрические границы конкретного типа VisualInstance3D. Для MeshInstance3D это Mesh.GetAabb(), либо пустой Aabb без Mesh. Трансформация Entity, CustomAabb, ExtraCullMargin и GPU-деформация в результат не включаются. Базовая реализация VisualInstance3D обращается к _GetAabb; нативные производные типы могут реализовать собственный GetAabb.

Возвращает Aabb

Локальный Aabb геометрии согласно реализации типа, а не мировой или окончательный серверный объём отсечения.

GetBaseRid
# GetBase
C#
public Rid GetBase();

Возвращает RID ресурса, связанного с этим VisualInstance3D. Например, если Entity — это MeshInstance3D, это вернет RID связанного Mesh.

Возвращает Rid
GetInstanceRid
# GetInstance
C#
public Rid GetInstance();

Возвращает RID этого экземпляра. Этот RID совпадает с RID, возвращаемым RenderingServer.InstanceCreate. Этот RID необходим, если вы хотите вызывать функции RenderingServer непосредственно на этом VisualInstance3D.

Возвращает Rid
GetLayerMaskuint
# GetLayerMask
C#
public uint GetLayerMask();
Возвращает uint
GetLayerMaskValuebool
# GetLayerMaskValue
C#
public bool GetLayerMaskValue(int layerNumber);

Возвращает, включен ли указанный слой из VisualInstance3D.Layers, учитывая layer_number от 1 до 20.

Параметры
ИмяТипПо умолчанию
layerNumberint—
Возвращает bool
GetSortingOffsetfloat
# GetSortingOffset
C#
public float GetSortingOffset();
Возвращает float
IsSortingUseAabbCenterbool
# IsSortingUseAabbCenter
C#
public bool IsSortingUseAabbCenter();
Возвращает bool
SetBasevoid
# SetBase
C#
public void SetBase(Rid @base);

Устанавливает ресурс, который инстанцируется этим VisualInstance3D, что изменяет то, как движок обрабатывает VisualInstance3D под капотом. Эквивалентно RenderingServer.InstanceSetBase.

Параметры
ИмяТипПо умолчанию
baseRid—
SetLayerMaskvoid
# SetLayerMask
C#
public void SetLayerMask(uint mask);
Параметры
ИмяТипПо умолчанию
maskuint—
SetLayerMaskValuevoid
# SetLayerMaskValue
C#
public void SetLayerMaskValue(int layerNumber, bool value);

На основе value включает или отключает указанный слой в VisualInstance3D.Layers при заданном layer_number от 1 до 20.

Параметры
ИмяТипПо умолчанию
layerNumberint—
valuebool—
SetSortingOffsetvoid
# SetSortingOffset
C#
public void SetSortingOffset(float offset);
Параметры
ИмяТипПо умолчанию
offsetfloat—
SetSortingUseAabbCentervoid
# SetSortingUseAabbCenter
C#
public void SetSortingUseAabbCenter(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
_GetAabbAabb
# _GetAabb
C#
public virtual Aabb _GetAabb();

Виртуальный обратный вызов локальных границ для пользовательского типа на базе VisualInstance3D. Базовая реализация GetAabb вызывает этот метод. Нативный производный тип с собственной реализацией GetAabb может обходить этот обратный вызов; для настройки отсечения MeshInstance3D используйте CustomAabb или ExtraCullMargin.

Возвращает Aabb

Границы пользовательской геометрии в локальных координатах. Это отдельный контракт от настройки CustomAabb на экземпляре рендеринга.

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

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

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

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