本帖最后由 有空 于 2016-5-9 10:17 编辑
通过前6节的学习,大家应该学会编写一些处理物体或者材质的简单程序代码,往下我们学习制作界面,按钮,并保存常见的ms文件。
首先,我们要用到的是visual maxscript 编辑器,通过菜单——maxscript——新建脚本,可以新建一个max脚本窗口,它就跟记事本差不多,以后我们所有代码将在这里进行编写。
进入主题:
首先我们在maxscript脚本编辑器里面写如下代码
rollout myrollout "cs"
(
)
注释:
rollout --maxscript保留关键词,只要它出现就表示这儿有个新的卷展栏。
myrollout --这是你自己定义的一个变量,它必须遵循变量的命名规则,详见第三节。
"test" --这是此卷展栏标题的名称,引号里面内容任意填写。
现在把光标放在rollout的括号内,在Editor菜单——工具——编辑卷展栏(各max版本位置不一定,请自己查找一下),找到并选择后,会弹出一个新的界面,myrollout可视化界面编辑。
高清下载
访问密码 d6f6
通过上面的视频操作,我们得到这样的代码
rollout myrollout "cs" width:162 height:98
(
editText edt3 "名称" pos:[17,8] width:130 height:30
button btn2 "重命名" pos:[34,54] width:96 height:30
)
我们注意到,rollout myrollout "重命名"后面多了两个参数,宽度和高度,这是我们在visual maxscript 编辑器拖放窗口时,自动生成的,也可以手动设置数值。
再看另外两行:
editText edt3 "名称" pos:[17,8] width:130 height:30editText --表示这是一个编辑文本。
edt3 --这是变量名,以后要调用这个编辑文本就用这个值。
"名称:" --这个编辑文本的名称,出现在脚本界面。
pos:[17,8] --此编辑文本在脚本界面的相对位置,可以在visual maxscript 编辑器界面用上下左右方向键调整位置。
width:130 height:30 --此编辑文本的宽度和高度。
下面的button意思差不多,只不过把控制器类型(Controls)换成了按钮(button)
上面的editText和button都是rollout的控制器类型,这些控制器可以在visual maxscript 编辑器界面拖出来。rollout的所有控制器:
我们在程序最后加上一句代码:createdialog myrollout,变成
rollout myrollout "cs" width:162 height:98
(
editText edt3 "名称" pos:[17,8] width:130 height:30
button btn2 "重命名" pos:[34,54] width:96 height:30
)
createdialog myrollout
再执行菜单——工具——计算所有(快捷键ctrl+E)
这样就执行了此脚本,弹出如下对话框
当然现在单击重命名,还不行,我们还没有告诉它要做什么。
打开刚刚保存的脚本,max菜单——maxscript——打开脚本,弹出maxscript编辑器,选择maxscript编辑器——菜单工具——编辑卷展栏,进行如下操作:
得到如下代码:
rollout myrollout "cs" width:162 height:98
(
edittext edt3 "名称" pos:[17,8] width:130 height:30
button btn2 "重命名" pos:[34,54] width:96 height:30
on btn2 pressed do
(
)
)
createdialog myrollout
比之前代码多出了
on btn2 pressed do
(
)
这句就是当按钮btn2按下时,做些什么。括号内就是需要做的内容,现在为空,即什么也不做。
在我们第五节中,讲到命名脚本:
for i in objects do i.name = uniquenme "cg"
这里我们只想命名选择的物体,应该是:
for i in selection do i.name = uniquenme "cg"
"cg"是个常量,我们想要用户可以自己输入,写到脚本中即为:
on btn2 pressed do
(
if edt3.text != "" then for i in selection do i.name = uniquename edt3.text
)
这里edt3.text表示编辑文本edt3里面输入的内容,if edt3.text != "" then意思是,如果此编辑框里面内容不是空的,就执行下面命令(重命名)
至此,完整代码如下:
rollout myrollout "cs" width:162 height:98
(
edittext edt3 "名称" pos:[17,8] width:130 height:30
button btn2 "重命名" pos:[34,54] width:96 height:30
on btn2 pressed do
(
if edt3.text != "" then for i in selection do i.name = uniquename edt3.text
)
)
createdialog myrollout
ok,你再ctrl+E运行一下此代码,选择几个物体,在文本框输入字符,再点击重命名,看一下,物体是不是完成了重命名?
——————本节完——————
|