Godot GUI探讨
目录
- 响应式GUI
- 5种常见UI元素
- 有两个工作流程可以构建响应性UI
- 使用锚点精确放置UI元素
- 如何更改锚点
- 锚是相对于父容器的
- 边距随锚点而变化
响应式GUI
在设计界面时仅使用Control节点。 它们具有独特的属性,可以让它们彼此协同工作。 其他节点,如Node2D,Sprite等将无法正常工作。 您仍然可以使用一些与其他节点一起工作的节点,例如AnimationPlayer,Tween或StreamPlayer。 Control节点是CanvasItems,像Node2D,因此您可以将着色器应用于它们。
所有Control节点都具有相同的主要属性:
- Anchor锚
- Bounding rectangle边界矩形
- Focus and focus neighbor 焦点和焦点邻居
- Size flags 大小标识
- Margin边距
- The optional UI theme可选UI主题
5种常见UI元素
对于大多数游戏,您只需要五种类型的UI元素和一些容器。 这五个Control节点是:
Label:用于显示文字
TextureRect:主要用于背景或所有应该是静态图像的东西
TextureProgress:用于生命条 ,加载进度条,水平,垂直或径向
NinePatchRect:用于可伸缩面板
TextureButton:用于创建按钮
有两个工作流程可以构建响应性UI
在Godot中,有两个工作流程可以构建可伸缩和灵活的界面:
1.您有许多容器节点可供使用,这些节点可伸缩和放置UI元素。他们控制他们的子节点。
2.另一方面,您有布局菜单。 它可以帮助您在其父级中锚定,放置和调整UI元素的大小。
这两种方法并不总是兼容的。 由于容器控制其子级,因此无法在其子级使用布局菜单。 每个容器都有特定的效果,因此您可能需要嵌套其中的几个以获得工作界面。 通过布局方法,您可以自下而上地对子级进行工作。 由于您没有在场景中插入额外的容器,因此可以实现更清晰的层次结构,但是在行,列,网格等中排列项目会更加困难。
使用锚点精确放置UI元素
控制节点具有位置和大小,但它们也具有锚点和边距。 锚定义节点的左边,顶边,右边和底边的原点或参考点。 更改4个锚点中的任何一个以更改边距的参考点。
如何更改锚点
与任何属性一样,您可以在Inspector中编辑4个锚点,但这不是最方便的方法。 选择控制节点时,布局菜单将显示在视口上方的工具栏中。 它为您提供了一个图标列表,只需单击一下即可设置所有4个锚点,而不是使用检查器的4个属性。 只有在选择控制节点时才会显示布局菜单。
锚是相对于父容器的
每个锚的值介于0和1之间。对于左侧和顶部锚,值为0表示没有任何边距情况下,节点的边缘将与其父级的左边缘和上边缘对齐。 对于右边和底边,值为1意味着它们将与父容器的右边和底边对齐。 另一方面,边距表示到锚位置的距离(以像素为单位),而锚则相对于父容器的大小。
边距随锚点而变化
移动控件节点或调整控件节点大小时,边距会自动更新。 它们表示从控制节点的边缘到相对于父控制节点或容器的锚的距离。 这就是为什么你的控制节点应该总是在容器内,我们马上就会看到。 如果没有父级,则边距将相对于节点自己的矩形边界(在检查器中Rect分段设置)。
尝试更改锚或在容器中嵌套Control节点:边距将更新。 您很少需要手动编辑边距。 总是试着找一个容器来帮助你; Godot带有许多节点,可以为您解决所有常见情况。 需要在生命条和屏幕边框之间添加空间? 使用MarginContainer。 想要建立一个纵向菜单? 使用VBoxContainer。 更多信息请参见下文。
Godot GUI探讨相关推荐
- Golang的GUI探讨:不要在一棵树上吊死,要在多棵树上
原文: Golang的GUI探讨:不要在一棵树上吊死,要在多棵树上 • 腾图工作室,威远博客,威远工作室,Ease 关于Golang开发GUI界面始终是一个问题,似乎没有大家公认比较好的简单方法. 我 ...
- ATL的GUI程序设计(3)
第三章 ATL的窗口类 CWindowImpl.CWindow.CWinTraits,ATL窗口类的奥秘尽在此三者之中.在本章里,李马将为你详细解说它们的使用方法.另外,本章的内容也可以算是本书的核心 ...
- CLI or GUI --- 要高效还是要易用? (该文作者的功底真的很深厚啊)
目录(?) [+] 这篇文章很棒 转载过来欣赏地址httpwwwcnitblogcomaddonearchive2008010838581html 要高效还是要易用谈CLI与GUI 前言 定义 ...
- 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)
Android 的窗口管理系统 (View, Canvas, WindowManager) 在图解Android - Zygote 和 System Server 启动分析一 文里,我们已经知道And ...
- 【Java】浅谈Java的GUI开发
GUI是什么? 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面. 图形用户界面是一种人与计算机通信的界面显示格 ...
- gui界面如何和内核链接 python_专栏 | 除了内核程序,Abaqus还能这样做二次开发...
阿 伟 CAE工程师 六年CAE经验擅长Abaqus python和HyperWorks的二次开发,熟练掌握的开发语言有python和tcl/tk.文末附<Abaqus主窗口GUI的二次开发&g ...
- JAVA GUI THREAD---***
针对用户界面的多线程 GUI下面的多线程方式 1.与GUI类分离方式 分离方式,在创建线程类实例时需要代入GUI句柄,通过GUI句柄操作GUI,也就是说线程类和GUI类都要有对方的实例,以便相互操作. ...
- 2000页Python系列PPT分享九:(GUI编程)(122页)
总体说明:本套PPT共约2000页,包含董付国老师Python系列图书<Python程序设计基础(第2版)>(2018年8月第4次印刷).<Python程序设计(第2版)>(2 ...
- PAGE:像Visual Studio一样设计Python GUI窗体
虽然使用标准库tkinter开发Python GUI程序很方便,也提供了强大的功能,但是窗体上的一切都需要程序员使用代码来控制,在页面布局上浪费大量时间,确实不是很方便.今天我们来介绍一个叫做PAGE ...
- python qt库,用于 Python 的高级 GUI 库(Qt 和 PyQt)(1)Unix系统 -电脑资料
Qt 工具箱是一个使用广泛的跨平台 GUI 工具箱,可用于 Windows .Linux.Mac OSX 和许多手持平台, Qt 工具箱是一个使用广泛的跨平台 GUI 工具箱,可用于Windows.L ...
最新文章
- spi收发时的寄存器sr不变_我与SPI 的夜晚,只能说逻辑分析仪太次了
- python通过ftp上传文本文件storlines怎么用_用python将本地文件上传到FTP报错
- 数据结构-编程实现一个双链表的建立,双链表的打印,双链表的测长
- 与狼共舞·美女与野兽
- 开源GIS库GDAL/GEOS在Windows下的编译与 Codeblocks配置
- Silverlight 4之旅(三)数据绑定(中)
- Thinkpad SL400安装黑苹果10.8.4全纪录
- Androidstudio抽取成员变量快捷键 快捷键大全 自定义setting文件
- Python成员运算符
- 互盾科技:智慧源于勤奋,伟大出自平凡
- 2、ARM嵌入式系统:LED初始化
- du和df命令的区别
- 免费的.netFramework 混淆工具 Babel obfuscator GUI
- java雷霆战机项目收获_java实习项目_雷霆战机
- 蓝凌工作ekp开发使用一些js编写开发记录
- Tuxera NTFS2023免费版Mac电脑系统读写软件
- 状态栏和导航栏重叠,解决办法
- CCRC信息安全服务资质证书办理条件有哪些?
- Spring 4 - AOP
- MS VS+HIK海康机器人工业相机环境配置