Class ModelInstanceActor
Base class for actor types that use ModelInstanceEntries for mesh rendering.
Namespace: FlaxEngine
Assembly: FlaxEngine.CSharp.dll
Syntax
[Unmanaged]
public abstract class ModelInstanceActor : Actor, ISerializable
Constructors
ModelInstanceActor()
Properties
Entries
Gets or sets the model entries collection. Each entry contains data how to render meshes using this entry (transformation, material, shadows casting, etc.).
Declaration
[Serialize]
[EditorOrder(1000)]
[EditorDisplay("Entries", "__inline__")]
[Collection(CanReorderItems = false, NotNullItems = true, CanResize = false, Spacing = 10F)]
[Unmanaged]
public ModelInstanceEntry[] Entries { get; set; }
Property Value
ModelInstanceEntry[]
|
MaterialSlots
Gets the material slots array set on the asset (eg. model or skinned model asset).
Declaration
[Unmanaged]
public MaterialSlot[] MaterialSlots { get; }
Property Value
MaterialSlot[]
|
Methods
CreateAndSetVirtualMaterialInstance(Int32)
Utility to crate a new virtual Material Instance asset, set its parent to the currently applied material, and assign it to the entry. Can be used to modify the material parameters from code.
Declaration
[Unmanaged]
public MaterialInstance CreateAndSetVirtualMaterialInstance(int entryIndex)
Parameters
System.Int32
entryIndex
The material slot entry index. |
Returns
MaterialInstance
The created virtual material instance. |
GetMaterial(Int32)
Gets the material used to draw the meshes which are assigned to that slot (set in Entries or model's default).
Declaration
[Unmanaged]
public MaterialBase GetMaterial(int entryIndex)
Parameters
System.Int32
entryIndex
The material slot entry index. |
Returns
MaterialBase
|
IntersectsEntry(ref Ray, out Single, out Vector3, out Int32)
Determines if there is an intersection between the model actor mesh entry and a ray. If mesh data is available on the CPU performs exact intersection check with the geometry. Otherwise performs simple BoundingBox vs Ray test. For more efficient collisions detection and ray casting use physics.
Declaration
[Unmanaged]
public virtual bool IntersectsEntry(ref Ray ray, out float distance, out Vector3 normal, out int entryIndex)
Parameters
Ray
ray
The ray to test. |
System.Single
distance
When the method completes and returns true, contains the distance of the intersection (if any valid). |
Vector3
normal
When the method completes, contains the intersection surface normal vector (if any valid). |
System.Int32
entryIndex
When the method completes, contains the intersection entry index (if any valid). |
Returns
System.Boolean
True if the actor is intersected by the ray, otherwise false. |
IntersectsEntry(Int32, ref Ray, out Single, out Vector3)
Determines if there is an intersection between the model actor mesh entry and a ray. If mesh data is available on the CPU performs exact intersection check with the geometry. Otherwise performs simple BoundingBox vs Ray test. For more efficient collisions detection and ray casting use physics.
Declaration
[Unmanaged]
public virtual bool IntersectsEntry(int entryIndex, ref Ray ray, out float distance, out Vector3 normal)
Parameters
System.Int32
entryIndex
The material slot entry index to test. |
Ray
ray
The ray to test. |
System.Single
distance
When the method completes and returns true, contains the distance of the intersection (if any valid). |
Vector3
normal
When the method completes, contains the intersection surface normal vector (if any valid). |
Returns
System.Boolean
True if the actor is intersected by the ray, otherwise false. |
SetMaterial(Int32, MaterialBase)
Sets the material to the entry slot. Can be used to override the material of the meshes using this slot.
Declaration
[Unmanaged]
public void SetMaterial(int entryIndex, MaterialBase material)
Parameters
System.Int32
entryIndex
The material slot entry index. |
MaterialBase
material
The material to set. |