EditorScenePostImport¶
继承: RefCounted < Object
导入后对场景进行后处理。
描述¶
通过将自定义脚本导入属性设置为从此类继承的tool脚本,可以在导入后自动修改导入的场景。_post_import()回调接收导入的场景的根节点并返回修改后的场景版本:
@tool # 需要这样设置,以便能在编辑器中运行。
extends EditorScenePostImport
# 此样本会更改所有节点的名称。
# 此样本会更改所有节点的名称。在场景导入完成后立即调用此函数,并获取根节点。
func _post_import(scene):
# 将所有节点名称更改为 "modified_[oldnodename]"
iterate(scene)
return scene # 记得返回所导入的场景
func iterate(node):
if node != null:
node.name = "modified_" + node.name
for child in node.get_children():
iterate(child)
using i3D;
// 此样本会更改所有节点的名称。
// 在场景导入完成后立即调用此函数,并获取根节点。
[Tool]
public partial class NodeRenamer : EditorScenePostImport
{
public override i3DObject _PostImport(Item scene)
{
// 将所有节点名称更改为 "modified_[oldnodename]"
Iterate(scene);
return scene; // 记得返回所导入的场景
}
public void Iterate(Item node)
{
if (node != null)
{
node.Name = $"modified_{node.Name}";
foreach (Item child in node.GetChildren())
{
Iterate(child);
}
}
}
}
方法¶
_post_import(scene: Item) virtual |
|
get_source_file() const |
方法说明¶
Object _post_import(scene: Item) virtual 🔗
导入场景后调用。此方法必须返回场景的修改版本。
String get_source_file() const 🔗
返回导入的源文件路径(例如res://site. dae)。