2017-04-05 2 views
0

私は現在、2Dトップビューユニティゲームをプログラミングしています。そして私は、特定の領域だけが見えるようなカメラを設定したいと思います。つまり、自分のエリアのサイズを知っていて、プレーヤーが現在エリアの境界に到達しているときに、私は目に見えるストップをしたいと考えています。Unity5のカメラユニット

ここに私の質問があります:私はカメラがどこにあり、どのようにプレーヤーに従うことができるのか知っていますが、私はフィールドの境界とカメラの見ている境界との距離をどう計算できるか分かりません。どうやってやるの?

答えて

1

基本的に、再生可能な領域を長方形として扱います。次に、そのカメラを占めるその長方形内に小さな矩形を作成します。orthographic size.水平境界を計算するときにカメラのaspect ratioを含めることを忘れないでください。

Rect myArea;    // this stores the bounds of your playable area 
Camera cam;    // this is your orthographic camera, probably Camera.main 
GameObject playerObject; // this is your player 

float newX = Mathf.Clamp(
    playerObject.transform.position.x, 
    myArea.xMin + cam.orthographicSize * cam.aspect, 
    myArea.xMax - cam.orthographicSize * cam.aspect 
); 
float newY = Mathf.Clamp(
    playerObject.transform.position.y, 
    myArea.yMin + cam.orthographicSize, 
    myArea.yMax - cam.orthographicSize 
); 

cam.transform.position = new Vector3(newX,newY,cam.transform.position.z); 

あなたが(代わりにXYの発言XZ)代替プレーンを使用している場合は、単にすべての計算に対応する寸法をスワップアウト。

関連する問題