HIROMARTBLOG

Unity、Cocos2d-xのこととか書けたらいいですね。

簡単オンラインゲーム開発!!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を追加

PhotonCloud_45

 

 

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関係で、自分が作成したものをみなさんがダウンロードして実行しても、起動しないとわかったので、配布はしないことにしました。

申し訳ないです。

 

では。

 

 - PhotonCloud, Unity , , , , , ,

広告

広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

  関連記事

Unity5にVisual Studio Tools for Unity ( UnityVS ) を追加する方法

最近リリースされた、Unity5では、今までのUnity4.6などと同じ方法では …

3Dシューティングゲームを公開

前回までで紹介してきた「プログラミング初心者でも簡単!Unity5で3Dシューテ …

簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装~導入編~

今回から数回に分けて、UnityとPhotonCloudを使って、リアルタイムオ …

簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装~オブジョクトの同期~

前回の記事では、同期するオブジョクトの生成を行ってもらいました。 今回は、オブジ …

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~ソースファイルの作成とゲームオブジェクトへの追加~

前回の記事で AssetStoreの使い方を書いたと思います。 今回から、少しだ …

Unity Adsの使い方・導入方法~Unityで作ったゲームで広告収入~

今回は、Unity Adsの使い方・導入方法を書いていきます。   目 …

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~ゲームスタートボタン・リセットボタンの設置~

前回までで、ゲームのシステムがほぼ出来ました。 自機を動かす事、敵を生成する事、 …

Unityで作ったアプリをケーブルでAndroid実機で動かす方法

個人でUnityを使って作ったゲームを実機で動作するのかを試したい時ってあります …

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~衝突判定の設定2~

前回の記事の最後で言っていた、敵の弾が宇宙戦闘機に衝突した時の処理を今回書いてい …

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~細かな設定~

前回までで、だいたいのゲームシステムは出来たいと思います。 今回は、細かな設定を …