4.3 Object Rezzing and Moving and Euler

關於物件的生成和移動

通常有分為下列幾種

1.手動

手動產生就像是從Inventory拖出來複製

手動移動就是對該物件右鍵點選編輯後 調整他的Position

2.Script

移動:

函數

llMoveToTarget( vector target, float tau );

可以在tau秒之內移動到target的地方

事件

moving_end( ){}

移動結束後觸發此事件

產生:

函數

llRezObject( string inventory, vector pos, vector vel, rotation rot, integer param );

llRezAtRoot( string inventory, vector pos, vector vel, rotation rot, integer param );

基本上照上面輸入就可以在該pos的位置產生出面對rot的方向帶有vel的速度和param參數叫做inventory的物件

事件

用on_rez( integer start_param ){}來偵測產生的事件

3.物體系統

根據勾選了物體這個選項

物體會有物理反應

像是撞到其他物體會反彈

也可以製造外部力源來對物體施力來造成型變

4.旋轉

轉動一個物體的角度

函式

llEuler2Rot(vector vec) 轉動

LLSetLocalRot(rotation newRot)告訴系統現在的新角度

舉例

deltaRot = llEuler2Rot(<0,0,45> * DEG_TO_RAD);  //轉Z軸45度

rotation currentRot = llGetLocalRot(); //取得該物體目前的角度

rotation newRot = currentRot * deltaRot;//算出新的角度

llSetLocalRot(newRot);//改變該物件的角度

llRotateTexture(R, ALL_SIDES);//旋轉R度