パスワードルーム

using SoftGear.Strix.Client.Core.Model.Manager.Filter;
using SoftGear.Strix.Unity.Runtime;
using UnityEngine;
using UnityEngine.Events;
using System.Linq;

public class StrixEnterPasswordRoom : MonoBehaviour
{
    // ルームに参加可能な最大人数
    public int Capacity = 4;

    // ルーム名
    public string RoomName = "New Room";

    // パスワード
    public string Password = "AAA";

    // ルーム入室完了時イベント
    public UnityEvent onRoomEntered;

    // ルーム入室失敗時イベント
    public UnityEvent onRoomEnterFailed;

    public void EnterRoom()
    {
        ICondition condition = new Equals(new Field("isPasswordProtected"), new Value((bool)true));

        RoomProperties roomProperties = new RoomProperties
        {
            capacity = Capacity,
            name = RoomName,
            password = Password
        };

        RoomMemberProperties memberProperties = new RoomMemberProperties
        {
            name = StrixNetwork.instance.playerName
        };

        StrixNetwork.instance.SearchJoinableRoom(condition, null, 10, 0,
            searchResult => {
                var roomInfo = searchResult.roomInfoCollection.FirstOrDefault();
                if (roomInfo != null)
                {
                    StrixNetwork.instance.JoinRoom(
                        args: new RoomJoinArgs
                        {
                            host = roomInfo.host,
                            port = roomInfo.port,
                            protocol = roomInfo.protocol,
                            roomId = roomInfo.roomId,
                            password = Password,
                            memberProperties = memberProperties
                        },
                        handler: joinResult => onRoomEntered.Invoke(),
                        failureHandler: joinError => CreateRoom(roomProperties, memberProperties)
                    );
                }
                else
                {
                    CreateRoom(roomProperties, memberProperties);
                }
            },
        searchError => CreateRoom(roomProperties, memberProperties)
        );
    }

    private void CreateRoom(RoomProperties roomProperties, RoomMemberProperties memberProperties)
    {
        StrixNetwork.instance.CreateRoom(roomProperties, memberProperties, args => {
            onRoomEntered.Invoke();
        }, args => {
            onRoomEnterFailed.Invoke();
        });
    }
}

上記のスクリプトを作った後 「StrixConnectUI」の中の「StrixConnectPanel」のInspectorの StrixConnectGUIのOn Connectを上記のスクリプトのEnterRoomにします

これでパスワードのかかったルームの制作が可能です

戻る