#Instance 3 characters
for i in range(3):
var character = character_scene.instantiate()
add_child(character)
character.name = "Character " + str(i + 1) # Set the name
character_instances.append(character)
#Now you can access the name from the main script
for character in character_instances:
print(character.name) # This will print each character's name
重点:@export var character_scene: PackedScene 用于导出场景(您可以在 Godot 编辑器中指定 PackedScene)。
解决方法:实例化场景:确保场景(如角色场景)在主场景中实例化。
访问导出的变量:您可以使用 get_node() 或存储对实例的引用从实例场景访问导出的变量(例如名称)。
例子:
1.角色场景(Character.tscn) 在你的角色场景中,你有一个导出的变量名:
#Character.gd(附于角色场景)
扩展 Node2D
@export var 名称:字符串
2. 主场景(Main.tscn) 在主场景中,您将实例化角色场景,然后访问它们的名称变量:
#MainScene.gd(附加到主场景)扩展了 Node2D
@export var character_scene: PackedScene
var 字符实例 = []
函数 _ready():
重点:@export var character_scene: PackedScene 用于导出场景(您可以在 Godot 编辑器中指定 PackedScene)。
角色的每个实例都是通过在 PackedScene 上调用 instantiate() 来创建的。
您可以通过直接引用实例来访问每个角色的名称变量。
跨不同场景访问变量:
通过实例化场景并存储引用(在本例中为 character_instances),您可以从主场景脚本访问和修改变量(在本例中为 name)。
访问 Pisqre 获取最新见解!💡
所以你引导我找到了正确的答案 - >不同之处在于我不想从主场景中获取变量,但它们是在主场景中实例化的
如果 area.is_in_group(“person”):
var Person_ID = area.get_parent().get_instance_id()
var Person = instance_from_id(Person_ID)
var name = Person.Name # 我需要“实例 id”才能使其工作***