簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装~カメラを追随させる~

PhotonCloud

前回の記事でアニメーションの同期を行いました。

今回の記事では、カメラをそれぞれのプレイヤーに追随するように設定していきたいと思います。

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

申し訳ないです。

 

では。

 

コメント

  1. えいすけ より:

    とても参考になります。
    ありがとうございます!

タイトルとURLをコピーしました