summaryrefslogtreecommitdiff
path: root/doc/classes/MeshInstance3D.xml
blob: 930301a74212d6ddf521bba4a5ca37de95771458 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?xml version="1.0" encoding="UTF-8" ?>
<class name="MeshInstance3D" inherits="GeometryInstance3D" version="4.0">
	<brief_description>
		Node that instances meshes into a scenario.
	</brief_description>
	<description>
		MeshInstance3D is a node that takes a [Mesh] resource and adds it to the current scenario by creating an instance of it. This is the class most often used render 3D geometry and can be used to instance a single [Mesh] in many places. This allows reuse of geometry which can save on resources. When a [Mesh] has to be instantiated more than thousands of times at close proximity, consider using a [MultiMesh] in a [MultiMeshInstance3D] instead.
	</description>
	<tutorials>
		<link title="3D Material Testers Demo">https://godotengine.org/asset-library/asset/123</link>
		<link title="3D Kinematic Character Demo">https://godotengine.org/asset-library/asset/126</link>
		<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
	</tutorials>
	<methods>
		<method name="create_convex_collision">
			<return type="void">
			</return>
			<argument index="0" name="clean" type="bool" default="true">
			</argument>
			<argument index="1" name="simplify" type="bool" default="false">
			</argument>
			<description>
				This helper creates a [StaticBody3D] child node with a [ConvexPolygonShape3D] collision shape calculated from the mesh geometry. It's mainly used for testing.
				If [code]clean[/code] is [code]true[/code] (default), duplicate and interior vertices are removed automatically. You can set it to [code]false[/code] to make the process faster if not needed.
				If [code]simplify[/code] is [code]true[/code], the geometry can be further simplified to reduce the amount of vertices. Disabled by default.
			</description>
		</method>
		<method name="create_debug_tangents">
			<return type="void">
			</return>
			<description>
				This helper creates a [MeshInstance3D] child node with gizmos at every vertex calculated from the mesh geometry. It's mainly used for testing.
			</description>
		</method>
		<method name="create_multiple_convex_collisions">
			<return type="void">
			</return>
			<description>
				This helper creates a [StaticBody3D] child node with multiple [ConvexPolygonShape3D] collision shapes calculated from the mesh geometry via convex decomposition. It's mainly used for testing.
			</description>
		</method>
		<method name="create_trimesh_collision">
			<return type="void">
			</return>
			<description>
				This helper creates a [StaticBody3D] child node with a [ConcavePolygonShape3D] collision shape calculated from the mesh geometry. It's mainly used for testing.
			</description>
		</method>
		<method name="get_active_material" qualifiers="const">
			<return type="Material">
			</return>
			<argument index="0" name="surface" type="int">
			</argument>
			<description>
				Returns the [Material] that will be used by the [Mesh] when drawing. This can return the [member GeometryInstance3D.material_override], the surface override [Material] defined in this [MeshInstance3D], or the surface [Material] defined in the [Mesh]. For example, if [member GeometryInstance3D.material_override] is used, all surfaces will return the override material.
			</description>
		</method>
		<method name="get_surface_override_material" qualifiers="const">
			<return type="Material">
			</return>
			<argument index="0" name="surface" type="int">
			</argument>
			<description>
				Returns the override [Material] for the specified surface of the [Mesh] resource.
			</description>
		</method>
		<method name="get_surface_override_material_count" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the number of surface override materials. This is equivalent to [method Mesh.get_surface_count].
			</description>
		</method>
		<method name="set_surface_override_material">
			<return type="void">
			</return>
			<argument index="0" name="surface" type="int">
			</argument>
			<argument index="1" name="material" type="Material">
			</argument>
			<description>
				Sets the override [Material] for the specified surface of the [Mesh] resource. This material is associated with this [MeshInstance3D] rather than with the [Mesh] resource.
			</description>
		</method>
	</methods>
	<members>
		<member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh">
			The [Mesh] resource for the instance.
		</member>
		<member name="skeleton" type="NodePath" setter="set_skeleton_path" getter="get_skeleton_path" default="NodePath(&quot;..&quot;)">
			[NodePath] to the [Skeleton3D] associated with the instance.
		</member>
		<member name="skin" type="Skin" setter="set_skin" getter="get_skin">
			Sets the skin to be used by this instance.
		</member>
	</members>
	<constants>
	</constants>
</class>