reckfellENGINE

MeshInstance3D

Entity Это приводит к сценарию.

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

Entity Это приводит к сценарию.

MeshInstance3D — это узел, который берет ресурс Mesh и добавляет его в текущий сценарий, создавая его экземпляр. Это класс, который чаще всего используется для рендеринга 3D-геометрии и может использоваться для создания экземпляра одной Mesh во многих местах. Это позволяет повторно использовать геометрию, что может сэкономить ресурсы. Когда необходимо создать экземпляр Mesh более тысячи раз в непосредственной близости, рассмотрите возможность использования MultiMesh в MultiMeshInstance3D.

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

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

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

Свойства3

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

Ресурс Mesh для экземпляра.

SkeletonСвойство
# Skeleton
C#
public EntityPath Skeleton { get; set; }

EntityPath к связанному с экземпляром Skeleton3D. Примечание: Значение по умолчанию для этого свойства изменилось в Reckfell. Включите ProjectSettings.animation/compatibility/default_parent_skeleton_in_mesh_instance_3d, если для совместимости необходимо старое поведение.

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

Skin, который будет использоваться этим экземпляром.

Методы22

BakeMeshFromCurrentBlendShapeMixArrayMesh
# BakeMeshFromCurrentBlendShapeMix
C#
public ArrayMesh BakeMeshFromCurrentBlendShapeMix(ArrayMesh existing = null);

Снимок с настоящего времени ArrayMesh при использовании всех форм смеси в соответствии с их текущими весами и выпечке их с учетом предусмотренного existing Если нет existing Mesh предоставляет новый ArrayMesh Он создан, выпечен и возвращен. Mesh Не копируются поверхностные материалы. Performance: Mesh данные должны быть получены от ГПУ, что задерживает RenderingServer в процессе.

Параметры
ИмяТипПо умолчанию
existingArrayMeshnull
Возвращает ArrayMesh
BakeMeshFromCurrentSkeletonPoseArrayMesh
# BakeMeshFromCurrentSkeletonPose
C#
public ArrayMesh BakeMeshFromCurrentSkeletonPose(ArrayMesh existing = null);

Снимок текущей анимированной скелетной позы кожаной сетки и испечь ее для предоставленного existing Если нет existing Mesh предоставляет новый ArrayMesh Создается, печется и возвращается. Требует скелета с зарегистрированной кожей для работы. Блендшэйпы игнорируются. Mesh Не копируются поверхностные материалы. Performance: Mesh данные должны быть извлечены из ГПУ, что задерживает RenderingServer в процессе.

Параметры
ИмяТипПо умолчанию
existingArrayMeshnull
Возвращает ArrayMesh
CreateConvexCollisionvoid
# CreateConvexCollision
C#
public void CreateConvexCollision(bool clean = true, bool simplify = false);

Этот помощник создает дочерний узел StaticBody3D с формой столкновения ConvexPolygonShape3D, рассчитанной из геометрии сетки. В основном он используется для тестирования. Если clean равен true (по умолчанию), дублирующиеся и внутренние вершины удаляются автоматически. Вы можете установить его на false, чтобы ускорить процесс, если он не нужен. Если simplify равен true, геометрию можно дополнительно упростить, чтобы уменьшить количество вершин. По умолчанию отключено.

Параметры
ИмяТипПо умолчанию
cleanbooltrue
simplifyboolfalse
CreateDebugTangentsvoid
# CreateDebugTangents
C#
public void CreateDebugTangents();

Этот помощник создает дочерний узел MeshInstance3D с гизмо в каждой вершине, рассчитанной из геометрии сетки. Он в основном используется для тестирования.

CreateMultipleConvexCollisions2 перегрузки
# CreateMultipleConvexCollisions · 1/2
C#
public void CreateMultipleConvexCollisions();

Этот помощник создает дочерний узел StaticBody3D с несколькими формами столкновений ConvexPolygonShape3D, рассчитанными из геометрии сетки с помощью выпуклой декомпозиции. Операция выпуклой декомпозиции может управляться параметрами из дополнительных settings.

# CreateMultipleConvexCollisions · 2/2
C#
public void CreateMultipleConvexCollisions(MeshConvexDecompositionSettings settings = null);

Этот помощник создает дочерний узел StaticBody3D с несколькими формами столкновений ConvexPolygonShape3D, рассчитанными из геометрии сетки с помощью выпуклой декомпозиции. Операция выпуклой декомпозиции может управляться параметрами из дополнительных settings.

Параметры
ИмяТипПо умолчанию
settingsMeshConvexDecompositionSettingsnull
CreateTrimeshCollisionvoid
# CreateTrimeshCollision
C#
public void CreateTrimeshCollision();

Этот помощник создает дочерний узел StaticBody3D с формой столкновения ConcavePolygonShape3D, рассчитанной из геометрии сетки. В основном он используется для тестирования.

FindBlendShapeByNameint
# FindBlendShapeByName
C#
public int FindBlendShapeByName(StringName name);

Возвращает индекс формы смешивания с заданным name. Возвращает -1, если формы смешивания с таким именем не существует, включая случай, когда MeshInstance3D.Mesh равен null.

Параметры
ИмяТипПо умолчанию
nameStringName—
Возвращает int
GetActiveMaterialMaterial
# GetActiveMaterial
C#
public Material GetActiveMaterial(int surface);

Выбирает основной материал поверхности по приоритету: MaterialOverride экземпляра, surface override, материал ресурса Mesh. MaterialOverlay — дополнительный проход и не входит в возвращаемый основной материал.

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

Индекс существующей поверхности меша, начиная с 0. Это не номер Entity или элемента GridMap.

Возвращает Material

Выбранный Material либо null при отсутствии подходящего ресурса. Это ссылка на ресурс: несколько экземпляров могут разделять один материал.

GetBlendShapeCountint
# GetBlendShapeCount
C#
public int GetBlendShapeCount();

Возвращает количество доступных форм смешивания. Выдает ошибку, если MeshInstance3D.Mesh равен null.

Возвращает int
GetBlendShapeValuefloat
# GetBlendShapeValue
C#
public float GetBlendShapeValue(int blendShapeIdx);

Возвращает значение формы смешивания по указанному blend_shape_idx. Возвращает 0.0 и выдает ошибку, если MeshInstance3D.Mesh равен null или не имеет формы смешивания по этому индексу.

Параметры
ИмяТипПо умолчанию
blendShapeIdxint—
Возвращает float
GetMeshMesh
# GetMesh
C#
public Mesh GetMesh();
Возвращает Mesh
GetSkeletonPathEntityPath
# GetSkeletonPath
C#
public EntityPath GetSkeletonPath();
Возвращает EntityPath
GetSkinSkin
# GetSkin
C#
public Skin GetSkin();
Возвращает Skin
GetSkinReferenceSkinReference
# GetSkinReference
C#
public SkinReference GetSkinReference();

Возвращает внутренний SkinReference, содержащий Rid скелета, прикрепленный к этому RID. См. также Resource.GetRid, SkinReference.GetSkeleton и RenderingServer.InstanceAttachSkeleton.

Возвращает SkinReference
GetSurfaceOverrideMaterialMaterial
# GetSurfaceOverrideMaterial
C#
public Material GetSurfaceOverrideMaterial(int surface);

Возвращает сохранённый override поверхности этого экземпляра, не материал Mesh и не обязательно активный базовый материал. MaterialOverride объекта имеет более высокий приоритет; для выбора с учётом приоритета используйте GetActiveMaterial.

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

Индекс существующего слота поверхности, начиная с 0.

Возвращает Material

Назначенный override Material либо null, даже если материал есть у ресурса Mesh.

GetSurfaceOverrideMaterialCountint
# GetSurfaceOverrideMaterialCount
C#
public int GetSurfaceOverrideMaterialCount();

Число слотов override, соответствующих поверхностям Mesh. Это не число назначенных материалов: при одной поверхности и null override результат остаётся 1.

Возвращает int

Количество доступных слотов поверхностей для override.

SetBlendShapeValuevoid
# SetBlendShapeValue
C#
public void SetBlendShapeValue(int blendShapeIdx, float value);

Устанавливает значение формы смешивания в blend_shape_idx на value. Выдает ошибку, если MeshInstance3D.Mesh равен null или не имеет формы смешивания в этом индексе.

Параметры
ИмяТипПо умолчанию
blendShapeIdxint—
valuefloat—
SetMeshvoid
# SetMesh
C#
public void SetMesh(Mesh mesh);
Параметры
ИмяТипПо умолчанию
meshMesh—
SetSkeletonPathvoid
# SetSkeletonPath
C#
public void SetSkeletonPath(EntityPath skeletonPath);
Параметры
ИмяТипПо умолчанию
skeletonPathEntityPath—
SetSkinvoid
# SetSkin
C#
public void SetSkin(Skin skin);
Параметры
ИмяТипПо умолчанию
skinSkin—
SetSurfaceOverrideMaterialvoid
# SetSurfaceOverrideMaterial
C#
public void SetSurfaceOverrideMaterial(int surface, Material material);

Переопределяет материал одной поверхности этого экземпляра. Не изменяет исходный Mesh. Если MaterialOverride экземпляра задан, он имеет больший приоритет. Передайте null для снятия surface override.

Параметры
ИмяТипПо умолчанию
surfaceint—
materialMaterial—
surface

Индекс существующей поверхности, начиная с 0.

material

Ресурс материала либо null. Назначение не создаёт уникальную копию: для независимой правки сначала продублируйте материал.

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

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

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

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