llGetCameraPos
vector llGetCameraPos()
カメラの位置を取得する。
この関数を実行するにはPERMISSION_TRACK_CAMERAの取得が必要。
この関数を実行するにはPERMISSION_TRACK_CAMERAの取得が必要。
llGetCameraRot関数と組み合わせて使うことで、アバターがどこを見ているかを調べることができる。
key avatar=NULL_KEY; vector pos; vector look; get_permission(){ key permkey = llGetPermissionsKey(); if (permkey != avatar || avatar == NULL_KEY){ llRequestPermissions(avatar, PERMISSION_TRACK_CAMERA); }else{ integer perm = llGetPermissions(); if (! (perm & PERMISSION_TRIGGER_ANIMATION)) { llRequestPermissions(avatar, PERMISSION_TRACK_CAMERA); }else{ llSetTimerEvent(1.0); } } } default { state_entry(){ if (llGetAttached() != 0){ avatar = llGetOwner(); get_permission(); } } run_time_permissions(integer perm){ if (! (perm & PERMISSION_TRACK_CAMERA)) { llRequestPermissions(avatar, PERMISSION_TRACK_CAMERA); }else{ llSetTimerEvent(1.0); } } attach(key id){ if (id != NULL_KEY){ avatar = llGetOwner(); get_permission(); }else{ llSetTimerEvent(0.0); } } timer(){ vector p2 = llGetCameraPos(); vector l2 = <1.0, 0.0, 0.0> * llGetCameraRot(); if (p2 != pos || l2 != look){ llOwnerSay("EyeOffset=" + (string)p2 + "\n" + "CameraAtOffset=" + (string)(l2 + p2)); pos = p2; look = l2; } } }