mel這個東西靠教程光明白是遠遠不夠的,一定要多加練習(xí),這樣不斷的總結(jié)經(jīng)驗教訓(xùn)才能有所提高。
數(shù)組也分 整數(shù)數(shù)組,小數(shù)數(shù)組,字符串?dāng)?shù)組
其實數(shù)組就好比我們在maya場景中選擇了多個對象打組是一個道理,在mel中我們可以將數(shù)字和字符串進行打組后進行統(tǒng)一操作
如整數(shù)數(shù)組里面可能有很多數(shù)字 1 3 5 7 0 等,可以理解為將這些數(shù)字打了一個組
小數(shù)數(shù)組也是如此 1.2 3.6 6.8 3.4 將這四個數(shù)字進行了打一個組
字符串?dāng)?shù)組 就是將字母或者字符串打組 hi hello maya ok 將這四個單詞打組
數(shù)組在mel中的表示方式如下,我以整數(shù)數(shù)組為例
{
int $a [] = {3, 13, 17,37};
print $a;
}
上面我們做了一個整數(shù)數(shù)組的簡單表達方式。int上節(jié)課講過是代表整型變量 定義一個整型變量a在a的后面有一個[]意思就是告訴系統(tǒng)這個變量是一個數(shù)組,在等號后面大括號中的內(nèi)容就是這個數(shù)組的內(nèi)容。大家可以執(zhí)行這條語句看看maya的反饋信息是是如何顯示的,我們使用print反饋數(shù)組信息,得到數(shù)組列表。
但是如果我們要調(diào)用數(shù)組中的單獨的某一個數(shù)字我們該怎么操作呢?這就需要我們執(zhí)行數(shù)組下標(biāo)操作。大家要注意數(shù)組我們上面寫的數(shù)組語句中的數(shù)組內(nèi)容標(biāo)號是從0開始的。也就是說{3, 13, 17,37}數(shù)組中第一個數(shù)字3的下標(biāo)為0以此類推,13的下標(biāo)為1等等。
如果我們要調(diào)用上面數(shù)組中的第三個數(shù)字17,我們要執(zhí)行如下操作
{
int $a [] = {3, 13, 17,37};
print $a[2];
}
大家在mel執(zhí)行上面的語句后反饋結(jié)果為17,這個結(jié)果是我們想要的
同樣我們也可以對數(shù)組重新賦值,這個道理就好比是,我們在maya場景中建立一個空組,在這個空組中我們可以隨意的添加和更換組中的元素是一個道理
{
int $a [] = {3, 13, 17,37};
print $a;
}
上面這個語句我們只是對這個數(shù)組的初始化,好比我們在maya場景中建組,組中已經(jīng)包含了這些對象,我要更換這個組里面的內(nèi)容我們要執(zhí)行如下操作
{
int $a [] = {3, 13, 17,37};
$a = {47,98,103,111};
print $a;
}
我們在mel中執(zhí)行上面的語句,發(fā)現(xiàn)我們將變量$a數(shù)組的原內(nèi)容3,13,17,37更改為47,98,103,111。如果我們只想更改數(shù)組中的其中一個數(shù)值的話我們可以進行如下操作
{
int $a [] = {3, 13, 17,37};
$a[2] = 8;
print $a;
}
我們執(zhí)行上面的語句發(fā)現(xiàn)我們已經(jīng)將數(shù)組中的第三個數(shù)字17,改為了數(shù)字8。如果我們要刪除數(shù)組中的某一個數(shù)字的話,我們可以執(zhí)行如下操作
{
int $a [] = {3, 13, 17,37};
$a = {3,13,37};
print $a;
}
執(zhí)行上面的操作我們就將數(shù)組中的17刪除掉了。如果我們要查看數(shù)組中第四個數(shù)字的話,我們執(zhí)行下面的語句
{
int $a [] = {3, 13, 17,37};
$a = {3,13,37};
print $a[3];
}
在mel中的反饋值為0,因為經(jīng)過我們的更改刪除了數(shù)組中的17,因此就沒有了第四個數(shù)字,這個數(shù)組中只有三個數(shù)字。所以反饋值為0。
同樣小數(shù)數(shù)組和字符串?dāng)?shù)組也是同樣道理
小數(shù)數(shù)組如下
{
float $a [] = {3.1, 13.5, 17.2,37.3};
print $a;
}
字符串?dāng)?shù)組如下
{
string $a [] = {"maya", "ok", "autodesk","good"};
print $a;
}
如果在我們數(shù)組中存在非常多的數(shù)字和字符串,我們需要統(tǒng)計數(shù)組內(nèi)元素的數(shù)量的時候我們可以通過size的操作來完成,如下
{
string $a [] = {"maya", "ok", "autodesk","good"};
print `size $a`;
}
執(zhí)行上述操作,mel反饋值為 4。注意在print打印反饋值后面我使用了`size $a`。因為size是一個命令,所以我們在使用命令執(zhí)行另一個命令的時候或者將命令作為字符串定義的時候需要用``將命令標(biāo)注起來。這個符號就是鍵盤波浪線下面的點。
如果想清空數(shù)組,我們可以通過執(zhí)行clear的操作來執(zhí)行清空數(shù)組,使用方法如下
{
string $a [] = {"maya", "ok", "autodesk","good"};
clear $a;
print `size $a`;
}
大家執(zhí)行上面的語句,我們使用print `size $a`;打印返回值,返回值為0,說明數(shù)組已經(jīng)被清空。
使用字符串?dāng)?shù)組應(yīng)有操作的比較多,可以通過字符串?dāng)?shù)組提取場景中的元素列表
我們在場景中建立四個球體,分別命名為 a b c d。我們可以通過字符串?dāng)?shù)組將選擇的球體打印出名字。我們執(zhí)行如下操作
{
string $a [] = `ls -sl`;
print $a;
}
我們選擇場景中的 a b c d 的任何一個或者多個球體,執(zhí)行上面的語句就能將我們選擇的球體名稱打印出來。其中在上面的語句中我使用了ls -sl 這個命令,這個命令的意思就是,選擇的對象元素的意思,因為maya場景中的對象命名都是本身就是字符,選擇多個對象,所以我們要使用字符串?dāng)?shù)組。