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

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

*

  関連記事

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

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

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

前回の記事でサーバーへの接続を行いました。 今回は、オンラインで同期されるゲーム …

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~AssetStoreの使い方とシーンへの追加~

前回の記事 でプロジェクトの作成とUnityの設定をしたと思います。 今回は、A …

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

前回の記事で、PhotonCloudをUnityに導入する事が出来たと思います。 …

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

前回の記事では、宇宙戦闘機から弾が発射するようになりました。 今回は、カメラの設 …

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

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

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

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

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

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

簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装~アニメーションの同期~

目次1 前回の記事の変更2 Photon Animator Viewの追加3 o …

Unity5!インストールしてから起動までの流れ!~アカウント登録~

前回の記事でUnity5のダウンロードからインストールまで紹介したと思います。 …