在 Manus 中运行任何 Skill
一键导入
一键导入
一键在 Manus 中运行任何 Skill
开始使用godot-packedscene
星标5
分支0
更新时间2026年3月15日 02:38
Godot PackedScene使用指南。当用户需要场景加载和池化相关信息时使用。
安装
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
SKILL.md
readonly菜单
Godot PackedScene使用指南。当用户需要场景加载和池化相关信息时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Godot正确清除子节点的方法。当用户需要了解如何正确清除子节点时使用。
提供Godot引擎控制台命令行工具的调用能力,支持运行Godot命令、执行脚本、导出项目等操作,适用于游戏开发和自动化任务。
Godot GDScript语法详解。当用户需要GDScript语法相关信息时使用。
Godot全局变量使用指南。当用户需要全局变量和Autoload相关信息时使用。
提供 Godot GDScript 编程语言和 TSCN 场景文件格式的完整知识库,适用于游戏开发、UI 设计和场景构建。
Godot UI与场景开发指南。当用户需要UI和场景开发相关信息时使用。
| name | godot-packedscene |
| description | Godot PackedScene使用指南。当用户需要场景加载和池化相关信息时使用。 |
当用户需要了解Godot PackedScene使用、场景加载和池化技术时使用此技能。
返回Godot PackedScene使用指南内容,包括场景加载和池化示例。
用户请求: 我需要了解如何在Godot中加载和实例化场景。
执行过程:
输出: Godot中加载和实例化场景的方法:
# 预加载场景(推荐用于频繁使用的场景)
var _enemy_scene = preload("res://scenes/enemy.tscn")
# 实例化场景
var enemy = _enemy_scene.instantiate()
add_child(enemy)
enemy.position = Vector2(100, 100)
# 异步加载大型场景
func load_boss_scene() -> void:
var thread = Thread.new()
thread.start(func():
var scene = ResourceLoader.load_threaded_get("res://scenes/boss.tscn")
call_deferred("_on_boss_scene_loaded", scene)
)
func _on_boss_scene_loaded(scene: PackedScene) -> void:
var boss = scene.instantiate()
add_child(boss)
# 场景池化示例
class_name ScenePool
var scene: PackedScene
var pool: Array[Node] = []
var max_pool_size: int = 10
func initialize(scene_path: String, size: int) -> void:
scene = preload(scene_path)
max_pool_size = size
# 预创建实例
for i in range(size):
var instance = scene.instantiate()
instance.queue_free() # 初始状态为未使用
pool.append(instance)
func get_instance() -> Node:
# 从池中获取实例
for instance in pool:
if not is_instance_valid(instance) or not instance.is_inside_tree():
var new_instance = scene.instantiate()
pool[pool.find(instance)] = new_instance
return new_instance
# 池已满,创建新实例
if pool.size() < max_pool_size:
var new_instance = scene.instantiate()
pool.append(new_instance)
return new_instance
return null
func return_instance(instance: Node) -> void:
# 归还实例到池
if instance in pool:
instance.remove_from_parent()
instance.queue_free()