Unity xNode節(jié)點插件入門使用介紹1

入門使用主要知道的4個類

  • NodeGraph
  • Node
  • NodeEditorWindow
  • NodePort

NodeGraph 整張節(jié)點圖表

NodeGraph他繼承的是ScriptableObject類用于儲存整個圖表的數(shù)據(jù)
主要函數(shù)就是

  • AddNode 增加新的Node節(jié)點

  • CopyNode 復制節(jié)點這個在圖表里面的復制粘貼就是調(diào)用這個創(chuàng)建的

  • RemoveNode 刪除新的Node節(jié)點

  • Clear 清除所有的節(jié)點Node

  • 使用

[Serializable, CreateAssetMenu(fileName = "KG", menuName = "xNode New/KG Graph")]
public class ItemGraph : NodeGraph {

    public override Node AddNode(Type type)
    {
      

        return base.AddNode(type);
      
    }
}
  • image.png
  • image.png
  • image.png

Node 節(jié)點數(shù)據(jù)

  • 節(jié)點的數(shù)據(jù)類主要儲存自定義的數(shù)據(jù)節(jié)點和管理自身NodePort連接點 ==(就是連線端口)==
  • 需要進行連線的得打上標簽[Input] [Output] 打上之后就會在Node節(jié)點出現(xiàn)端口
    • image.png
    • image.png
    • Input 是輸入 打上這個連線方式只能是由 output標簽的端口連接,同理 output是輸出 打上了只能連接Input,都是不能連同類型的當然你自己改了源碼除外 <font color="#dd0000">d(′ω`*)</font><br />

    • 然后就能愉快的連線了,連線的數(shù)據(jù)儲存在NodePort類里面Node持有N個NodePort數(shù)據(jù)

    • 主要函數(shù)

      • 獲取值GetValue(NodePort) 這個就是獲取某個端口值得回調(diào)函數(shù) 默認是空的你可以自己覆寫 達到Input獲取了output輸出的數(shù)據(jù)

      • 這里我簡單寫了個例子當然要判斷NodePort端口進行獲取返回值類型的,下圖這里沒寫

        • image.png
      • 添加Input端口 AddDynamicInput和斷連RemoveDynamicInput 一般給你代碼動態(tài)創(chuàng)建端口

      • 有個屬性就是Ports 他持有了自身所有的端口數(shù)據(jù)需要遍歷可以遍歷這個

      • Init() 生成Node的回調(diào)函數(shù) 不過優(yōu)先級不是很高 只是這個節(jié)點出來的下一幀才觸發(fā) 不是當前幀 做初始化的童鞋自己注意,如果要當前幀貌似源碼那里得自己加

      • UpdatePorts 更新端口數(shù)據(jù)和顯示的

      • GetPort(端口名字)獲取指定某個端口

- NodeEditorWindow 節(jié)點窗口

- 這里稍微簡單講一下 下篇深入點
  • NodeEditorWindow主要就是負責繪制整個窗口包括節(jié)點繪制都是在這里完成的
  • 最常用的一個屬性就是==NodeEditorWindow.current== 他就是獲取當前的窗口,從而可以獲取到所有的節(jié)點 這個靜態(tài)屬性
  • 獲取所有的繪制節(jié)點 NodeEditorWindow.graph 拿到就可以遍歷這個圖表所有數(shù)據(jù)了
  • 還有一個就是打開了 NodeEditorWindow.Open(NodeGraph類)
    image.png

    image.png

    image.png

NodePort 兩邊的連接點

  • 就是節(jié)點上的端口
    image.png
  • 他們分為標簽[Input] [Output] 之前說過了可以翻一下

  • 有幾個常用的函數(shù)

    • GetInputValues() 獲取連接該端口的所有數(shù)據(jù)
    • Connect(NodePort port) 端口連線
    • GetConnections()獲取該端口所有的連接端口
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

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