[Photon Unity Network] 방의 사용자 정의 속성을 살짝 설명해 주세요.
문장 환경
Unity 2019.1.0f2
Photon Unity Network(1.97)
방의 사용자 정의 속성은 무엇입니까?
요컨대, 이것은 방 안에서 공유할 수 있는 해시 시계다.
(주의: 해시 테이블은 C#에서 말하는 Dictionary)
사용 방법
RoomPropertyTest.csusing System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RoomPropertyTest : MonoBehaviour
{
// ハッシュテーブルを宣言
ExitGames.Client.Photon.Hashtable roomHash;
// ローカルで使っているハッシュをルームにセット
public void SetRoomProperty()
{
// ハッシュに要素を追加(同じ名前があるとエラーになる)
roomHash.Add("hoge", 0);
// ハッシュに要素を追加、既に同じ名前のキーがあれば上書き
roomHash["hoge"] = 1;
// ルームにハッシュを送信する
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// ルームのハッシュが送信されたら、送信されたハッシュが入ってくる(Photonの機能で戻り値の型、関数名、引数を一致させると勝手に呼ばれる)
public void OnPhotonCustomRoomPropertiesChanged(ExitGames.Client.Photon.Hashtable changedRoomHash)
{
// 変更されたハッシュを受け取る
roomHash = changedRoomHash;
}
}
설명 // ハッシュテーブルを宣言
ExitGames.Client.Photon.Hashtable roomHash;
[Exit Games. Client. Photon] C#에 원래 있는 Hashtable과 구별하기 위해서입니다.public void SetRoomProperty()
{
// ハッシュに要素を追加(同じ名前があるとエラーになる)
roomHash.Add("hoge", 0);
// ハッシュに要素を追加、既に同じ名前のキーがあれば上書き
roomHash["hoge"] = 1;
// ルームにハッシュを送信する
PhotonNetwork.room.SetCustomProperties(roomHash);
}
다음은 SetRoomProperty 함수입니다. 이렇게 합시다.
이 Hashtable은 Dictionary 클래스를 완전히 계승했기 때문에 사용 방법과 Dictionary는 아무런 변화가 없습니다.
유일하게 신기한 게 이 부분인가요?// ルームにハッシュを送信する
PhotonNetwork.room.SetCustomProperties(roomHash);
나는 여기서 Photon의 기능을 사용한다.
로컬에서 내용을 변경한 Hashtable을 현재 자신의 방으로 보냅니다.// ルームのハッシュが送信されたら、送信されたハッシュが入ってくる(Photonの機能で戻り値の型、関数名、引数を一致させると勝手に呼ばれる)
public void OnPhotonCustomRoomPropertiesChanged(ExitGames.Client.Photon.Hashtable changedRoomHash)
{
// 変更されたハッシュを受け取る
roomHash = changedRoomHash;
}
마지막으로 OnPhoton CustomRoomPropertiesChanged 함수입니다.
이 함수는 Photon이 준비한 함수입니다. 주석과 같이 반환 값의 유형, 함수 이름, 매개 변수를 일치시킨다고 합니다.
유니티의 스크립트 시간과는 조금 다르지만 외관상으로는 똑같다
부르는 타이밍은 방에 새 산열을 보낼 때다.
다음은 절차입니다.
주의사항
방 속성은 방으로 설정된 속성이기 때문에 방에 들어간 후에 설정하지 않으면 오류가 발생할 수 있습니다.
또한 PunTurnManager는 Photon의 유턴을 제어하는 기능이지만 제어 방법은 방 속성을 사용하기 때문에 새 값을 방 속성으로 설정하려면 PunTurnManager 클래스를 확장해야 합니다.공식 참조에도 적혀있다고 생각해요.
값을 다시 설정해야 한다면 혼자서 회전 제어를 만드는 것이 비교적 빠를 수 있다.
포장류
매번 속성을 사용할 때마다 긴 함수를 써야 하는데 솔직히 힘들기 때문에 포장류를 만드는 것을 추천합니다.
제가 먼저 예를 들도록 허락해 주십시오.
PhotonProperty.csusing System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PhotonProperty : MonoBehaviour
{
// ルームプロパティ用のハッシュ(Dictionary)
private static ExitGames.Client.Photon.Hashtable roomHash;
private void Start()
{
// ルームプロパティ用のこのプレイヤーのハッシュ(Dictionary)を生成
roomHash = new ExitGames.Client.Photon.Hashtable();
}
// ルームプロパティ ===========================================
// RoomPropertyが更新された時に呼ばれる
public void OnPhotonCustomRoomPropertiesChanged(ExitGames.Client.Photon.Hashtable changedRoomHash)
{
// 更新したプレイヤーが保持しているハッシュを入れる
roomHash = changedRoomHash;
}
// ルームプロパティのセット -----------------------------------
// キーが既に存在していたら上書き
public static void SetRoomProperty<T>(string key, T value)
{
roomHash[key] = value;
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// 一次元配列用
public static void SetRoomPropertyArray<T>(string key, T[] value)
{
// 要素数256を超える場合はここをshortなどに変更してください
for(byte i = 0; i < value.Length; i++)
{
roomHash[key + i] = value[i];
}
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
public static void SetRoomPropertyArray<T>(string key, byte arrayNum, T value)
{
roomHash[key + arrayNum] = value;
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// キーが既に存在している場合エラーが出る
public static void SetRoomPropertyAdd<T>(string key, T value)
{
roomHash.Add(key, value);
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// ルームプロパティをゲット -----------------------------------
public static T GetRoomProperty<T>(string key)
{
// outを受け取るための変数を用意
object value;
// 指定したキーがあれば返す
if (roomHash.TryGetValue(key, out value))
{
// ボックス化解除
return (T)value;
}
// 無かったらnullが返る
return (T)value;
}
// 一次元配列用
public static T GetRoomPropertyArray<T>(string key, byte arrayNum)
{
// outを受け取るための変数を用意
object value;
// 指定したキーがあれば返す
if(roomHash.TryGetValue(key + arrayNum, out value))
{
// ボックス化解除
return (T)value;
}
return (T)value;
}
// ============================================================
}
다음은 각 함수의 사용 방법을 총결하였다. // 値の設定方法
// ===============================================================
// hogeというキーで0をセット
PhotonProperty.SetRoomProperty("hoge", 0);
// 一次元配列を作成
int[] array = { 0, 1, 2, 3 };
// arrayというキーでarray配列をセット
PhotonProperty.SetRoomPropertyArray("array", array);
// ===============================================================
// 値の取得方法
// ===============================================================
// 戻り値の型をint型に指定してキーを入力
int hoge = PhotonProperty.GetRoomProperty<int>("hoge");
// 戻り値の型をint型に指定してキーと取得したい要素番号を入力
int fuga = PhotonProperty.GetRoomPropertyArray<int>("array", 0);
// ===============================================================
가능하면 사용하세요.
웹 페이지 정보
[Unity] 저도 Photon #11 사용자 정의 속성을 사용하고 싶어요.
Reference
이 문제에 관하여([Photon Unity Network] 방의 사용자 정의 속성을 살짝 설명해 주세요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suittizihou/items/cefa317ed54319fe8b2c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
요컨대, 이것은 방 안에서 공유할 수 있는 해시 시계다.
(주의: 해시 테이블은 C#에서 말하는 Dictionary)
사용 방법
RoomPropertyTest.csusing System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RoomPropertyTest : MonoBehaviour
{
// ハッシュテーブルを宣言
ExitGames.Client.Photon.Hashtable roomHash;
// ローカルで使っているハッシュをルームにセット
public void SetRoomProperty()
{
// ハッシュに要素を追加(同じ名前があるとエラーになる)
roomHash.Add("hoge", 0);
// ハッシュに要素を追加、既に同じ名前のキーがあれば上書き
roomHash["hoge"] = 1;
// ルームにハッシュを送信する
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// ルームのハッシュが送信されたら、送信されたハッシュが入ってくる(Photonの機能で戻り値の型、関数名、引数を一致させると勝手に呼ばれる)
public void OnPhotonCustomRoomPropertiesChanged(ExitGames.Client.Photon.Hashtable changedRoomHash)
{
// 変更されたハッシュを受け取る
roomHash = changedRoomHash;
}
}
설명 // ハッシュテーブルを宣言
ExitGames.Client.Photon.Hashtable roomHash;
[Exit Games. Client. Photon] C#에 원래 있는 Hashtable과 구별하기 위해서입니다.public void SetRoomProperty()
{
// ハッシュに要素を追加(同じ名前があるとエラーになる)
roomHash.Add("hoge", 0);
// ハッシュに要素を追加、既に同じ名前のキーがあれば上書き
roomHash["hoge"] = 1;
// ルームにハッシュを送信する
PhotonNetwork.room.SetCustomProperties(roomHash);
}
다음은 SetRoomProperty 함수입니다. 이렇게 합시다.
이 Hashtable은 Dictionary 클래스를 완전히 계승했기 때문에 사용 방법과 Dictionary는 아무런 변화가 없습니다.
유일하게 신기한 게 이 부분인가요?// ルームにハッシュを送信する
PhotonNetwork.room.SetCustomProperties(roomHash);
나는 여기서 Photon의 기능을 사용한다.
로컬에서 내용을 변경한 Hashtable을 현재 자신의 방으로 보냅니다.// ルームのハッシュが送信されたら、送信されたハッシュが入ってくる(Photonの機能で戻り値の型、関数名、引数を一致させると勝手に呼ばれる)
public void OnPhotonCustomRoomPropertiesChanged(ExitGames.Client.Photon.Hashtable changedRoomHash)
{
// 変更されたハッシュを受け取る
roomHash = changedRoomHash;
}
마지막으로 OnPhoton CustomRoomPropertiesChanged 함수입니다.
이 함수는 Photon이 준비한 함수입니다. 주석과 같이 반환 값의 유형, 함수 이름, 매개 변수를 일치시킨다고 합니다.
유니티의 스크립트 시간과는 조금 다르지만 외관상으로는 똑같다
부르는 타이밍은 방에 새 산열을 보낼 때다.
다음은 절차입니다.
주의사항
방 속성은 방으로 설정된 속성이기 때문에 방에 들어간 후에 설정하지 않으면 오류가 발생할 수 있습니다.
또한 PunTurnManager는 Photon의 유턴을 제어하는 기능이지만 제어 방법은 방 속성을 사용하기 때문에 새 값을 방 속성으로 설정하려면 PunTurnManager 클래스를 확장해야 합니다.공식 참조에도 적혀있다고 생각해요.
값을 다시 설정해야 한다면 혼자서 회전 제어를 만드는 것이 비교적 빠를 수 있다.
포장류
매번 속성을 사용할 때마다 긴 함수를 써야 하는데 솔직히 힘들기 때문에 포장류를 만드는 것을 추천합니다.
제가 먼저 예를 들도록 허락해 주십시오.
PhotonProperty.csusing System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PhotonProperty : MonoBehaviour
{
// ルームプロパティ用のハッシュ(Dictionary)
private static ExitGames.Client.Photon.Hashtable roomHash;
private void Start()
{
// ルームプロパティ用のこのプレイヤーのハッシュ(Dictionary)を生成
roomHash = new ExitGames.Client.Photon.Hashtable();
}
// ルームプロパティ ===========================================
// RoomPropertyが更新された時に呼ばれる
public void OnPhotonCustomRoomPropertiesChanged(ExitGames.Client.Photon.Hashtable changedRoomHash)
{
// 更新したプレイヤーが保持しているハッシュを入れる
roomHash = changedRoomHash;
}
// ルームプロパティのセット -----------------------------------
// キーが既に存在していたら上書き
public static void SetRoomProperty<T>(string key, T value)
{
roomHash[key] = value;
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// 一次元配列用
public static void SetRoomPropertyArray<T>(string key, T[] value)
{
// 要素数256を超える場合はここをshortなどに変更してください
for(byte i = 0; i < value.Length; i++)
{
roomHash[key + i] = value[i];
}
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
public static void SetRoomPropertyArray<T>(string key, byte arrayNum, T value)
{
roomHash[key + arrayNum] = value;
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// キーが既に存在している場合エラーが出る
public static void SetRoomPropertyAdd<T>(string key, T value)
{
roomHash.Add(key, value);
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// ルームプロパティをゲット -----------------------------------
public static T GetRoomProperty<T>(string key)
{
// outを受け取るための変数を用意
object value;
// 指定したキーがあれば返す
if (roomHash.TryGetValue(key, out value))
{
// ボックス化解除
return (T)value;
}
// 無かったらnullが返る
return (T)value;
}
// 一次元配列用
public static T GetRoomPropertyArray<T>(string key, byte arrayNum)
{
// outを受け取るための変数を用意
object value;
// 指定したキーがあれば返す
if(roomHash.TryGetValue(key + arrayNum, out value))
{
// ボックス化解除
return (T)value;
}
return (T)value;
}
// ============================================================
}
다음은 각 함수의 사용 방법을 총결하였다. // 値の設定方法
// ===============================================================
// hogeというキーで0をセット
PhotonProperty.SetRoomProperty("hoge", 0);
// 一次元配列を作成
int[] array = { 0, 1, 2, 3 };
// arrayというキーでarray配列をセット
PhotonProperty.SetRoomPropertyArray("array", array);
// ===============================================================
// 値の取得方法
// ===============================================================
// 戻り値の型をint型に指定してキーを入力
int hoge = PhotonProperty.GetRoomProperty<int>("hoge");
// 戻り値の型をint型に指定してキーと取得したい要素番号を入力
int fuga = PhotonProperty.GetRoomPropertyArray<int>("array", 0);
// ===============================================================
가능하면 사용하세요.
웹 페이지 정보
[Unity] 저도 Photon #11 사용자 정의 속성을 사용하고 싶어요.
Reference
이 문제에 관하여([Photon Unity Network] 방의 사용자 정의 속성을 살짝 설명해 주세요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suittizihou/items/cefa317ed54319fe8b2c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RoomPropertyTest : MonoBehaviour
{
// ハッシュテーブルを宣言
ExitGames.Client.Photon.Hashtable roomHash;
// ローカルで使っているハッシュをルームにセット
public void SetRoomProperty()
{
// ハッシュに要素を追加(同じ名前があるとエラーになる)
roomHash.Add("hoge", 0);
// ハッシュに要素を追加、既に同じ名前のキーがあれば上書き
roomHash["hoge"] = 1;
// ルームにハッシュを送信する
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// ルームのハッシュが送信されたら、送信されたハッシュが入ってくる(Photonの機能で戻り値の型、関数名、引数を一致させると勝手に呼ばれる)
public void OnPhotonCustomRoomPropertiesChanged(ExitGames.Client.Photon.Hashtable changedRoomHash)
{
// 変更されたハッシュを受け取る
roomHash = changedRoomHash;
}
}
// ハッシュテーブルを宣言
ExitGames.Client.Photon.Hashtable roomHash;
[Exit Games. Client. Photon] C#에 원래 있는 Hashtable과 구별하기 위해서입니다.public void SetRoomProperty()
{
// ハッシュに要素を追加(同じ名前があるとエラーになる)
roomHash.Add("hoge", 0);
// ハッシュに要素を追加、既に同じ名前のキーがあれば上書き
roomHash["hoge"] = 1;
// ルームにハッシュを送信する
PhotonNetwork.room.SetCustomProperties(roomHash);
}
다음은 SetRoomProperty 함수입니다. 이렇게 합시다.이 Hashtable은 Dictionary 클래스를 완전히 계승했기 때문에 사용 방법과 Dictionary는 아무런 변화가 없습니다.
유일하게 신기한 게 이 부분인가요?
// ルームにハッシュを送信する
PhotonNetwork.room.SetCustomProperties(roomHash);
나는 여기서 Photon의 기능을 사용한다.로컬에서 내용을 변경한 Hashtable을 현재 자신의 방으로 보냅니다.
// ルームのハッシュが送信されたら、送信されたハッシュが入ってくる(Photonの機能で戻り値の型、関数名、引数を一致させると勝手に呼ばれる)
public void OnPhotonCustomRoomPropertiesChanged(ExitGames.Client.Photon.Hashtable changedRoomHash)
{
// 変更されたハッシュを受け取る
roomHash = changedRoomHash;
}
마지막으로 OnPhoton CustomRoomPropertiesChanged 함수입니다.이 함수는 Photon이 준비한 함수입니다. 주석과 같이 반환 값의 유형, 함수 이름, 매개 변수를 일치시킨다고 합니다.
유니티의 스크립트 시간과는 조금 다르지만 외관상으로는 똑같다
부르는 타이밍은 방에 새 산열을 보낼 때다.
다음은 절차입니다.
주의사항
방 속성은 방으로 설정된 속성이기 때문에 방에 들어간 후에 설정하지 않으면 오류가 발생할 수 있습니다.
또한 PunTurnManager는 Photon의 유턴을 제어하는 기능이지만 제어 방법은 방 속성을 사용하기 때문에 새 값을 방 속성으로 설정하려면 PunTurnManager 클래스를 확장해야 합니다.공식 참조에도 적혀있다고 생각해요.
값을 다시 설정해야 한다면 혼자서 회전 제어를 만드는 것이 비교적 빠를 수 있다.
포장류
매번 속성을 사용할 때마다 긴 함수를 써야 하는데 솔직히 힘들기 때문에 포장류를 만드는 것을 추천합니다.
제가 먼저 예를 들도록 허락해 주십시오.
PhotonProperty.csusing System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PhotonProperty : MonoBehaviour
{
// ルームプロパティ用のハッシュ(Dictionary)
private static ExitGames.Client.Photon.Hashtable roomHash;
private void Start()
{
// ルームプロパティ用のこのプレイヤーのハッシュ(Dictionary)を生成
roomHash = new ExitGames.Client.Photon.Hashtable();
}
// ルームプロパティ ===========================================
// RoomPropertyが更新された時に呼ばれる
public void OnPhotonCustomRoomPropertiesChanged(ExitGames.Client.Photon.Hashtable changedRoomHash)
{
// 更新したプレイヤーが保持しているハッシュを入れる
roomHash = changedRoomHash;
}
// ルームプロパティのセット -----------------------------------
// キーが既に存在していたら上書き
public static void SetRoomProperty<T>(string key, T value)
{
roomHash[key] = value;
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// 一次元配列用
public static void SetRoomPropertyArray<T>(string key, T[] value)
{
// 要素数256を超える場合はここをshortなどに変更してください
for(byte i = 0; i < value.Length; i++)
{
roomHash[key + i] = value[i];
}
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
public static void SetRoomPropertyArray<T>(string key, byte arrayNum, T value)
{
roomHash[key + arrayNum] = value;
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// キーが既に存在している場合エラーが出る
public static void SetRoomPropertyAdd<T>(string key, T value)
{
roomHash.Add(key, value);
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// ルームプロパティをゲット -----------------------------------
public static T GetRoomProperty<T>(string key)
{
// outを受け取るための変数を用意
object value;
// 指定したキーがあれば返す
if (roomHash.TryGetValue(key, out value))
{
// ボックス化解除
return (T)value;
}
// 無かったらnullが返る
return (T)value;
}
// 一次元配列用
public static T GetRoomPropertyArray<T>(string key, byte arrayNum)
{
// outを受け取るための変数を用意
object value;
// 指定したキーがあれば返す
if(roomHash.TryGetValue(key + arrayNum, out value))
{
// ボックス化解除
return (T)value;
}
return (T)value;
}
// ============================================================
}
다음은 각 함수의 사용 방법을 총결하였다. // 値の設定方法
// ===============================================================
// hogeというキーで0をセット
PhotonProperty.SetRoomProperty("hoge", 0);
// 一次元配列を作成
int[] array = { 0, 1, 2, 3 };
// arrayというキーでarray配列をセット
PhotonProperty.SetRoomPropertyArray("array", array);
// ===============================================================
// 値の取得方法
// ===============================================================
// 戻り値の型をint型に指定してキーを入力
int hoge = PhotonProperty.GetRoomProperty<int>("hoge");
// 戻り値の型をint型に指定してキーと取得したい要素番号を入力
int fuga = PhotonProperty.GetRoomPropertyArray<int>("array", 0);
// ===============================================================
가능하면 사용하세요.
웹 페이지 정보
[Unity] 저도 Photon #11 사용자 정의 속성을 사용하고 싶어요.
Reference
이 문제에 관하여([Photon Unity Network] 방의 사용자 정의 속성을 살짝 설명해 주세요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suittizihou/items/cefa317ed54319fe8b2c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PhotonProperty : MonoBehaviour
{
// ルームプロパティ用のハッシュ(Dictionary)
private static ExitGames.Client.Photon.Hashtable roomHash;
private void Start()
{
// ルームプロパティ用のこのプレイヤーのハッシュ(Dictionary)を生成
roomHash = new ExitGames.Client.Photon.Hashtable();
}
// ルームプロパティ ===========================================
// RoomPropertyが更新された時に呼ばれる
public void OnPhotonCustomRoomPropertiesChanged(ExitGames.Client.Photon.Hashtable changedRoomHash)
{
// 更新したプレイヤーが保持しているハッシュを入れる
roomHash = changedRoomHash;
}
// ルームプロパティのセット -----------------------------------
// キーが既に存在していたら上書き
public static void SetRoomProperty<T>(string key, T value)
{
roomHash[key] = value;
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// 一次元配列用
public static void SetRoomPropertyArray<T>(string key, T[] value)
{
// 要素数256を超える場合はここをshortなどに変更してください
for(byte i = 0; i < value.Length; i++)
{
roomHash[key + i] = value[i];
}
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
public static void SetRoomPropertyArray<T>(string key, byte arrayNum, T value)
{
roomHash[key + arrayNum] = value;
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// キーが既に存在している場合エラーが出る
public static void SetRoomPropertyAdd<T>(string key, T value)
{
roomHash.Add(key, value);
// 自身のハッシュをネット上に送信
PhotonNetwork.room.SetCustomProperties(roomHash);
}
// ルームプロパティをゲット -----------------------------------
public static T GetRoomProperty<T>(string key)
{
// outを受け取るための変数を用意
object value;
// 指定したキーがあれば返す
if (roomHash.TryGetValue(key, out value))
{
// ボックス化解除
return (T)value;
}
// 無かったらnullが返る
return (T)value;
}
// 一次元配列用
public static T GetRoomPropertyArray<T>(string key, byte arrayNum)
{
// outを受け取るための変数を用意
object value;
// 指定したキーがあれば返す
if(roomHash.TryGetValue(key + arrayNum, out value))
{
// ボックス化解除
return (T)value;
}
return (T)value;
}
// ============================================================
}
// 値の設定方法
// ===============================================================
// hogeというキーで0をセット
PhotonProperty.SetRoomProperty("hoge", 0);
// 一次元配列を作成
int[] array = { 0, 1, 2, 3 };
// arrayというキーでarray配列をセット
PhotonProperty.SetRoomPropertyArray("array", array);
// ===============================================================
// 値の取得方法
// ===============================================================
// 戻り値の型をint型に指定してキーを入力
int hoge = PhotonProperty.GetRoomProperty<int>("hoge");
// 戻り値の型をint型に指定してキーと取得したい要素番号を入力
int fuga = PhotonProperty.GetRoomPropertyArray<int>("array", 0);
// ===============================================================
[Unity] 저도 Photon #11 사용자 정의 속성을 사용하고 싶어요.
Reference
이 문제에 관하여([Photon Unity Network] 방의 사용자 정의 속성을 살짝 설명해 주세요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/suittizihou/items/cefa317ed54319fe8b2c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)