1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Unity】PUN2でキック実装

Posted at

#はじめに
キック機能について書いてあるところが少ない気がしたので。
まあ簡単すぎて書くほどのことでもないと判断されているのかもしれないし、私が情弱なだけかもしれないですが。
メモとして残します。
ちなみにキックとは、オンラインゲームでプレイヤーをルームから追い出す機能です。

###作業環境

Unity2019.1.8f1
PUN2.13

##対象プレイヤーをキックする

kick.cs
PhotonNetwork.CloseConnection(Player kickPlayer);

PhotonNetwork.CloseConnection関数の引数に、キックしたいプレイヤーを渡すだけです。
ただし、MasterClientのみが使用可能であることに注意。

##自分がキックされたことを知る
キックされたことを知る関数があるかどうかは、正直調べがついてないです。
ご存知の方が居ましたら教えてください。
というわけで、私はコールバック関数**OnLeftRoom()**にて、退室した際に通知を受け取ることで対処しています。
ただし、自分で退室したのか、ホストにキックされたのかはわからないので、自力でフラグ管理することで判断しました。

PhotonNetworkManager.cs
public class PhotonNetworkManager : MonoBehaviourPunCallbacks
{
	//
	//~接続処理とか。
	//

	//部屋から退室した時
	public override void OnLeftRoom()
	{
		if(PushBackKey)	//退室ボタンを押して自分で退室した
		{
			Debug.Log("退室しました。");
		}
		else
		{
			Debug.Log("キックされました。");	//退室ボタンを押していないが退室した→つまりキックされた
		}
	}
}

これで事足りるから準備されてない感じだったりするんですかね?

####参考
[【Unity】僕もPhotonを使いたい #05 ルームからの流れ]
(https://www.urablog.xyz/entry/2016/09/17/234255#ルームにいる状態からの流れ)
[【Unity】2. Photonに接続してロビーに入る【PUN2】]
(https://gamefbb.com/%e3%80%90unity%e3%80%91photon%e3%81%ab%e6%8e%a5%e7%b6%9a%e3%81%97%e3%81%a6%e3%83%ad%e3%83%93%e3%83%bc%e3%81%ab%e5%85%a5%e3%82%8b%e3%80%90pun2%e3%80%91/)

#最後に
いざ書いてみたら、たしかに書くことが少なかったですね。
でもメモしてないと後々また探しそうなので・・・。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?