使用gamesparks RTDataBuilder发送字符串,IndexOutOfRange index大于128时出现Exception
Using gamesparks RTDataBuilder to send a string, IndexOutOfRange Exception occurs if the index is greater than 128
如果索引大于 128,则我们统一得到 "IndexOutOfRange Exception"。
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 或字符串?还是我哪里做错了。
Is there no way to send vector3 or string with a index greater than
128 ? Or am I doing something wrong
不,你没有做错任何事。这是 Gamesparks 施加的限制。
当调用 RTData.SetVector3
或类似函数时,它会调用 RTData.SetRTVector
函数,该函数设置一个名为 data
.
的局部数组变量
数组变量是这样声明的:
internal RTVal[] data = new RTVal[0x80];
0x80
converted 到十进制是 128
所以你只能使用 0
和 127
之间的值,就像你在 C# 中的任何数组中一样.
如果索引大于 128,则我们统一得到 "IndexOutOfRange Exception"。
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 或字符串?还是我哪里做错了。
Is there no way to send vector3 or string with a index greater than 128 ? Or am I doing something wrong
不,你没有做错任何事。这是 Gamesparks 施加的限制。
当调用 RTData.SetVector3
或类似函数时,它会调用 RTData.SetRTVector
函数,该函数设置一个名为 data
.
数组变量是这样声明的:
internal RTVal[] data = new RTVal[0x80];
0x80
converted 到十进制是 128
所以你只能使用 0
和 127
之间的值,就像你在 C# 中的任何数组中一样.