Edited at

超簡単!Photonでボイスチャット!

More than 1 year has passed since last update.


この記事について

Photon * Unityでボイスチャットを実装しました。

参考にしたところが3Dモデル使ったり、動きの同期も取ったりして凝っていたのでこの記事ではボイスの同期だけの手順を簡単にまとめました


準備するもの

・Unity 2018.1

Photon Voice

・Photon ランタイムアプリケーションID

・Photon VoiceアプリケーションID


Unityの準備


Photon VoiceのImport

Photon VoiceをImpotします。

ImportしたらWindow->Photon Unity Networking->Highlight Server Settingsをクリック

設定を以下の通りにします

Hosting : Photon Cloud

Region : Jp

AppId : ランタイムアプリケーションID

VoiceAppId : VoiceアプリケーションID

Auto-Join Lobby: On

スクリーンショット 2018-07-30 19.18.13.png


Prefabの作成

Photonで同期させるPrefabを作ります

ProjectにResourcesフォルダを作成して、適当にGameObjectをPrefabにします。

Cubeでも空のGameObjectでもなんでもいいです。

僕は同期が取れたのを確認しやすいためにCubeで行います。

名前もCubeで作成します。

PrefabにしたGameObjectに以下のComponentを付けます


  • Photon Voice Recorder

  • Photon View

Photon Voice Recorderをつけると自動的に複数のComponentが付きます


Photonの同期

Photonの同期のScriptを作成します。


VoiceDemo

using System.Collections;

using System.Collections.Generic;
using UnityEngine;

public class VoiceDemo : MonoBehaviour {

private string cubeName = "cube";

void Start () {
PhotonNetwork.ConnectUsingSettings("0.1");
}

void OnJoinedLobby() {
RoomOptions options = new RoomOptions() {
isVisible = false,
maxPlayers = 4
};
PhotonNetwork.JoinOrCreateRoom("room",options,TypedLobby.Default);
}

void OnJoinedRoom() {
PhotonNetwork.Instantiate(
cubeName,
Vector3.zero,
Quaternion.identity,
0
);
}

}


あとはこれを空のGameObjectに付けて、終わりです。

Editorとビルドしたアプリで実行したり、Androidなどの端末にビルドしてテストしてみてください。


まとめ

今回やったことの簡単なまとめ

・ランタイムアプリケーションIDとVoiceアプリケーションIDの設定

・Instantiate用のGameObject作成

・Instantiate用のGameObjectにPhoton Voice ViewとPhoton Viewをつける

・Photonのロビーとルームに入るスクリプトを書く

意外と簡単にボイスチャットは出来ました。

Photonすごい。


参考記事

Photon RealtimeとPhoton Voice でマルチ通信

PUN Voiceデモ