オービットの特定の場所にカメラを配置するためにカスタマイズする必要がある標準アセット スクリプトに基づく MouseOrbit スクリプトがあります。
Unity3d に同梱されている標準スクリプトの基本は次のとおりです。
function Start () { var angles = transform.eulerAngles; x = angles.y; y = angles.x; // Make the rigid body not change rotation if (rigidbody) rigidbody.freezeRotation = true; } function onUpdate(){ x += Input.GetAxis("Mouse X") * xSpeed; y -= Input.GetAxis("Mouse Y") * ySpeed; var rotation = Quaternion.Euler(y, x,0); var position = rotation * Vector3(0.0, 0.0, cameraDelta); transform.rotation = rotation; transform.position = position; }
私がする必要があるのは、カメラを のターゲット オブジェクトの周りのいくつかのスポットに配置すること0,0
です。
1 つ目はオブジェクトのすぐ後ろにあります。x:7,:y0,z:0
.
これが私がうまくいくと思ったものです:
function TransformCamera(x,y,z){ //set position of camera transform.position = new Vector3(x, y, z); var angles = transform.eulerAngles; y = angles.y; x = angles.x; z = angles.z; var rotation = Quaternion.Euler(y, x, z); var position = rotation * Vector3(0.0, 0.0, cameraDelta); //adjusted_target; transform.rotation = rotation; transform.position = position; }
このスクリプトは近いです... カメラを変換して回転させてオブジェクトを見ますが、カメラを正しい位置に配置しません7,0,0
。
ありがとう!