global.gd
其中主要实现了整体方式存取一个用户名信息。
extends Nodevar player = {name = ""}var myGame ={userInfoPath = "res://user.info", # 用户信息文件}func _ready():# 尝试加载用户信息文件中的用户名player.name = global.loadUserName()# 保存用户名信息func saveUserName():saveFile(myGame.userInfoPath,player.name)# 加载用户名信息func loadUserName():return loadFileString(myGame.userInfoPath)# ======================= 自定义函数 ============================# 保存字符串到指定路径的文件func saveFile(path:String,content:String):var file = File.new()if file.file_exists(path):file.open(path,File.WRITE)file.store_string(content)file.close()# 返回指令路径文件中的内容func loadFileString(path:String):var file = File.new()var string = ""if file.file_exists(path):file.open(path,File.READ)string = file.get_as_text()file.close()return string
场景搭建
scn1.gd
extends Controlfunc _ready():$Panel/nameTxt.text = global.player.namefunc _on_Button_pressed():global.player.name = $Panel/nameTxt.textglobal.saveUserName()pass # Replace with function body.
可以看到Autoload的脚本,可以直接使用其单例名称进行访问其成员变量和方法。
多场景间共享数据测试
实际测试,确实可以通过Autoload实现全局的数据共享。


