Godot 學(xué)習筆記 #01

Godot 學(xué)習筆記 #01

程序部分

關(guān)于 _ready

在 _ready 中你可以訪問完整的 tree,但是你不能更改 tree 的結(jié)構(gòu)。當我想在 _ready 中把一個子物體移動到另外一個地方時,操作總是無法成功的。這個時候有兩種方法:

  • 使用 call_deferred(函數(shù)名)
  • 使用 yield(get_tree(),"idle_frame")

相關(guān)閱讀:
https://twitter.com/reduzio/status/966037750918057987
https://godotengine.org/qa/7336/what-are-the-semantics-of-call_deferred

Editor 相關(guān)

GDScript 腳本中只要加入 tool 關(guān)鍵字就會在編輯器中執(zhí)行

包括子物體的 Visible 顯示都可以在編輯器的界面中實時反饋了,要研究的是:

  • tool 所放置的位置有沒有關(guān)系,之前的代碼會不會在編輯器中運行
  • extend 的腳本跟 tool 的關(guān)系,(測試是可以運行的)

檢測當前是否在 Editor 中運行,使用 Engine.editor_hint 檢查

https://docs.godotengine.org/en/3.0/classes/class_engine.html?highlight=editor_hint

渲染相關(guān)

Viewport 內(nèi)的 Node 無法使用移動工具

這個官方還沒有解決:
https://github.com/godotengine/godot/issues/20619
https://github.com/godotengine/godot/issues/17739

viewport 中不顯示子物體內(nèi)容?

在使用 viewport 時一定要給一個 camera 配合這個 viewport(最近的一個),否則這個 viewport遇到別的攝影機時就會用別的攝影機.

實現(xiàn) mask 的嘗試

這里有 light mask 的演示 :https://www.youtube.com/watch?v=e5EUZGbrMRY

但是,新渲染引擎中這個功能失效了,需要等待下個版本修復(fù):https://github.com/godotengine/godot/issues/8685

現(xiàn)在的效果是這樣:

2018-12-06-10-50-11.png

已經(jīng)實現(xiàn)半透明 mask,問題是顏色被燈光疊加了

燈光相關(guān)設(shè)置為:

2018-12-06-10-52-26.png

材質(zhì)需要為 CanvasItemMaterial:

2018-12-06-10-53-38.png

更新 : 我發(fā)現(xiàn)indienova已經(jīng)有人發(fā)過相關(guān)的筆記:https://www.indienova.com/groups/post/29324
問題在于,要做燈光 mask 需要你的圖片的透明通道,我的那個純黑白圖當然就不行了,修改一下成功了:

godotMask.gif

Light2D

會照亮相應(yīng)的 Light Mask 層

2018-12-06-10-31-51.png

CanvasModulate

2018-12-06-10-27-54.png

這個節(jié)點會調(diào)整最近一個 viewport 的顏色,不過只要有 Light2D 存在就會失效

2018-12-06-10-29-02.png
2018-12-06-10-29-26.png

Outline Shader

https://github.com/steincodes/godot-shader-tutorials/blob/master/Shaders/outline.shader

這個 Shader 用來做人物高亮選擇框,不過最好配合 Viewport 使用,在 Sprite 中使用這個 Viewport 作為貼圖,然后再加 Shader 使用

2018-12-06-10-25-24.png

兩個數(shù)值這么調(diào),正好是一個像素

2018-12-06-10-19-05.png

UI 相關(guān)

UI想要不跟隨攝影機移動?

添加一個 CanvasLayer 節(jié)點,把相關(guān)的 UI Node 放里面

2018-12-06-10-13-35.png

CanvasLayer 上的 Node 受到了 2D 光照影響?

2018-12-06-09-59-25.png

需要去掉 UI Node 的 Light Mask

2018-12-06-10-00-31.png
2018-12-06-10-00-47.png

打開 2D 光照后 CanvasLayer 下的文字渲染不出來?

2018-12-06-10-10-18.png

把 Lyaer 調(diào)為 0,是什么機制現(xiàn)在還不清楚

2018-12-06-10-11-05.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    wgl0419閱讀 6,602評論 1 9
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,895評論 2 45
  • 昨天我做了一個夢,在夢里,我終于看到了雪,醒了,我想我可能是期待冬天了!
    白干安喵閱讀 173評論 0 1
  • 因為今天在妮妮的感染下 下了這個軟件 覺得還挺有意思的 打字起來很舒服 而且今天起了很多idea 就...
    小淋子_NINE閱讀 272評論 0 0

友情鏈接更多精彩內(nèi)容