Godot Engine:巧用適配器模式讓你提前進入4.x時代

近日Godot發佈了3.2.2 stable,而萬衆期待的4.0版本也預定於明年春季發佈。雖然已經有4.0開發版可下載,但是還很不穩定。3.x到4.x一些程序接口被重構了,那麼現在開始一個項目,到底是用3.x開發明年換了4.x再重構呢?還是忍着各種閃退的痛直接用4.x呢?

如果你能夠靈活運用適配器模式,那麼就可以在享受3.x穩定性的同時,提前用4.x開始你的項目了。其實就是在3.x項目中,通過適配器構造出一些4.x的接口,當移植入4.x後,修改或刪除這些適配器,就可以(基本)平穩過渡了。

針對節點名稱的改變

官網上說,3.x到4.x節點名稱的變化很大,尤其是3D部分,爲了命名更加統一,比如:

3.x 4.x
Spatial Node3D
Camera Camera3D
CollisionShape CollisionShape3D

Spatial的變化爲例,我們可以先建一個“Adapters”文件夾,在裏面新建一個Node3D類,它的代碼也很簡單。

extends Spatial
class_name Node3D

以後當我們想創建Spatial類型的節點,就直接創建Node3D,要添加腳本,也讓我們的腳本直接繼承Node3D就可以了。

等工程移植入4.x後將這個“Adapters”文件夾以及其中的代碼刪除即可。

一些事件綁定接口的變化

事件綁定接口也是一個比較大的變化,比如官網給出的下面這個例子:

在這裏插入圖片描述

我們可以新建一個名爲SignalConnector的靜態類,把綁定信號的工作都放在裏面,例如

class_name SignalConnector

static func button_on_pressed(btn:Button,target:Node):
	btn.connect("pressed",target,"_on_button_pressed")

這樣當項目移植到4.x,我們只需要修改每個函數爲下面的樣子即可

class_name SignalConnector

static func button_on_pressed(btn:Button,target:Node):
	btn.pressed.connect(target._on_button_pressed)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章