一只萌鼠鼠🐭 mouse5295
这只仓鼠很能吃,什么都没有留下
关注数: 28 粉丝数: 130 发帖数: 5,353 关注贴吧数: 80
关于自定义的Resource 上图是我在使用Unity引擎时使用的一个脚本,他向编辑器暴露了一个 List<自定义的struct> ,从而实现了在Unity的检视器里出现一个可编辑的列表,列表的每一项都出现我的自定义struct(代码如下)里暴露的参数(在Unity中,只需要public修饰符即可暴露参数,无需[Export])---------------------------------------------------------------- 现在我在使用Godot制作另一个游戏的时候,想要在Godot的检视器中实现相似的效果,但是尝试复刻上述代码:使用Godot脚本带的Array<T>,并写出一个struct,但是失败了 现在我想到的办法是使用自定义Resource,如下图:但是他有两个问题: 1. Godot无法直接创建我自定义的EnemyWave类型的Resource,只能先创建一个普通的Resource再将此脚本拖动给他的script,才能出现我的自定义属性 2. 我无法限制在Array中的资源类型:这样的做法是无效的,仍然只能出现:因此,我既无法隐式创建资源(即直接在对应的属性框中创建资源,不保存至文件目录),也无法限定资源的类型 现在我需要一个方法,满足下列要求: 1. 实现类似于图1中的可编辑式的自定义类型的列表 2. 不使用,或者不要过多地使用代码来【拓展编辑器】(因为刚刚从Unity转Godot,自己写插件可能会把编辑器写崩掉,当初给Unity写插件时就把他被整崩了好几次了)
关于ScrollContainer的问题 如图,我想制作一个手机端的游戏(因此只会出现InputEventScreenTouch和InputEventScreenDrag事件) 现有一个ScrollContainer(图中的UnitMenu)用于盛放所有的单位卡片(图中的Entry_xx) Entry的脚本接收 gui_input 信号并检查输入事件是否为屏幕滑动(InputEventScreenDrag),如果是,则会进入拖拽建筑模式,右侧列表收起(如下图)现在的问题是,玩家需要上下滑动ScrollContainer来上下翻菜单,而由于Entry占据了大多数区域,所以玩家会不可避免地滑动到Entry上,而Entry只要检测到滑动就会进入拖拽建筑模式,所以导致玩家无法翻菜单... 所以,有没有办法检测玩家到底是想 拖拽建筑 还是 翻动菜单? ----------------------------------------------------------------------------------- 我想到的一个思路是,检测drag的relative,如果他与 向上方向 的角度绝对值小于45度则直接pass,反之则进入拖拽建筑模式,这样可以区分玩家在上下滑动(翻动菜单)还是左右滑动(拖拽建筑) 这个方法的问题有两个: 1. 玩家的拖拽并不是严格的直线,可能中途会有一小段是左右滑动的而整体是上下滑动,这导致中途会突然进入 拖拽建筑模式 2. 即使Entry的脚本直接pass且没有set_input_as_handled,ScrollContainer仍然没有接收到上下滑动的事件,因此最终还是没有翻动菜单 请问有没有更好的解决方案?
1 下一页