Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不同步SyncListStruct-Unity_C#_Networking_Unity3d - Fatal编程技术网

C# 不同步SyncListStruct-Unity

C# 不同步SyncListStruct-Unity,c#,networking,unity3d,C#,Networking,Unity3d,我有一个在SyncListStruct上用作类型的结构,然后我从中继承SyncListStruct,允许我有一个可以从客户端同步到服务器的结构列表。我遇到的问题是SyncListStruct子类的声明给了我以下错误: InvalidOperationException:不同步 System.Collections.Generic.Dictionary`2+枚举数[System.String,System.Int32]。VerifyState ()(在 /Users/builduser/build

我有一个在SyncListStruct上用作类型的结构,然后我从中继承SyncListStruct,允许我有一个可以从客户端同步到服务器的结构列表。我遇到的问题是SyncListStruct子类的声明给了我以下错误:

InvalidOperationException:不同步 System.Collections.Generic.Dictionary`2+枚举数[System.String,System.Int32]。VerifyState ()(在 /Users/builduser/buildslave/mono运行时和classlibs/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:912) System.Collections.Generic.Dictionary`2+枚举数[System.String,System.Int32]。MoveNext ()(在 /Users/builduser/buildslave/mono运行时和classlibs/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:835) System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.String,System.Int32]。MoveNext ()(在 /Users/builduser/buildslave/mono运行时和classlibs/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:1028) UnityEngine.Networking.NetworkCRC.Dump (UnityEngine.Networking.NetworkSystem.CRCMessageEntry[]远程脚本) (在 C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkCRC.cs:106) UnityEngine.Networking.NetworkCRC.ValidateInternal (UnityEngine.Networking.NetworkSystem.CRCMessageEntry[]远程脚本, Int32数字通道(at) C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkCRC.cs:75) UnityEngine.Networking.NetworkCRC.Validate (UnityEngine.Networking.NetworkSystem.CRCMessageEntry[]脚本,Int32 数字频道(at) C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkCRC.cs:66) UnityEngine.Networking.NetworkClient.OnCRC (UnityEngine.Networking.NetworkMessage netMsg)(位于 C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkClient.cs:801) UnityEngine.Networking.NetworkConnection.HandlerReader (UnityEngine.Networking.NetworkReader阅读器,Int32 receivedSize, Int32信道ID)(at C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkConnection.cs:430) UnityEngine.Networking.NetworkConnection.HandleBytes(System.Byte[] 缓冲区,Int32接收大小,Int32通道ID)(在 C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkConnection.cs:386) UnityEngine.Networking.NetworkConnection.TransportRecieve (System.Byte[]字节,Int32 numBytes,Int32 channelId)(在 C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkConnection.cs:536) UnityEngine.Networking.NetworkClient.Update()(位于 C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkClient.cs:648) UnityEngine.Networking.NetworkClient.UpdateClients()(位于 C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkClient.cs:861) UnityEngine.Networking.NetworkIdentity.UNetStaticUpdate()(位于 C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkIdentity.cs:1055)

我的代码:

    public class TestClass: NetworkBehaviour
    { 
        public struct PlayerShootingStats
        {
            public string name;
            public int totalShots;
            public int onTargetShots;
        }

        public class SyncListPlayerShootingStats : SyncListStruct<PlayerShootingStats>{}

        private SyncListPlayerShootingStats playersShootingStats; // if I comment out this line I do not get an error

        void Awake()
        {
            playersShootingStats = new SyncListPlayerShootingStats();
            DontDestroyOnLoad(gameObject);
        }
    }
public类TestClass:networkbehavior
{ 
public struct PlayerShootingStats
{
公共字符串名称;
公众照片;
公共国际目标摄影;
}
公共类SyncListPlayerShotingStats:SyncListStruct{}
private SyncListPlayerShootingStats playersShootingStats;//如果我注释掉这一行,我不会得到错误
无效唤醒()
{
PlayerShootingStats=新的SyncListPlayerShootingStats();
DontDestroyOnLoad(游戏对象);
}
}

提前感谢您的帮助。

您使用的是哪个Unity版本?如果删除其他脚本并仅附加上面的脚本,会发生什么情况?你还知道错误吗?嗨。我使用的是Unity 5.3.2f1。这是场景中附加到游戏对象的唯一脚本。然后在另一个脚本中,我使用
GameObject.FindObject()
查找游戏对象,并调用一些方法,实际增加结构上的int。目前,我已经注释了所有内容,试图找出错误。上述代码中仍然存在错误。我还没有找到任何解决方案。大约有10个关于这个问题的错误报告,你的代码在我的机器上运行良好。我正在使用5.4测试版,我想它是固定的版本,因为我没有得到任何错误。下载5.4beta版