PUN2で簡単なオンライン生成プログラムを作る方法|スペースキーでCUBEを生成

C言語関連

UnityでPhoton Unity Networking 2(PUN2)を使った簡単なオンラインゲーム開発では、複雑な例題を理解する前に、基本的な同期生成の仕組みを押さえることが重要です。この記事では、スペースキーを押すとCUBEが生成されるシンプルな例を通して、オンライン上でのオブジェクト生成の基本を解説します。

PUN2でのオブジェクト生成の基本

通常のInstantiate関数はローカルでのみオブジェクトを生成します。PUN2を使用する場合は、PhotonNetwork.Instantiateを使うことで、ネットワーク上の全プレイヤーに同じオブジェクトを生成させることができます。

例えば、スペースキーを押したときにCUBEを生成する場合は以下のように書きます。

public GameObject ball;

void Update() {
    if(Input.GetKeyDown(KeyCode.Space)) {
        PhotonNetwork.Instantiate(ball.name, new Vector3(2,5,0), Quaternion.identity);
    }
}

PhotonNetwork.Instantiateのポイント

PhotonNetwork.Instantiateは、指定したPrefabをネットワーク上で同期生成します。PrefabはResourcesフォルダ内に置く必要があります。これにより、他のプレイヤーの画面にも同じCUBEが生成されます。

ローカルのInstantiateとは異なり、ネットワークIDが自動で割り当てられ、各プレイヤー間で同期が取れるようになります。

簡単な実装手順

1. Resourcesフォルダを作成し、CUBEのPrefabを配置する。

2. 上記のスクリプトをアタッチしたGameObjectをシーンに配置。

3. PUN2のPhotonServerSettingsを設定し、ルームに接続。

これでスペースキーを押すとCUBEが生成され、ネットワーク上で全員に反映されます。

まとめ

PUN2での簡単なオンライン生成は、PhotonNetwork.Instantiateを使うことで実現可能です。複雑なサーバー時刻や同期の仕組みに入る前に、この基本を押さえることで、オンラインゲームの動作確認やテストがスムーズになります。

コメント

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