为UE和Unity开发者准备的Godot指南

news2025/1/16 13:50:36

为UE和Unity开发者准备的Godot指南

——两位大哥打架,请带上我

这两天游戏行业又开始热闹了,昨天两条信息直接刷爆朋友圈,最大的两家游戏引擎公司怼起来了。

为Unity开发者准备的虚幻引擎指南》:

为Unity开发者准备的虚幻引擎指南

为虚幻引擎开发者准备的Unity指南》:

为虚幻引擎开发者准备的Unity指南

Unity、UE和Godot三个引擎的特色,见:

Unity、UE和Godot的优劣对比-CSDN博客

前言

在当今游戏开发领域,虚幻引擎和Unity引擎一直是开发者们首选的工具。然而,另一款强大而充满潜力的引擎——Godot引擎,也逐渐受到越来越多开发者的青睐。本文针对那些熟悉虚幻或Unity引擎但想要学习并掌握Godot引擎的开发者,提供一份详细的入门指南。

在使用Godot之前,用户只需要到Godot的官网下载一份100MB左右的引擎本体即可。官网页面可下载的引擎分为标准版与.Net版本,前者允许用户使用Godot自制的脚本语言GDScript编写游戏逻辑,后者则在前者的基础上加增了对于C#语言的支持。而无论哪一种版本,用户都可以直接打开引擎使用,而不须下载任何捆绑软件或进行繁琐的账号验证。

需要特别提醒的一点是,Godot引擎除了可以在WIndows、Mac、Linux等常见的开发平台使用以外,还可以在Android平台编辑并运行项目。

启动引擎后,用户会进入项目管理器程序。这是管理Godot项目的地方,用户可以在这里管理游戏项目的新建、编辑与删除操作。如下图就是管理器中新建项目的操作,在这里我们可以看到新建项目时,用户可以设置项目名称、路径、渲染器等项目信息。其中Godot为项目准备了三种不同的渲染器,Forward+是基于Vulkan实现的高性能渲染模式,适用于Windows等高性能平台的大型3D游戏开发;Mobile则是基于Vulkan实现的移动端渲染模式,适用于移动端设备的游戏开发;最后的兼容模式是基于Opengl实现的渲染模式,此模式下导出的程序可以在各个平台运行。

Godot编辑器 

创建、导入或编辑一个项目,用户会进入Godot的编辑器界面。用户可以在上方菜单栏的编辑器选项中点击编辑器布局,改变编辑器内各个分区的位置,也可以将各个区块提取为一个独立的窗口,拖拽到电脑桌面的任一位置。

主视口 (Main Viewport)

主视口是Godot的视口,这类似于Unity的Scene视图与Ue的LevelViewport。用户可以在此直观的预览、编辑游戏的2D与3D内容。

此外,用户还可以点击主视口上方的Script进入引擎自带的脚本编辑区,这是一个引擎内置的IDE,它提供了对GDScript代码的自动补全、查找、跳转等功能。用户无需借助外部软件,即可在此编写代码。

场景(Scene Dock)

场景栏对应的是Unreal中的WorldOutliner与Unity的Hierarchy窗口。用户可以在此管理组织Godot的节点(Node),Node就类似于Ue中的Actor与Unity中的GameObject。但不同于Unity与Ue,Godot中并没有组件的概念,Godot中的主要游戏对象基本由Node构成。用户可以将场景栏中的节点信息保存形成一个新的场景文件,这类似于Unity中储存prefab数据的文件,Godot中也会将一个文件内节点的集合称为一个场景,场景栏可以同时管理节点与场景。

文件系统(File System)

文件系统包含了一个项目中的所有可用资源文件,它类似于Unity中的Project窗口与Ue中的ContentBrowser,用户可以在此整理、搜寻所需资源。需要注意的是此处显示的并不是项目内的所有文件,而是项目中所有的可读取的资源文件。

检查器(Inspector)

检查器的功能与Ue中的Details以及Unity中的Inspector面板相同,用户单击节点后可以在此查看和编辑相关对象的属性。此外,当用户选择资源文件时,此处也将显示对应文件的属性。在检查器的右侧还拥有历史与节点两个面板。历史面板可以查看和回退用户在编辑器中的历史操作。节点面板下用户可以设置场景中节点的分组情况。

补充

除上述内容外,引擎的左上角与右上角还存在着两排按钮。

左上角排列的按钮包括场景、项目、调试、编辑器、帮助五个按钮,用户可以在此查看或跳转对应的按钮内容。

右上角是引擎场景的启动按钮与渲染器设置按钮。启动按钮从左至右依次为启动主场景、暂停运行中的项目、终止运行项目、运行当前选中场景、运行特定场景、以电影模式运行场景。当我们选择运行场景时,引擎就会启动一个额外的窗口,来运行编辑中的项目内容。

渲染器设置按钮会显示当前启用的渲染模式,用户可以随时切换渲染模式。

重要的游戏对象概念

节点(Node)

在Godot引擎中,节点(Node)是一种基本的构建单元,类似于Unity和Unreal Engine(UE)中的GameObject或者Actor。每个节点都可以包含特定的功能、行为或属性,如显示2D图像、3D模型、充当3D音源、用于制作UI界面等。并且节点之间可以建立父子关系,一个节点只能有一个父节点,但可以拥有多个子节点,子节点的变换(位置、旋转、缩放)会受到父节点的影响。此外,节点可以包含脚本、组件和其他节点作为其子项,从而构建出复杂的场景和交互。

场景(Scene)

在Godot引擎中,场景(Scene)是游戏中的一个重要概念,一般用于表示若干节点的一个集合,它类似于Unity和Unreal Engine(UE)中的场景概念,但有一些独特的特点。

场景是节点保存与加载的基础单位。首先,用户必须明确节点是Godot引擎中行驶功能的基本单位,而场景只是节点保存与加载的单位,Godot中的节点可以保存为tscn格式的场景文件,在需要时通过读取文件生成具有对应属性或特征的节点。如下图即是一个场景文件,其中记录了节点的名称、类型、引用脚本、非默认属性等信息内容,在程序运行时,Godot通过会读取这些信息来构造对应的节点。

场景的本质依然是节点。在明确了上述信息后,我们需要明确,场景的本质依然是节点。在使用场景时,用户常常会以场景的根节点来代为表述整个场景涉及的节点内容。因此,Godot的场景更加灵活。场景与场景、场景与节点之间就像节点与节点之间一样可以互相组合、互相拼接,形成多样的曾经结构。

Godot中游戏将从主场景运行。Godot中节点是最常用的游戏组件,在启动游戏时,用户需要选择若干节点参与游戏的初始化,这需要用户将一个场景设为主场景,当游戏启动时,游戏将会对主场景中的节点进行实例化。

场景树(SceneTree)

在Godot引擎中,场景树游戏主循环的一种具体实现,它可以管理Godot引擎中的渲染、物理、音频、网络等多个模块的功能。还可以通过场景树来对节点实行统一的调控工作。

资源(Resource)

资源是Godot中用于存储和管理游戏中各种数据的重要概念,与UE和Unity中的资产具有一定的相似性。 

在Godot中,资源可以是各种不同类型的文件,例如纹理、模型、音频、脚本、材质、场景等。每种资源都有其特定的用途和数据结构,可以被游戏中的节点和系统使用。

资源以文件的形式存储在Godot项目中,并可以在编辑器中进行管理和预览。这些资源可以通过Godot编辑器加载到项目中,在游戏运行时被使用。

资源可以在不同的场景或项目中被重复使用。对于某些资源,可以在Godot编辑器中进行编辑和修改,比如纹理可以进行重新调整、音频可以进行剪辑等。

在Godot中,节点可以引用和使用资源,这些资源之间也可以存在依赖关系。例如,一个场景可能依赖于多个模型资源和纹理资源。

一个图片/3D模型资源文件被引入项目时,引擎一般会将此文件转译为一个新的数据文件,存入项目的缓存文件夹中,同时生成一个与文件同名的具有import后缀的文件,用来指向生成文件。当游戏运行时,引擎将会直接加载生成文件,而非导入的源文件。

Godot支持的文件格式:

2D图片

.bm、.dds、.exr 、.hdr、.jpg、.jpeg、.png、.svg、.webp

音频

WAV、Ogg、MP3

3D模型

GLTF、Glb、DAE、OBJ、FBX(引擎提供转换插件)、blend

Fonts

ttf等

视频

ogv等

项目文件系统

Godot的项目文件系统中,project.godot是其专属的项目文件。其中记录了项目的总体信息与项目设置的内容。

.godot文件夹是项目的缓存文件。Godot中许多的资源文件在引入Godot时,都会进行一次文件转换,如3D模型将统一转换为Godot内置的SCN文件夹,而后存入.godot中的imported文件中。资源文件也会生成一个同名的具有import后缀的文件来缓存此映射。

此外.godot中还包括了项目的编辑器部分设置信息、shader缓存、资源映射等内容。

常用系统

模型显示

Godot中可以通过CSG节点或MeshInstance3D节点来显示模型。

其中CSG模型节点可以显示引擎内置的简单的、不闭合、不自相交的简单模型,如长方体、圆柱、球体、面片等,适用于快速制作原形设计。且CSG模型节点之间的顶点可以进行简单的交、并、补计算,形成新模型,适用于游戏的原形设计开发。

MeshInstance3D节点可以用于显示模型资源文件中存放的复杂模型。

MultiMeshInstance3D则启用了GpuInstance手段,适用于优化大量给定网格实例的渲染(例如森林中的树木或草丛)。

图片显示

Godot的图片显示可以通过多种不同的节点,2D游戏开发中常见的节点主要是Sprite2D与AnimatedSprite2D节点。其中,后者除了可以显示图片外,还可以预设多组图片集合,控制每个集合内的图片按照一定速率循环或非循环切换,从而制作序列帧动画。

UI制作

Control类节点可以用于制作Godot的UI系统。这些节点的布局系统不同于传统2D的坐标定位,而是会根据自己父级Control和同级Control节点的布局设置来动态调整自己的位置。

Control类节点主要分为Container节点与非Container节点。

非Container节点可以用于显示图片、文字、视频、按钮、输入框等多种UI常用组件。

Container节点则具有一些控制布局的预设参数,可以设置子Control节点在水平或竖直方向上按一定的规律排布。

物理与碰撞

Godot在3D方面的物理与碰撞主要通过PhysicBody3D节点与Area3D节点实现。

其中Body方面常用的节点包括StaticBody3D节点、CharacterBody3D节点与RigidBody3D节点。

StaticBody3D节点适用于制作静态的物理体;CharacterBody3D内置了较丰富的位置判断函数,可用于编写人物脚本;RigidBody3D节点预留了丰富的物理属性,可以用于模拟非代码控制的物理对象。

Area3D可以用于制作区域检测对象,检测区域内物理对象的进出、数目、以及集合。

在使用这些对象时,用户需要使用CollisionPolygon3DCollisionShape3D节点作为它们的字节点,用于描述这些物理对象的工作范围。

动画制作

在制作动画时,用户一般可以使用AnimationPlayer节点来制作动画。使用此节点时,用户需要为它创建对应的动画资源。

AnimationPlayer节点使用的资源可以描述时间轴上不同对象多个属性的变化,以及函数调度的时机,还可以设置属性变化的曲线类型,动画循环情况等参数,是一个在动画方面功能非常丰富的节点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1239741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

不存在类型变量 A, T 的实例,使 Collector<T, A, List<T>> 符合 Supplier<R>

报错信息 原因: 不存在类型变量 A, T 的实例&#xff0c;使 Collector<T, A, List<\T>> 符合 Supplier<\R> 来源 测试Stream流的map方法&#xff0c;做算法习惯基本类型定义数组。 map方法:Stream API的一部分。允许以一种声明式的方式处理数据&#xff0c…

Shell判断:模式匹配:case(三)

系统管理工具箱 1、需求&#xff1a;Linux提供的丰富的管理命令&#xff0c;用户管理&#xff0c;内存管理&#xff0c;磁盘管理&#xff0c;进程管理&#xff0c;日志管理&#xff0c;文件管理&#xff0c;软件管理&#xff0c;网络管理等等数十个工具包。如果你能通过shell编…

大二第五周总结

你知道的&#xff0c;向来如此&#xff0c;从来没人关心&#xff0c;世人从来只看重结果。对你了解越多的人&#xff0c;往你心里面捅刀子的时候也是最狠&#xff0c;不过跟之前不一样了&#xff0c;又不是曾经那个任人欺负的小孩儿了&#xff0c;所有的努力在别人眼里就是屁都…

【资深硬件工程师总结-千兆以太网设计指南】

文章目录 01通用PCB布线指南02标志焊盘中的接地过孔区示例03EMI注意事项04ESD注意事项 资深硬件工程师总结-千兆以太网设计指南 本应用笔记旨在帮助客户使用Microchip的10/100/1000 Mbps以太网器件系列设计PCB。本文档提供有关PCB布线的建 议&#xff0c; PCB 布线是保持信号完…

hp惠普Victus Gaming Laptop 15-fa1025TX/fa1005tx原装出厂Win11系统ISO镜像

光影精灵9笔记本电脑原厂W11系统22H2恢复出厂时开箱状态一模一样 适用型号&#xff1a;15-fa1003TX&#xff0c;15-fa1005TX&#xff0c;15-fa1007TX&#xff0c;15-fa1025TX 链接&#xff1a;https://pan.baidu.com/s/1fBPjed1bhOS_crGIo2tP1w?pwduzvz 提取码&#xff1a…

10、信息打点——APP小程序篇抓包封包XP框架反编译资产提取

APP信息搜集思路 外在——抓包封包——资产安全测试 抓包&#xff08;Fiddle&茶杯&burp&#xff09;封包&#xff08;封包监听工具&#xff09;&#xff0c;提取资源信息 资产收集——资源提取——ICO、MAD、hash——FOFA等网络测绘进行资产搜集 外在——功能逻辑 内在…

Spring Cloud学习(十一)【深入Elasticsearch 分布式搜索引擎03】

文章目录 数据聚合聚合的种类DSL实现聚合RestAPI实现聚合 自动补全拼音分词器自定义分词器自动补全查询completion suggester查询RestAPI实现自动补全 数据同步数据同步思路分析实现elasticsearch与数据库数据同步 集群搭建ES集群创建es集群集群状态监控创建索引库1&#xff09…

7种SQL的进阶用法

1.自定义排序&#xff08;ORDER BY FIELD&#xff09; 在MySQL中ORDER BY排序除了可以用ASC和DESC之外&#xff0c;还可以使用自定义排序方式来实现。 CREATE TABLE movies ( id INT PRIMARY KEY AUTO_INCREMENT, movie_name VARCHAR(255), actors VARCHAR(255), price DEC…

一次解决套接字操作超时错误的过程

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> 在windows客户端使用QTcpSocket连接一个ubuntu服务端程序&#xff0c;出现套接字操作超时的错误。开始感觉还莫名其妙的&#xff0c;因为之前连接都是好好…

【三维几何学习】自制简单的网格可视化软件 — Mesh Visualization

自制简单的网格可视化软件 — Mesh Visualization 引言一、整体框架1.1 三角形网格1.2 界面管理1.3 VTK可视化界面 二、核心源码2.1 三角形网格&#xff1a;TriMesh类2.2 界面Widget_Mesh_Manager2.3 VTK可视化2.4 main 引言 使用PyQt自制简单的网格可视化软件 - 视频展示 本是…

Kubernetes+Gitlab+Jenkins+ArgoCD多集群部署

KubernetesGitlabJenkinsArgoCD多集群部署 文章目录 KubernetesGitlabJenkinsArgoCD多集群部署1. KubernetesGitlabJenkinsArgoCD多集群部署2. 添加WebHooks自动触发3. Jenkins-构建-执行Shell4. 制作镜像及修改Yaml文件4.1 Dockerfile4.2 Build-Shell 5.自动部署Demo测试5.1 推…

VMware 16 Pro 安装以及下载

1、下载地址&#xff1a; https://www.aliyundrive.com/s/nj3PSD4TN9G 2、安装文件 右击打开 下一步 密钥&#xff1a;ZF3R0-FHED2-M80TY-8QYGC-NPKYF 到此&#xff0c;安装完毕

Mysql 递归查询子类Id的所有父类Id

文章目录 问题描述先看结果表结构展示实现递归查询集合查询结果修复数据 问题描述 最近开发过程中遇到一个问题,每次添加代理关系都要去递归查询一下它在不在这个代理关系树上.很麻烦也很浪费资源.想着把代理关系的父类全部存起来 先看结果 表结构展示 表名(t_agent_user_rela…

MySQL数据库时间计算的用法

今天给大家分享如何通过MySQL内置函数实现时间的转换和计算&#xff0c;在工作当中&#xff0c;测试人员经常需要查询数据库表的日期时间&#xff0c;但发现开发人员存入数据库表的形式都是时间戳形式&#xff0c;不利于测试人员查看&#xff0c;测试人员只能利用工具对时间戳进…

visual studio 如何建立 C 语言项目

安装这个 模块。 新建 空项目 创建完成 写demo 点击运行&#xff1a;

数据结构与算法编程题9

将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据 a: 1, 2, 4, 5, 7, 8, 9, 10 b: 1, 2, 3, 6, 7, 8 #include <iostream> using namespace std;typedef int Elemtype; #def…

试试MyBatis-Plus可视化代码生成器,太香了,你一定会感谢我

前言 在基于Mybatis的开发模式中&#xff0c;很多开发者还会选择Mybatis-Plus来辅助功能开发&#xff0c;以此提高开发的效率。虽然Mybatis也有代码生成的工具&#xff0c;但Mybatis-Plus由于在Mybatis基础上做了一些调整&#xff0c;因此&#xff0c;常规的生成工具生成的代码…

redis运维(十六) 有序集合

一 有序集合 把握一点&#xff1a; 各种redis 命令都提供各种语言对应的API 接口,后续API是关键 ① 概念 1、sorted set --> 有序集合2、redis有序集合也是集合类型的一部分&#xff0c;所以它保留了集合中元素不能重复的特性3、但是不同的是,有序集合给每个元素多设置…

【LeetCode刷题-链表】--25.K个一组翻转链表

25.K个一组翻转链表 思路&#xff1a; 把链表节点按照k个一组分组&#xff0c;可以使用一个指针head依次指向每组的头节点&#xff0c;这个指针每次向前移动k步&#xff0c;直至链表结尾&#xff0c;对于每个分组&#xff0c; 先判断它的长度是否大于等于k&#xff0c;若是&am…

微博头条文章开放接口报错 auth by Null spi

接口文档地址 https://open.weibo.com/wiki/Toutiao/api 接口说明 https://api.weibo.com/proxy/article/publish.json 请求方式 POST 请求参数 参数名称类型是否必需描述titlestring是文章标题&#xff0c;限定32个中英文字符以内contentstring是正文内容&#xff0c;限制9…