MLAPI でテキストチャットっぽいのを作る (1) 【MLAPI】

MLAPI でテキストチャットっぽいのを作ってみます。途中過程です…。

前回記事

xrdnk.hateblo.jp

NetworkedList とサンプルスクリプト

適当にチャット用のサンプルスクリプトを作成。

using UnityEngine;
using System.Collections.Generic;
using MLAPI;
using MLAPI.NetworkedVar;
using MLAPI.NetworkedVar.Collections;
using UnityEngine.UI;
using UniRx;

public class Chat : NetworkedBehaviour
{
    private NetworkedList<string> ChatMessages = new NetworkedList<string>(new NetworkedVarSettings()
    {
        ReadPermission = NetworkedVarPermission.Everyone,
        WritePermission = NetworkedVarPermission.Everyone
    }, new List<string>());

    [SerializeField]
    private InputField _textChatField;
    [SerializeField]
    private Button _textChatButton;

    private void Start()
    {
        _textChatButton.OnClickAsObservable()
            .Where(_ => !string.IsNullOrWhiteSpace(_textChatField.text))
            .Subscribe(_ => AddChat($"{_textChatField.text}"));
    }

    private void AddChat(string textChat)
    {
        ChatMessages.Add(textChat);
        for (int i = ChatMessages.Count - 1; i >= 0; i--)
        {
            Debug.Log($"{ChatMessages[i]}");
        }
        Debug.DebugBreak();
    }
}

NetworkedList を利用しています。NetworkedVar の List版。
まんまMLAPIのDocに書かれていたスクリプトを利用しています。

github.com

やってみた

gyazo.com

Debug.Log上で一応テキストメッセージっぽいのが同期されているけど…。
まだまだ課題があるので引き続き取り組みます。