- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MEL语法
MEL语法
MEL语法!
每个变量就像个储存箱。箱子有名字,以方便你或Maya找到它。箱里收藏(或获分配)的数值有以下几种类型:
整数,例如
int $myint = 314
浮点数,例如
float $myfloat = 7.6122
矢量(能用来代表位置或颜色),例如
vector $myvec = 1.2, 7.3, 22.38
字串,例如
string $mystr = This is a string
注意矢量值和字串值的写法: 矢量里的三个数字用 和 包着,而字串里的字符则用两个 包着。你若要调用矢量里头的分量,就用 $myvec.x,$myvec.y 和 $myvec.z,比如
$myfloat = $myvec.x
变量名字前面必须加个$。你只能用 A 至 Z,a 至 z,0 至 9,和 _ 这几个字母来命名,其它(包括空格)一概不能用。名字的第一个字母不可以用数目字。字母的大小楷对Mel来说都有别。比如$Myvar,$myVar 和$myvaR是不同的名字,所代表的也是不同的变量。
变量的类型必须和它所收藏的数值类型匹配。比如
float $myfloat = This is a string
是不能成立的。那倒是相当明显,那么
float $myfloat = 7.6122
又如何?
要创造一个无值变量,只需输入(比如)int $newvar。 然后用 $newvar = 23 赋予它一个值。
所有变量一经设立就无法被删除或改变类型,除非你跳出Maya。 以$newvar为例,这名字会一直代表一个整数变量;你不能改用它来存放其它类型的数据。
当你储存场景时,你创造的变量不会自动跟着场景被存起来。但迟点我会教你一个能在场景里保存变量的技巧。
你也能同时创造几个变量:
int $newvar1, $newvar2, $newvar3
你不能同时赋予他们不同的数值,但如果数值是同等的话你倒可以写
$newvar1 = $newvar2 = $newvar3 = 5
数组
当你创造一个变量时,你可以把它设为一个组:
float $myfloat[4]
方括号里的4说明这数组能收藏四个浮点值。你可以用以下句子把数值分配给它:
$myfloat = {3.4, 22.1, 0.53, 87.33}
或者
$myfloat[0] = 3.4; $myvar[1] = 22.1; $myvar[2] = 0.53; $myvar[3] = 87.33;
注意那索引是从0开始算的,还有我们用分号把几个句子分开。
其它类型的变量也能组化:
string $mystr[3] = {string1, string2, string3};
vector $myvec[2] = {2.1, 3.3, 10.2, 12.5, 23.6, 78.8};
其实组员的数量是不定的。比如上面的$myfloat虽说能储藏四个组员,但若你写
$myfloat[4] = 3.11
的话,它会立刻增多一个位子来收留这新组员。这种数组在英文叫做dynamic array,则是说它的组位数量有伸缩性。根据这特性,你可以用 float $myfloat[] 设立数组,然后靠分配数值自动增加它里头的位子数量。
Size这指令能给你报一个数组内有多少个组员,而clear则能帮你把它们全清除掉:
size $myfloat; clear $myfloat;
数组的主要用意是给你方便地储存概念上相同但形体上分很多份的数据。比如你想把你5个朋友的电话号码纪录下来,用
string $name[5] = {John, Mary, Peter, Paul, Walter};
int $phone[5] = {9711234, 3967541, 8809472, 7825162, 5091208};
会比
string $name1, $name2, $name3, $name4, $name5;
int $phone1, $phone2, $phone3, $phone4, $phone5;
$name1 = John; $name2 = Mary; $name3 = Peter; $name4 = Paul; $name5 = Walter;
$phone1 = 9711234; $phone2 = 3967541; $phone3 = 8809472; $phone4 = 7825162; $phone5 = 5091208;
来得好。不只是因为前者可以打少点字,更重要的是因为它用一个简单数字给两组不同类型的数据贴标,让你过后能方便地找到你要的资料:
int $indx
文档评论(0)