从本篇开始讲Ventuz中的 Script,也就是使用 C#去编程。
Script直译为脚本,我们会在里面写入代码去执行一些操作,比如读取Excel中的数据并进行筛选处理最终输出我们需要的数据,比如通过网络获取数据,比如制作一个场景控制器。这些功能是Ventuz内置节点做不到的。如果我们要开发大型的可视化项目,是离不开Script节点的。
在 Logic 大类下的 Script 子类下,有两种不同语言的Script节点,分别是是VB.net Script和C#.net Script,这里我们选择更通用流行的C#语言来学习。![ccd2ee9342fc9560044b67b23355ee10.png](https://i-blog.csdnimg.cn/blog_migrate/1a46d830874c01de8f1f33b77a11b03f.png)
一.Script Editor(脚本编辑器)
创建好C#Script节点后,双击就可以打开脚本编辑器,如下图所示。
1.这部分包含一些普通操作,如保存 复制 粘贴 查询,最后那个Compile是编译的意思,如果编译不通过说明代码语法有错误,是不能运行的,我们在关闭编辑器之前一定要点击Compile确认没有错误才可以。
2.这部分的 Custom Model包含了Inputs(输入)和Outputs(输出),通过输入和输出,数据和方法才可以显示到Ventuz的 Properties(属性)视图中,也就是说我们通过Custom Model来完成和Ventuz的交互,References部分是我们脚本添加的 引用,我们在写代码的时候可能会用到其他人编写的类库,这时候就要添加引用(依赖)了。 3.这部分是我们编写代码的地方4.这部分是错误列表,我们在写代码的时候,如果有错误,这里会提示出来的,通过提示去修改错误是比较方便的。
二.Hello Ventuz!
这一节让我们来尝试写下第一行代码。(如果是新手,有些代码看不懂是很正常的,你只需要照着做就可以了,等以后就会慢慢理解的)
01.创建一个方法
![6ca39578ae85854eb97210f9d08a3d96.png](https://i-blog.csdnimg.cn/blog_migrate/347507f9c5414d6bfb417caccce860fb.png)
首先点击Custom Model来到输入输出属性视图,点击上面的+号弹出一个选择框,点击最后一个选项Method,我们就创建好了一个方法(方法是处理数据的过程),如下图,选中这个方法然后点击F2可以修改名字,我们将他的名字改为Print,然后点击上面的Save&Close来关闭编辑器。
![8370522f284a0a4fa96d66fcb72d63aa.png](https://i-blog.csdnimg.cn/blog_migrate/33d28e04056cac390e8190a25316cc67.png)
退出编辑器后,我们点击Ventuz主窗口上方的View-Properties或者按下Shift+F2来打开属性视图,并选中我们的Script脚本,发现脚本编辑器中的Inputs暴露在了属性Properties视图中,这个属性我们应该不陌生,这是一个输入方法(事件),我们可以通过用鼠标点击或者连到其他节点的输出方法(事件)上触发这个Print方法。只不过现在点击没有任何反应,因为我们还没有编写Print方法。
![ae0065229cc751518cf31aeb30186463.png](https://i-blog.csdnimg.cn/blog_migrate/ee2c7a846ec4fdc1760ad8a77fa5fe3a.png)
public bool OnPrint(int arg) { return false; }
上面就是Ventuz自动创建出来的方法,目前它没有任何的作用,我们把鼠标点击在return的前面,按一下
回车,这时会空出一行,我们就在这行写代码。
public bool OnPrint(int arg) { VLog.Info("Hello Ventuz!"); return false; }
写好的代码如上面所示,你可以复制到你的编辑器中,如果你愿意自己写,一定要注意字母的大小写和标点的中英文输入。C#是对大小写敏感的,如果字母的大小写写错了,那么编译器是不会编译通过的,标点一定要是英文标点,中文标点也会报错。
![79ece688aec6a25ce1f733932a71995f.png](https://i-blog.csdnimg.cn/blog_migrate/820b5be80d1167982272c2f6f80c9731.png)
刚才我们编写的那一行代码的作用是将Hello Ventuz!打印显示到Ventuz的log messages中,log messages可以通过点击Ventuz右上角那个类似一张纸的图标,显示出来,这时我们再点击脚本上的Print方法,Messages中就会出现Hello Ventuz!如下图,恭喜你!你用Ventuz的Script成功编写了一个方法!
![1833f4eab25d02199adc730dcc5ffd2d.png](https://i-blog.csdnimg.cn/blog_migrate/e5b68b57a707e2eb9ec999c1fa418ea3.png)
三.让Script做个加法
刚才你已经学会了怎么 输出一段话到Messages视图中,下面我们就开始通过例子来从零开始学习C#语言,需要注意的是, 如果你是零基础的话,请你把注意力放在我所讲的例子上,其他的不要去深究,如果你碰到一些我没讲到的知识,请你暂时记下来。对那些我没讲到的知识去钻牛角尖的话,很容易自己劝退自己,真有疑问的话可以给我留言。我们创建一个新的Script,在Inputs中添加一个方法(Method)重命名为Add,添加两个整数(Integer)分别命名为number1和number2,在Outputs中添加一个整数命名为outNumber,关闭编辑器。
![c736d430d468935f8b336756be634f52.png](https://i-blog.csdnimg.cn/blog_migrate/262bc8771073826ba7dcc1aa55065d77.png)
我们看到Script的属性视图有所改变(可以点击图中两个箭头任意一个使输入和输出属性同时显示),如下图。刚才我们添加的一个输入方法和两个输入整数以及一个输出整数都暴露在了属性栏中。
public bool OnAdd(int arg) { outNumber = number1 + number2; return false; }
代码完成确认没有错误后关闭编辑器,回到Script节点的属性视图,我们在输入里改变number1和number2的值,比如number1等于13,number2等于14,当我们点击Add方法时,outNumber输出了27.
恭喜你,你做了一个整数的加法计算器!
四.小结
很高兴你能坚持看到这里,希望你可以跟着我的步骤完整的做下来,新手同学在学习的过程中很容易把关注点放在我讲的知识点之外,感觉不把某些东西弄明白就没法继续了,其实这是错误的学习方法,计算机知识是一个很庞大的体系,如果在某个地方深究的话,你会发现不懂的越来越多,想弄懂他们越来越难,这样很多人就会半途而退,其实有一些不懂的方法可以暂时记下来,等过一段时间你掌握的知识足够多的话,自然就能明白了。