단비트 엔진으로 유저 이름 검색과 일치하는 기능 만들기
따라서 이것은 유저 검색 기능을 설치할 때의 필기다.
환경은 다음과 같다.
win10 64bit, Unity2018.3.3f1, Monobit Unity Networking2.0 v2.6
한 일
클라이언트 A
1. 서버 연결을 위해 유저 이름을 입력
2. 방 이름을 입력하여 방을 만들고 방으로 들어가기
클라이언트 B 씨
1. 서버 연결을 위해 유저 이름을 입력
2. 유저 이름을 입력하여 유저 검색
3. 검색 결과 목록에서 플레이어를 선택하여 방에 들어가기
B 씨는 A 씨가 있는 방을 조사하여 입실 처리를 했다.
// プレイヤー名.
private string playerName = "";
/** プレイヤー名入力処理 */
// プレイヤー名を設定
MonobitNetwork.player.name = playerName;
// サーバに接続
MonobitNetwork.ConnectServer("v1.0");
유저 이름을 입력하고 서버에 연결합니다.유저 검색 기능의 조건은 서버에 연결하는 것이므로 주의해야 한다.
단비트 엔진이 검색 처리를 실행할 때 보기
MonobitNetwork.player.name
.유저의 이름을 잊지 않도록 주의하세요.
// プレイヤー検索名.
private string searchPlayerName = "";
// プレイヤー検索処理.
void OnGUI_SearchPlayer()
{
GUILayout.Label("Search Players", new GUIStyle() { fontStyle = FontStyle.Bold });
GUILayout.BeginHorizontal();
GUILayout.Label("Player Name: ");
searchPlayerName = GUILayout.TextField(searchPlayerName, GUILayout.Width(150));
if(GUILayout.Button("Seatch", GUILayout.Width(150)))
{
// プレイヤー名で検索する
if(!string.IsNullOrEmpty(searchPlayerName))
{
// コルーチンで実行
StartCoroutine("SearchPlayer");
}
}
GUILayout.EndHorizontal();
}
유저 이름을 입력하고 "Search"단추를 누르면 검색 처리에 들어갑니다.
유저 검색은 상황에 따라 시간
StartCoroutine()メソッド
이 필요하기 때문이다.코르크 단백질 참조 링크
// プレイヤー検索(コルーチン).
private IEnumerator SearchPlayer()
{
isSearchPlayer = false;
// プレイヤー検索リスト作成
string[] searchNameList = searchPlayerName.Split(' ');
// 検索
MonobitNetwork.SearchPlayers(searchNameList);
// 見つかるまでループ
while(!isSearchPlayer)
{
yield return null;
}
}
검색 필드에 공백 구분자로 이름을 입력하여 여러 이름을 검색할 수 있습니다.string[] searchNameList = searchPlayerName.Split(' ');
유저 명칭 그룹을 생성합니다.이 그룹을
MonobitNetwork.SearchPlayers();
에 전송하여 검색합니다.또한 콜틴에게 처리를 맡기고 유저를 찾을 때까지 내부를 계속 순환한다.
// プレイヤー検索結果が返ってきたときのコールバック.
public void OnUpdatedSearchPlayers()
{
isSearchPlayer = true;
}
검색이 끝나면 OnUpdatedSearchPlayersコールバック
호출되기 때문에 로고를 진짜로 설정하고 콜딘의 순환을 통과합니다.// 検索結果が得られたかどうか.
private bool isSearchPlayer = false;
// プレイヤー検索結果の表示.
void OnGUI_SearchPlayerResult()
{
// 検索中なら以下無視
if(!isSearchPlayer)
{
return;
}
GUILayout.Label("Search Result", new GUIStyle() { fontStyle = FontStyle.Bold });
foreach(SearchPlayerData player in MonobitNetwork.SearchPlayerList)
{
if(!player.connect)
{
GUILayout.Label(player.playerName + " is offline.");
}
else if(!player.inRoom)
{
GUILayout.Label(player.playerName + " is not in room.");
}
else
{
GUILayout.Label(player.playerName + " is in " + player.roomName);
// 参加する
if (GUILayout.Button("Join", GUILayout.Width(150)))
{
MonobitNetwork.JoinRoom(player.roomName);
}
}
}
}
마지막으로 결과를 가져오고 표시합니다.실행
MonobitNetwork.SearchPlayers()
후 검색OnUpdatedSearchPlayers()コールバック
을 완료하면 결과는 SearchPlayerData型
의MonobitNetwork.SearchPlayerListプロパティ
에 저장됩니다.foreach로 목록에서 데이터를 꺼내 하나하나 검사합니다.( 참조 링크 )
참조 링크
Reference
이 문제에 관하여(단비트 엔진으로 유저 이름 검색과 일치하는 기능 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nisoka/items/65ef73a8584220899d5b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)