您当前的位置: 首页 >  ui

开发游戏的老王

暂无认证

  • 1浏览

    0关注

    803博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

GDScript:UIFramework V1.0

开发游戏的老王 发布时间:2020-01-19 08:59:21 ,浏览量:1

比较简单粗暴的方法,没有缓存,即用即加载。先把 UI的tscn 都放到一个文件夹中,也可以指定子文件夹

extends Node

signal ui_opened(ui_name)

export(String, DIR) var ui_dir:String

func open(ui_name:String,msg:Dictionary = {},sub_dir:String= "/",suffix:String = ".tscn")->void:
	var ui:Node = null
	if has_node(ui_name) : 
		ui = get_node(ui_name)
	else:
		var scn  := load(ui_dir + sub_dir + ui_name + suffix) as PackedScene
		if scn != null and scn.can_instance():
			ui = scn.instance() as Node
			add_child(ui)
	if ui != null:
		move_child(ui,get_child_count() - 1)
		ui.name = ui_name
		if ui.has_method("open"):
			ui.open(msg)
		emit_signal("ui_opened",ui_name)
	else:
		Logger.error("Failed to open UI:" + ui_name)
	
func close(ui_name:String)->void:
	if has_node(ui_name):
		var ui := get_node(ui_name)
		remove_child(ui)
		ui.queue_free()

func close_all()->void: 
	for ui in get_children():
		remove_child(ui)
		ui.queue_free()


关注
打赏
1656935939
查看更多评论
立即登录/注册

微信扫码登录

0.0404s