ブログ開拓記Part271 “カメラのズーム”

ブログ開拓記Part271 “カメラのズーム”

こんばんは、ちきなるです。

 

定期更新2回目!!

 

未だにどう更新しようか悩んでいますが、とりあえず、今週覚えたことを書きつつ、ゲームの進捗状況を書いていこうと思います。

 


 

今週は、カメラのズームを覚えました。

 

CameraのInspectorビューのSizeを見ます。

Projectionが、Orthographic(初期値)だと出てきます。

このSizeを変更すると、カメラに表示される範囲が変更されます。


数値は、カメラの表示範囲に垂直方向に何個の四角(ワールド座標の1,1のサイズ)が入るか設定します。

 

6を設定するとこんな感じです。

カメラの中心から上に6個、下に6個表示されます。

要するに2倍した数値分、表示されます。

 

水平方向は、アスペクト比に合わせて表示されます。


このSizeを変更すると、ズームが出来ます。

左から、3, 6, 12 の時です。


スクリプトで変更したい時は・・・。

Camera.orthographicSiz を使うと変更できます。

Cameraは、クラスの頭に

Public Camera cmr;

を書いて、Inspectorビューで設定しても良いですし。

カメラにスクリプトを設定して、

private Camera cmr;

cmr = this.GetComponent<Camera>(); //Startに書く

で、設定しても良し!!

 

後は、

cmr.orthographicSiz = 6; //変更したいサイズ

これで、変更できます。


水平方向で設定したい時は、

float fAspect;

fAspect = Screen.height / Screen.width;

これで、アスペクト比が出るので、

水平方向に12個表示させたい時は・・・。

cmr.orthographicSize = (12 / 2) * fAspect;

で、表示されます。

(12 / 2)は、垂直方向と同じで、12個表示させたい時は、右に6個、左に6個で計算するので、半分にします。


キャラクターがいる場所まで表示させたい時は・・・。

GameObject.transform.position

を使うとできます。

垂直方向に合わせる時は、y。

水平方向に合わせる時は、x。

マイナス値はダメなので、Math.Adsを使って絶対値に変えるとできます。

 

例)キャラクターの縦位置で設定する場合

Camera.orthographicSiz = Math.Ads(GameObject.transform.position.y);

transform.position.yだと、キャラクターの中心位置になって、見切れます。

なので、表示範囲を少し広げると良いです。+1とか+2とか。


まとめ

CameraのSizeは、垂直方向に表示される四角の数が設定されます。

Sizeが6の時は、中央から上に6個、下に6個。合計12個表示されます。

 

スクリプトで変更する時は、

Camera.orthographicSiz

に、設定したい数値を入れれば変更されます。

 


 

ゲーム開発の進捗状況ですが・・・。

 

こんな感じになっています。

 

キャラクターの移動に合わせて、カメラをズームイン、ズームアウトするようにしました。

 

後は、CPUの性能を調整しつつ、音を付けたり、タイトル画面を作ったり、その他いっぱいです。

 

完成までは、まだまだ掛かりそうです。