【问题标题】:Having issue with Unity 3D Mirror API: Declaring a struct incorrectlyUnity 3D Mirror API 出现问题:错误地声明结构
【发布时间】:2022-08-07 17:23:27
【问题描述】:

我在 Unity C# 中有以下代码。我收到以下两个错误

类型 \'Notification\' 必须是不可为空的值类型,才能将其用作泛型类型或方法 \'NetworkServer.SendToAll(T, int, bool)\' 中的参数 \'T\'

参数 1:无法从 \'method group\' 转换为 \'Action\'

消息测试.cs

using Mirror;
using TMPro;
using UnityEngine;

namespace DapperDino.Mirror.Tutorials.NetworkMessages
{
public struct Notification : NetworkMessage
{
public string content;
}

public class MessagesTest : MonoBehaviour
{
    [SerializeField] private TMP_Text notificationsText = null;

    private void Start()
    {
        if (!NetworkClient.active) { return; }

        NetworkClient.RegisterHandler<Notification>(OnNotification);
    }

    private void OnNotification(NetworkConnection conn, Notification msg)
    {
        notificationsText.text += $\"\\n{msg.content}\";
    }
}

}

我不认为我应该将通知声明为类型结构,但即使将其保留为类也不会产生可在 Unity 3D 中运行的代码。知道我将如何解决这个问题吗?

谢谢

    标签: unity3d unity3d-mirror


    【解决方案1】:

    您的处理程序签名与操作不匹配。从处理方法中删除NetworkConnection 参数。

    private void OnNotification(Notification msg)
    {
        notificationsText.text += $"\n{msg.content}";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-28
      • 2019-09-27
      • 2016-09-10
      相关资源
      最近更新 更多