Files
webRtc/Assets/Samples/Unity Render Streaming/3.1.0-exp.9/Example/Multiplay/MultiplayChannel.cs
zhangzheng 1bb1fee5cc 111
2026-02-27 18:35:40 +08:00

55 lines
1.2 KiB
C#

using System;
using UnityEngine;
using UnityEngine.Events;
namespace Unity.RenderStreaming.Samples
{
enum ActionType
{
ChangeLabel = 0,
}
[Serializable]
class Message
{
public ActionType type;
public string argument;
}
/// <summary>
///
/// </summary>
[Serializable]
class ChangeLabelEvent : UnityEvent<string> { };
/// <summary>
///
/// </summary>
class MultiplayChannel : DataChannelBase
{
public ChangeLabelEvent OnChangeLabel;
protected override void OnMessage(byte[] bytes)
{
string str = System.Text.Encoding.UTF8.GetString(bytes);
var message = JsonUtility.FromJson<Message>(str);
switch (message.type)
{
case ActionType.ChangeLabel:
OnChangeLabel?.Invoke(message.argument);
return;
}
}
public void ChangeLabel(string text)
{
var msg = new Message
{
type = ActionType.ChangeLabel,
argument = text
};
Send(JsonUtility.ToJson(msg));
}
}
}