gpt4 book ai didi

c# - Unity C# 将float转换为字节数组并用node js读取

转载 作者:太空宇宙 更新时间:2023-11-04 00:39:10 27 4
gpt4 key购买 nike

有人可以解释一下如何使用 c# 将 float(Vector3.x) 转换为字节数组并使用 Node js 对其进行解码吗?

我在网上看到Vector3.x是一个system.single数据类型并且使用4个字节(32位)。我使用 BitConverter 将其转换为字节数组。对于 Nodejs,我使用 readFloatBE()。

我不知道我做错了什么,但使用 console.log() 时,我经常得到 Node js 的错误结果。

统一csharp:

     public static int FloatToBit(int offset, ref byte[] data, Single number)
{
byte[] byteArray = System.BitConverter.GetBytes(number);
for (int i = 0;i<4;i++)
{
data[offset + i] = byteArray[i];
}

return 4;
}

Node js

     readFloat: function (offset, data) {
var b = new Buffer(4);
for (var i = 0; i < 4; i++) {
b[i] = data[offset + i];
}
return data.readFloatLE(b, 0);
},

如果我发送-2.5,统一输出为:0 0 32 191,-1统一输出为:0 0 128 192

带有 readFloatLE 的 Nodejs 输出:3.60133705331478e-43

最佳答案

这是一组从前到后的工作数据。

C#:

Single fl = 2.5F;
var bytes = System.BitConverter.GetBytes(fl);
var str = BitConverter.ToString(bytes); // 00-00-20-40

Node.js:

let buffer = Buffer.from([ 0x00, 0x00, 0x20, 0x40 ]);
let float = buffer.readFloatLE(); // 2.5

请注意我在 Nodejs 中创建缓冲区的方法,尤其是(也使用 -1 进行了测试和验证,但为了简洁起见,我保留了代码)。

关于c# - Unity C# 将float转换为字节数组并用node js读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37602160/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com