入門使用主要知道的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()獲取該端口所有的連接端口









