![](https://img.kancloud.cn/e9/f0/e9f063b55d296ebd59ac59d14376e9a6_177x110.png)
【节点说明】
脚本是一个内容节点,可以托管一段C#/Visual Basic源代码,以便使用自定义功能扩展对功能进行拓展。尽管可以使用现有节点功能创建一些相当复杂的场景,但是有些情况下,使用节点和绑定属性无法实现某些效果,这时在场景中添加一小段代码更容易实现,可以通过这些代码执行相应的程序来实现某些功能。
双击脚本节点,打开“脚本编辑器”,如下图:
![](https://img.kancloud.cn/9e/6e/9e6eca28fbdfffa7d94d3ef779af8b42_692x433.png)
左侧的窗口显示此节点的输入和输出属性。通过添加按钮,可以创建浮点值,字符串等新属性。窗口下方还包含一个选项卡,用于显示可以在脚本中使用的程序集(即DLL)的引用。
脚本编辑器的主要区域展示编辑的源代码。编辑器提供许多专业 IDE 的功能,如上下文突出显示。在更改代码时,脚本编辑器会尝试动态检测语法错误,并将它们列在脚本编辑器底部的错误列表中。
#### **4.6.2.1 输入/输出属性**
![](https://img.kancloud.cn/a0/2d/a02d344ceb5474213c0f88761a2c7290_228x289.png)![](https://img.kancloud.cn/0d/b4/0db4fe48c785055bc787572f3c1ffea0_228x289.png)
可以在左侧的编辑器中设置输入输出属性,输入属性涵盖基本数据类型以及数组和方法(Method)。如下图所示。
![](https://img.kancloud.cn/0c/15/0c15a10bd6cb7a12cbb7d08c53e226ac_237x346.png)
双击新建的方法Method1,在脚本编辑框将自动生成如下图的方法OnMethod1,当有事件调用该方法时,则执行此段代码。
![](https://img.kancloud.cn/fc/a5/fca5eba440c99235935b1aff2a4f4c5c_448x109.png)
输出属性除了具有与输入相同的数据类型以外,添加了事件(Event)。如下图所示。
![](https://img.kancloud.cn/8a/f4/8af43c533cb64b6b99fae5d0bda8adb7_237x368.png)
属性参数比较多的时候,就需要对属性进行分组,点击![](https://img.kancloud.cn/0f/36/0f361199f33e9d95d63f126abb39c545_32x29.png)按钮可以添加一个分组,使用鼠标拖拽属性到该分组下即可改变属性的分组。
如果一个分组下没有任何属性,点击![](https://img.kancloud.cn/39/ce/39cee489fb68dd9c7922618c4dbd0721_38x33.png)按钮后该分组将被移除。
#### **4.6.2.2 添加引用**
![](https://img.kancloud.cn/84/bd/84bd46ad649dea3365136d8ddb783904_284x531.png)
点击标签栏“引用”,进入引用管理界面,在这里我们可以添加/移除GAC的引用。
GAC,即全局程序集缓存(Global Assembly Cache),在“GAC Assemblies”处单击鼠标右键,弹出快捷菜单,如下图所示。
![](https://img.kancloud.cn/93/8d/938df394ee042148ce5c37cbbb4230fc_259x94.png)
点击“添加引用”进入GAC引用对话框,在这里我们可以添加需要的.NET库。如下图所示。
![](https://img.kancloud.cn/31/6f/316f5acd71e6980c03ce34600c9bc081_478x428.png)
添加GAC库之后就可以在脚本中使用,如下图所示。
![](https://img.kancloud.cn/c6/17/c617ca7a54c7a0556b3c670dbad336a6_258x84.png)
#### **4.6.2.3 脚本成员属性和方法**
**属性changed**
一个状态消息,用于告示系统数据已经更改。当执行changed=true之后,则该节点将告知与之相关的节点刷新数据,以保持数据时序的正常。
**方法Script()**
该脚本的构造方法。当该脚本节点被加载,或者被修改时,则运行此方法。
**方法Dispose()**
当节点被删除时,或者关闭项目时执行此方法。
**方法Validate()**
当任意输入属性有改动时执行此方法。此方法可以实现实时响应的逻辑节点。但是需要注意执行效率和性能。
**方法Generate()**
实时方法,该方法会在渲染的帧与帧之间运行,所以该方法执行的频率是最高的。请谨慎使用。
#### **4.6.2.4 编译和保存**
![](https://img.kancloud.cn/96/76/96767978fe352f7bcee4c0207ae7f215_540x169.png)
脚本编辑器上方的工具栏包含保存、撤销、重做、复制、粘贴等功能。
点击![](https://img.kancloud.cn/80/4e/804e6340a0d90375dca06a6dbd9d702a_69x25.png)按钮,可以对编写的脚本进行编译和检查。如果编译出错,错误会在下方的错误列表中列出。如下图所示。
![](https://img.kancloud.cn/81/01/8101d56c4adb4b7ff6ca4e6f361bffbd_492x89.png)
点击![](https://img.kancloud.cn/e6/e0/e6e0d60b4a61f38b346a89437478ccb8_107x30.png)按钮,将关闭脚本编辑器,并尝试加载该脚本。
此时脚本虽然已经被更新,并且被加载运行,但并没有真正保存到项目中,需要及时保存项目,以保存到硬盘中。
![](https://img.kancloud.cn/95/95/9595492aa1899be282cc3a8df2be1920_447x207.png)
注:编译不通过的脚本是不会被加载和运行的。但可以保存。
#### **4.6.2.5 打印LOG**
在脚本中使用VLog.Info(string)方法,可以将执行的情况打印到消息框(Message)中,方便调试。
![](https://img.kancloud.cn/58/6c/586ca0e0da6227b2eea85ea53cb1a23d_303x112.png)
当执行到VLog.Info时,消息框会打印消息,如下图所示。
![](https://img.kancloud.cn/0d/56/0d5695829546bac8dd60c5f679257ee8_539x177.png)
- ▲必看:本文档迁移通知▲
- 更新日志及目录
- 1 产品介绍
- 2 安装准备
- 2.1软硬件要求
- 2.2安装说明
- 2.2.1 工具设计端
- 2.2.2 工具播放端
- 2.3创建项目
- 2.3.1字体设置
- 3 界面
- 3.1主界面工作区
- 3.1.1标题栏
- 3.1.2渲染菜单
- 3.1.3项目菜单
- 3.1.4 场景
- 3.1.5 视图
- 3.2 层编辑器
- 3.3 层级编辑器
- 3.3.1渲染顺序
- 3.3.2层级编辑器工具栏
- 3.3.3插入节点
- 3.3.4选中节点
- 3.4 内容编辑器
- 3.5 文本编辑器
- 3.6 项目属性配置
- 3.6.1暴露属性
- 3.7 工具箱
- 3.7.1快捷工具箱
- 3.8 渲染窗口和预览菜单
- 3.8.1 渲染编辑模式
- 3.9 动画编辑器
- 3.10 消息窗
- 4 基础节点
- 4.1 世界节点
- 4.1.1 坐标系
- 4.1.2 锚点
- 4.1.3 公告板
- 4.1.4 容器
- 4.1.5 摄像机
- 4.2 文本节点
- 4.2.1 2D文本
- 4.2.2 2D文本样式
- 4.2.3 文字效果
- 4.3 颜色/材质节点
- 4.3.1 Alpha
- 4.3.2 基础
- 4.3.3 天空盒子
- 4.3.4 雾效
- 4.4 动画节点
- 4.4.1 推动器
- 4.4.2 百分比控制
- 4.4.3 关键帧动画
- 4.5 几何形状节点
- 4.5.1 矩形
- 4.5.2 圆角矩形
- 4.5.3 渐变矩形
- 4.5.4 立方体
- 4.5.5 圆形
- 4.5.6 球体
- 4.5.7 模型加载器
- 4.5.8 路径
- 4.6 逻辑节点
- 4.6.1 计数器
- 4.6.2 脚本
- 4.6.3 函数插值效果
- 4.6.4 表达式
- 4.6.5 目录
- 4.7 交互节点
- 4.7.1 触摸按钮
- 4.8 层节点
- 4.8.1 层组
- 4.8.2 层切换
- 4.9 渲染选项节点
- 4.9.1 FX特效
- 4.9.2 过滤器
- 4.10 数据节点
- 4.10.1 文本文件
- 4.10.2 资源导入
- 4.10.3 Excel 工作簿
- 4.11 音频节点
- 4.11.1 音频
- 4.12 I/O 节点
- 4.12.1 键盘
- 4.12.2 鼠标
- 4.13 E2E 节点
- 4.13.1 E2E坐标系
- 4.13.2 E2E提供器
- 4.13.3 E2E层
- 4.13.4 E2E控制
- 4.13.5 E2E数据
- 5 RayData 场景效果节点
- 5.1 材质
- 5.1.1 金属
- 5.1.2 墙面
- 5.1.3 玻璃
- 5.1.4 路面
- 5.1.5 水面
- 5.1.6 山
- 5.2 绿化
- 5.2.1 树
- 5.2.2 草地
- 5.3 车流
- 5.4 线框
- 5.5 地面反射
- 5.6 窗户
- 5.7 背景
- 5.8 环境球
- 5.9 灯光
- 5.10 标记
- 5.11 连线
- 5.11.1 连线 01
- 5.11.2 连线 02
- 5.12 摄像头
- 5.12.1 2D 监控摄像头
- 5.12.2 3D 监控摄像头
- 5.13 云
- 5.14 中国地图
- 5.15 世界地图
- 5.16 地球
- 5.17 模型高亮
- 5.18 热力图
- 5.19 天气场景
- 5.20 扫线
- 5.21 地片生成
- 6 RayData UI节点
- 6.1 天气信息
- 6.2 雷达图
- 6.3 线图
- 6.4 柱状图
- 6.5 饼图
- 6.5.1 环形图
- 6.5.2 进度仪表盘
- 6.5.3 玉玦图
- 6.5.4 多环图
- 6.6 菜单按钮
- 6.7 散点图
- 6.8 监控视频
- 6.9 玫瑰图
- 6.10 条形轮播图
- 6.11 柱线组合图
- 6.12 标题框
- 6.13 天气图标
- 6.14 文字板
- 6.15 倒计时关闭
- 6.16 中文输入框
- 6.17 文本轮播
- 6.17.1 横向文本轮播
- 6.17.2 纵向文本轮播
- 6.18 矩形树图
- 7 RayData 逻辑节点
- 7.1 动画摄像机
- 7.2 动画控制
- 7.2.1 动画控制
- 7.2.2 三态动画
- 7.2.3 范围动画
- 7.3 3D 控制器
- 7.4 切换
- 7.5 循环切换
- 7.6 切换组
- 7.7 Remote 远程控制
- 7.8 Remote 3D 远程控制
- 7.9 颜色判断
- 7.10 场景内容自适应
- 7.11 数值开关
- 7.12 等差数列
- 7.12.1等差数列(差值)
- 7.12.2等差数列(总值)
- 7.13 弹窗切换器
- 7.14 数据轮播
- 7.15 轮播控制
- 7.16 刻度换算(简/全)
- 7.17 角度换算
- 7.18 折线转曲
- 8 RayData 数据节点
- 8.1 Json 解析
- 8.1.1 Json 加载
- 8.1.2 Json 打开
- 8.1.3 Json 排序
- 8.1.4 Json 取值
- 8.2 简单数据
- 8.2.1 数据源
- 8.2.2 JsonTable 解析
- 8.2.3 XML/Json 转换器
- 8.3 GIS定位
- 8.3.1 GIS坐标位置转换
- 8.3.2 定位点
- 8.3.3 轨迹线
- 8.4 API接口
- 8.4.1 简单接口
- 8.4.2 鉴权接口 01
- 8.4.3 鉴权接口 02
- 8.4.4 WebSocket 01
- 8.5 SHP 文件解析
- 8.6 数据类型转换
- 8.6.1 String 转 Double
- 8.6.2 String 转 Float
- 8.6.3 Float 转 Double
- 8.6.4 Double 转 Float
- 8.7 数值变化控制
- 9 模型制作
- 9.1场景模型要求
- 9.1.1比例尺
- 9.1.2场景模型层级
- 9.2 场景UV要求
- 9.2.1单栋建筑UV
- 9.2.2大面积简模UV
- 9.2.3树木以及路灯等细节UV
- 9.2.4道路与路牙UV
- 9.2.5河流的UV
- 9.2.6绿化片UV
- 9.2.7山体地形UV
- 9.3 效果模型
- 9.3.1车流模拟
- 9.3.2扫线模型
- 9.4 模型导出要求
- 9.4.1 FBX导出
- 9.4.2 OBJ导出
- 9.5 导入和导出工具的步骤
- 9.5.1导入
- 9.5.2导出
- 附录
- 基础教程英文版
- 软件基础
- 模型搭建
- 场景渲染
- UI制作
- 动画制作
- 逻辑搭建
- 数据接入
- 系统部署
- 基础教程中文版
- 工具基础
- 模型制作
- 原型分析
- 效果渲染
- 项目分享
- UI图表
- 逻辑搭建
- 数据处理
- Remote控制