DebugST

Results 12 comments of DebugST

是的这个问题我也发现了。 我发现关于节点的存储方面纯在这很多的问题。这两天也在整理一些思路。 关于只读属性其实还可以这样 ```cs var ps = type.GetProperties(); foreach (var p in ps) { var mi = p.GetSetMethod(); // 获取属性 Set 访问器,如果只读属性 mi = null if (mi != null) {...

是的,新的特性会增加。 ```cs enum SaveModel{ All, OnlyMarked, ExcludeMarked } [STNode(...,SaveModel.MarkedOnly)] public class XXXNode : STNode{ public int Test_1{get;set} [STNodeProperty("key","description"),STNodePropertyMark] public int Test_2{get;set} } ``` 名称暂定。

哈哈 你可以看到 目前这个版本使用 .Net3.5在vs2010下编译的 偷偷告诉你 其实在这之前 我一直用.net2.0后来觉得确实太老了了 才换成3.5的 不过工程都有 你需要5的话可以直接升级 虽然我还没用过高版本的语法 起码我觉得3.5的语法应该还是兼容的吧

> 请问这个是做什么用的?演示好像也没有正式的表现实际功能。 可以参考`blender`或者`蓝图`,至于实际功能需要开使用者需求。节点编辑器只是提供流程化的一个过程。

Unfortunately, the built-in PropertyGird and TreeView are just what the authors consider to be the more commonly used controls. It is not unique. If the functionality doesn't match what you...

每个节点都有In/OutOptions属性 是一个STNodeOption集合对象 通过调用STNodeOption.GetConnectedOption() 可以获取到已经链接的对象。。。通过遍历的方式可以获得所有连线关系。 如果你想知道文件是怎么解析的 你可以跟踪STNodeEditor.LoadCanvas()之类的函数。不过在现在我已经全部替换成了json文件格式。。不过将会在下一个版本放出。

是的 你说的这个问题一直存在,原因也很简单。。属性框设置属性后,Node是并不知道被设置了属性了,,要解决这个问题好说,,只要修改属性框的代码 一旦设置了值管他三七二十一 直接调用节点的重绘函数即可。。但是 反过来就有点麻烦了,,Node并不知道自己是被属性框给加载了的,,所以它的属性背改变的时候不知道怎么去通知属性框重绘,如果要解决的话就需要额外的代码弄一个私有的List配合属性框,用来保存被那些属性框给加载了,,一旦值发生变化就通知属性框重绘制。。但是这样的代码写进Node里面觉得似乎有些多余,,因为对于用户来说 属性框并不是必须的。。而且有一些用户是用的自己编写的TreeView和PropertyGrid。。而且还有一个很麻烦的问题。。就是需要监控属性的Getter和Setter。。不然无法知道属性值被修改了。。不然只能通过用户自己在属性的Set里面编写代码去通知属性框。 当时发现这个问题的时候 我也想了一会儿 要不要解决掉这个问题。。然后就搁置了。。。。。

你这个问题 我已经想到过了 虽然我还没提供新版本 但是大概率如果有更新 那么新版的连线会设计成这个独立的接口 接口的输入参数是两个 option 然后在接口中完成连线的代码 然后提供一个默认实现 如果使用者不满意 则可以自定义接口完成连线的绘制 比如连线是电路板的布局效果… 在新版本中 很多东西都将独立出来 可以自定义

> 在很多场景里,节点一般都不是固定的,如果可以支持动态节点就更好了。 我自己也在尝试改STNodeTreeView相关的代码,但是因为工作时间比较紧张,不知道能不能做成泛用性好些的代码,只是一个小小的建议。感谢你的工作 : ) 我有些不是很明白是什么意思。。动态更新?。。自带的TreeView是可以支持添加NodeType的啊。。所以我有点懵。。而且TreeView的结构 目前也是一个目录的结构只要给节点一个路径就可以了。