前回の記事では、宇宙戦闘機から弾が発射するようになりました。
今回は、カメラの設定をしていきます。
カメラの設定
たぶんですけど、前回の記事でいきなり[Gameタブ]から見える風景が違っていたと思います。
カメラの位置と回転をいじっていました。
なので、今回はカメラの位置と回転の変更と、宇宙戦闘機が動いた時にカメラも一緒に動くようにコードを書いて行こうと思います。
カメラの位置と回転
[Hierarchy]の[Main Camera]を選択して、[Inspector]を見てください。
そこの[Transform]を下記の数値に設定してください。
これで、見やすい位置と角度になったと思います。
また、この数値の変更方法は、[Inspector]→[Transform]の数値を直接いじる方法と
左上のこの5つの中から、赤枠で囲まれたのを選択して
[Scene]の黄色とか赤色とか青色の矢印をクリックしながら動かす事で、位置が変動します。
回転は、
赤枠の方を選択して、
[Scene]の黄色とか赤色とか青色の線をいじると回転角度が変動します。
宇宙戦闘機に追随するようにカメラにコードを追加する
using UnityEngine; using System.Collections; public class CameraControl : MonoBehaviour { public Vector3 difference; float differenceX; // Use this for initialization void Start () { difference = transform.localPosition; differenceX = difference.x; } // Update is called once per frame void Update () { if (GameObject.Find("SciFi_Fighter_AK5") == true) { Vector3 startVec = GameObject.Find("SciFi_Fighter_AK5").transform.localPosition; transform.localPosition = new Vector3(differenceX, startVec.y + difference.y, startVec.z + difference.z); } } }
[MyFolder]→[Script]に[CameraControl]というScriptを追加します。
内容は、上記に書いたモノです。
12・13行目では、ゲーム開始時のカメラの位置を変数の中に入れています。
今回は、Z軸の移動にはカメラが付いて来ますが、X軸は付いて来ないようにしました。
19行目で[GameScene]中に”SciFi_Fighter_AK5″というオブジョクトがあるかをif文で確認しています。
[GameObject.Find(
"")]でGameObjectを名前で指定出来ます。
20行目で、宇宙戦闘機の位置を取得しています。
21行目で、カメラの位置に宇宙戦闘機の位置 + 最初の位置を足してそれをリアルタイムでカメラに位置に入れています。
カメラにコードの追加 と コードにオブジョクトの追加
前回の記事で行った、オブジョクトにコードの追加とコードにオブジョクトのセットをしてください。
このようになれば、大丈夫です。
これで、宇宙戦闘機を動かしてもカメラがついてくるようになります。
まとめ
これで、カメラが宇宙戦闘機に付いてくるようになりました。
次の記事では、敵キャラの作成を行います。
また、次の更新は明日の朝9時頃に投稿します。
では。
コメント