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; } } }