簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装~カメラを追随させる~
2015/05/27
前回の記事でアニメーションの同期を行いました。
今回の記事では、カメラをそれぞれのプレイヤーに追随するように設定していきたいと思います。
目次
Main CameraのPrefab化
まずは、[Main Camera]をPrefab化します。
保存場所は、どこでも大丈夫です。
そして、Hierarchyから[Main Camera]を削除します。
PhotonSystemの改良
メンバー変数の追加
[Main Camera]を入れるために変数を追加します。メンバー変数として、GameObject型のCameraPrefabを宣言します。
[public GameObject CameraPrefab;]
OnJoinedRoom()の改良
OnJoinedRoom()にカメラを生成するコードを追加します。
void OnJoinedRoom() { Debug.Log("部屋に入室"); Instantiate(CameraPrefab, new Vector3(0f, 0f, -10f), Quaternion.identity); PhotonNetwork.Instantiate("DemoUnityChan2D", new Vector3(0f, 0f, 0f), Quaternion.identity, 0);/ }
追加したのは[ Instantiate(CameraPrefab, new Vector3(0f, 0f, -10f), Quaternion.identity);]部分です。
CameraPrefabにMain CameraのPrefabを追加
CameraControllerの改良
メソッドの追加
[StopPositionSet()メソッドを追加します]public void StopPositionSet() { stopPosition = GameObject.Find("StopPosition").transform; }
LateUpdate()の改良
LateUpdate()を書きのように変更します。
void LateUpdate() { var right = m_camera.ViewportToWorldPoint(Vector2.right); var center = m_camera.ViewportToWorldPoint(Vector2.one * 0.5f); if (target != null) { if (center.x < target.position.x) { var pos = m_camera.transform.position; if (Math.Abs(pos.x - target.position.x) >= 0.0000001f) { m_camera.transform.position = new Vector3(target.position.x, pos.y, pos.z); } } if (stopPosition.position.x - right.x < 0) { StartCoroutine(INTERNAL_Clear()); enabled = false; } } else { if (GameObject.FindGameObjectWithTag("Player") != null) { target = GameObject.FindGameObjectWithTag("Player").transform; } } }
Awake()の改良
Awake()メソッドに先ほど追加した[StopPositionSet()]を書き足します。
void Awake() { m_camera = GetComponent<Camera>(); StopPositionSet(); }
動作確認
ここまでの作業を行うと、動きもアニメーションもカメラもそれぞれのプレイヤーに合わせて動くと思います。
まとめ
これで、簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装シリーズは終わります。
明日あたりに、自分で作ったProjectをGitHubにアップロードしますので、もし動かない人はそれをダウンロードして実行してみてください。
Photon関係で、自分が作成したものをみなさんがダウンロードして実行しても、起動しないとわかったので、配布はしないことにしました。
申し訳ないです。
では。
広告
広告
関連記事
-
-
プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~AssetStoreの使い方とシーンへの追加~
前回の記事 でプロジェクトの作成とUnityの設定をしたと思います。 今回は、A …
-
-
プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~ゲームスタートボタン・リセットボタンの設置~
前回までで、ゲームのシステムがほぼ出来ました。 自機を動かす事、敵を生成する事、 …
-
-
Unity5にVisual Studio Tools for Unity ( UnityVS ) を追加する方法
最近リリースされた、Unity5では、今までのUnity4.6などと同じ方法では …
-
-
プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~衝突判定の設定2~
前回の記事の最後で言っていた、敵の弾が宇宙戦闘機に衝突した時の処理を今回書いてい …
-
-
プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~プロジェクトの作成とUnityの設定~
ゲームを作りたいなぁと思っても、プログラミングって難しそうだし、絵とか3Dモデル …
-
-
簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装~導入編~
今回から数回に分けて、UnityとPhotonCloudを使って、リアルタイムオ …
-
-
プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~弾の作成とそれのPrefab化~
前回の記事では、宇宙戦闘機を動かすところまでやったと思います。 今回は、その宇宙 …
-
-
プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~衝突判定の設定~
今回は、衝突判定について書いていきます。 弾と機体があたった時に、判定をして機体 …
-
-
Unity5!インストールしてから起動までの流れ!~アカウント登録~
前回の記事でUnity5のダウンロードからインストールまで紹介したと思います。 …
-
-
プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~カメラの設定~
前回の記事では、宇宙戦闘機から弾が発射するようになりました。 今回は、カメラの設 …
Comment
とても参考になります。
ありがとうございます!