こんばんは、ちきなるです。
定期更新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の性能を調整しつつ、音を付けたり、タイトル画面を作ったり、その他いっぱいです。
完成までは、まだまだ掛かりそうです。
コメント