Interface IInstantiator
After parsing and loading a glTF's content and converting its content into Unity resources,the second step is instantiation. Implementors of this interface can convert glTF resources into scene objects.
Namespace: Unity.Cloud.Gltfast
Assembly: Unity.Cloud.Gltfast.dll
Syntax
[MovedFrom(true, "GLTFast", "glTFast", null)]
public interface IInstantiator
Methods
AddAnimation(AnimationClip[])
Adds animation clips to the current scene. Only available if the built-in Animation module is enabled.
Declaration
void AddAnimation(AnimationClip[] animationClips)
Parameters
| Type | Name | Description |
|---|---|---|
| AnimationClip[] | animationClips | Animation clips |
AddCamera(uint, uint)
Called when a node has a camera assigned
Declaration
void AddCamera(uint nodeIndex, uint cameraIndex)
Parameters
| Type | Name | Description |
|---|---|---|
| uint | nodeIndex | Index of the node |
| uint | cameraIndex | Index of the assigned camera |
AddLightPunctual(uint, uint)
Called when a node has a punctual light assigned (KHR_lights_punctual)
Declaration
void AddLightPunctual(uint nodeIndex, uint lightIndex)
Parameters
| Type | Name | Description |
|---|---|---|
| uint | nodeIndex | Index of the node |
| uint | lightIndex | Index of the punctual light |
AddMesh(uint, string, MeshResult, IReadOnlyList<uint>, uint?, IReadOnlyList<float>, int)
Adds a Mesh/MeshResult to a Node for rendering purpose.
Declaration
void AddMesh(uint nodeIndex, string meshName, MeshResult meshResult, IReadOnlyList<uint> joints = null, uint? rootJoint = null, IReadOnlyList<float> morphTargetWeights = null, int meshNumeration = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| uint | nodeIndex | Index of the node |
| string | meshName | Mesh's name |
| MeshResult | meshResult | The converted Mesh |
| IReadOnlyList<uint> | joints | If a skin was attached, the joint indices. Null otherwise |
| uint? | rootJoint | Root joint node index, if present |
| IReadOnlyList<float> | morphTargetWeights | Morph target weights, if present |
| int | meshNumeration | Per glTF mesh MeshResult numeration. A glTF mesh is converted into one or more MeshResults which are numbered consecutively. AddMesh(uint, string, MeshResult, IReadOnlyList<uint>, uint?, IReadOnlyList<float>, int) is called once for each of those MeshResults. |
AddMeshInstanced(uint, string, MeshResult, uint, NativeArray<Vector3>?, NativeArray<Quaternion>?, NativeArray<Vector3>?, int)
Adds a Mesh/MeshResult to a Node with the purpose of rendering multiple instances of this MeshResult and material combination (through glTF extension EXT_mesh_gpu_instancing). In contrast to AddMesh(uint, string, MeshResult, IReadOnlyList<uint>, uint?, IReadOnlyList<float>, int) it lacks joints/skin support.
Declaration
void AddMeshInstanced(uint nodeIndex, string meshName, MeshResult meshResult, uint instanceCount, NativeArray<Vector3>? positions, NativeArray<Quaternion>? rotations, NativeArray<Vector3>? scales, int meshNumeration = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| uint | nodeIndex | Index of the node |
| string | meshName | Mesh's name |
| MeshResult | meshResult | The converted Mesh |
| uint | instanceCount | Number of instances |
| NativeArray<Vector3>? | positions | Instance positions |
| NativeArray<Quaternion>? | rotations | Instance rotations |
| NativeArray<Vector3>? | scales | Instance scales |
| int | meshNumeration | Per glTF mesh MeshResult numeration. A glTF mesh is converted into one or more MeshResults which are numbered consecutively. AddMeshInstanced(uint, string, MeshResult, uint, NativeArray<Vector3>?, NativeArray<Quaternion>?, NativeArray<Vector3>?, int) is called once for each of those MeshResults. |
BeginScene(string, IReadOnlyList<uint>)
Starts creating a scene instance. Has to be called at first and concluded by calling EndScene(IReadOnlyList<uint>).
Declaration
void BeginScene(string name, IReadOnlyList<uint> rootNodeIndices)
Parameters
| Type | Name | Description |
|---|---|---|
| string | name | Name of the scene |
| IReadOnlyList<uint> | rootNodeIndices | Indices of root level nodes in scene |
CreateNode(uint, uint?, double3, double4, double3, string)
Called for every Node in the glTF file.
Declaration
void CreateNode(uint nodeIndex, uint? parentIndex, double3 position, double4 rotation, double3 scale, string name)
Parameters
| Type | Name | Description |
|---|---|---|
| uint | nodeIndex | Index of node. Serves as identifier. |
| uint? | parentIndex | Index of the parent's node. If it's null, the node's a root-level node |
| double3 | position | Node's local position in hierarchy |
| double4 | rotation | Node's local rotation in hierarchy |
| double3 | scale | Node's local scale in hierarchy |
| string | name | Node's name, or null when the glTF node has none. |
Remarks
Null only reaches this method with Original, where naming an unnamed node is the implementation's choice. OriginalUnique supplies a synthesized hierarchy-unique name instead, which has to be applied verbatim for animations to bind.
EndScene(IReadOnlyList<uint>)
Is called at last, after all scene content has been created. Immediately afterwards the scene will be rendered, so use it to finally prepare the instance.
Declaration
void EndScene(IReadOnlyList<uint> rootNodeIndices)
Parameters
| Type | Name | Description |
|---|---|---|
| IReadOnlyList<uint> | rootNodeIndices | Indices of root level nodes in scene |