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