C# 使用gamesparks RTDataBuilder发送字符串,如果索引大于128,则会发生IndexOutfrange异常

C# 使用gamesparks RTDataBuilder发送字符串,如果索引大于128,则会发生IndexOutfrange异常,c#,unity3d,gamesparks,C#,Unity3d,Gamesparks,如果索引大于128,则我们得到unity中的“IndexOutfrangeException” using (RTData data = RTData.Get()) { data.SetVector3(129, v); // Exception here data.SetString(129, "Checking"); // Exception here gameSparksRTUnity.SendData(4, GameSparksRT.Delive

如果索引大于128,则我们得到unity中的“IndexOutfrangeException”

using (RTData data = RTData.Get())
  {
      data.SetVector3(129, v); // Exception here
      data.SetString(129, "Checking");   // Exception here
      gameSparksRTUnity.SendData(4, GameSparksRT.DeliveryIntent.RELIABLE, data);
}
是否无法发送索引大于128的vector3或字符串?还是我做错了什么

是否无法发送索引大于的vector3或字符串 128 ? 还是我做错了什么

不,你没有做错任何事。这是Gamesparks强加的限制

调用
RTData.SetVector3
或类似函数时,它将调用
RTData.SetRTVector
函数,该函数设置名为
data
的局部数组变量

以下是该数组变量的声明方式:

internal RTVal[] data = new RTVal[0x80];

0x80
到十进制是
128
,因此只能使用
0
127
之间的值,就像在C#中的任何数组中一样。

谢谢。所以我不可能一次发送超过128个向量。不管怎么说,这似乎是不可能的。那东西是硬编码的。也许他们选择128是有原因的。我不知道,但你不能。顺便说一下,我认为
0
128
就足够了。如果不够,那么使用json序列化
Vector3
的数组,然后使用
SetString
发送。是的,这就是我最初所做的。但是它占用了太多的字节。。。无论如何,谢谢你的帮助