Giter Club home page Giter Club logo

godot-4-q-as's Introduction

Godot-4-Q-As

本仓库主要存放新人常会问的有关Godot的问题,在这里进行统一解答 你也可以在Issue里对你困惑的问题进行提问,作者和其他的一些大佬都会去尽力解答你的疑问。
当然,这里也存放了一些可供参考的小技巧

注意: 提问前请先搜索你要问的问题是否已经有人提过,如果提过,那就请不要重复提问,否则会按duplicated处理并关闭。如果提过但是已被解决,请参考该问题的解决方案,若未解决,可以在该问题帖的1L处点个大拇哥,大拇哥越多,我们就会越优先对该问题进行解答。 温馨提示: 由于作者和大佬们都有三次元的事情要做,因此不一定能够及时回答各位的问题,还请各位提问人耐心等候与海涵。

Godot支持很多语言,我应该选哪个呢?

不同的语言有不同的优缺点,以下列出了Godot原生直接支持的语言及其优缺点,请根据自身实际情况进行考量与选择。

GDScript

  • 上手简单
  • 操作快捷
  • 不需要外置编辑器
  • 不需要编译
  • 不需要手动内存管理
  • 性能不及C#、C++
  • 有些错误可能只能在运行时才能检测到
  • 仅适用于Godot,且只能获取Godot API,对于非Godot的API则需要借助GDExtension或C#

C#

  • 半编译半解释,上手程度介于GDScript和C++之间,如果前者你已有所熟悉可以学学这个
  • 性能约为GDScript的4倍
  • 有微软官方支持的Godot C#
  • 适合大部分有过Unity使用经验的人或对C#就轻驾熟的人使用
  • NuGet,不解释了
  • 无文档注释语法
  • 每次都需要预编译代码
  • 引擎内脚本编辑器对C#的语法高亮支持很差
  • 缺失部分功能,如[OnReady]特性(对应@onready注解)
  • GDScript不能继承C#类,反之亦然
  • 垃圾回收机制(GC)可能会导致游戏出现无意间的轻微卡顿
  • C#脚本写来比GDScript要难一些

C++(GDExtension)

  • 速度比C#、GDScript都快
  • 能够涉及底层操作
  • C++程序员狂喜
  • 可以被GDScript、C#类继承
  • 上手难度较高,精通难度非常高(但一般你会写一点C++就可以了)
  • 无文档注释语法
  • 每次都需要编译,编译速度比C#长(当然,取决于你的电脑性能及使用的编译框架,我这里用的是官方推荐的scons,速度比较慢)
  • 强类型语言,需要不停踩坑
  • 需要注意手动内存管理 当然,你也可以考虑多种语言混合使用,因为Godot是允许跨语言编程的(虽然暂不支持C#和GDScript脚本之间的相互继承)。这里作者个人提供一个参考方向给大家:
  • 纯2d小游戏,运算量不大的,或者要写插件的可以直接硬怼GDScript
  • 3d游戏或大型2d游戏的:C#或者C# + GDScript
  • 涉及到高密度算量或底层操作的,用C++

_ready()函数的执行顺序

当一个节点含有子节点时,优先执行子节点的_ready()函数,兄弟函数之间的_ready()按节点树从上往下的顺序依次调用,在所有子节点都执行完一遍_ready()方法后,才执行本节点的_ready()方法。 因此,根节点永远都是最后执行_ready()方法的。 下面这个格式图为场景树模拟图,其中A、B、C表示同级节点(兄弟节点),1、2、3表示执行顺序。

Root(最末尾执行)

A1
A2
A6

B3
B4
B5

A12

B7
B11

C8
C9
C10
A13

或者,你也可以参考下下面这张图: _ready()执行顺序

godot-4-q-as's People

Contributors

lazy-rabbit-2001 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.