首页 > 解决方案 > Vector3 [] Unity 没有填满值

问题描述

我正在尝试在 Unity C# 脚本中读取 JSON 文件并用这些值填充 Vector3[]。

JSON文件如下:

    "offsets": [
    [0.01,0.02,0.03],
    [0.04,0.05,0.06]
    ] 

我正在使用以下代码。

    SimpleJSON.JSONNode offset_node = SimpleJSON.JSON.Parse(filePath);
    Vector3[] offsets = new Vector3[2];
    for (int i = 0; i < offset_node["offsets"].Count; i++)
    {
        offsets[i] = new Vector3(offset_node["offsets"][i][0].AsFloat, offset_node["offsets"][i][1].AsFloat, offset_node["offsets"][i][2].AsFloat);
    }

    Debug.Log(offsets[0]);
    Debug.Log(offset_node["offsets"][0][0].AsFloat);

但调试消息显示:

    (0.0, 0.0, 0.0)
    0.01

有人会指出为什么第一条日志消息没有显示为 (0.01, 0.02, 0.03)?

谢谢!

标签: c#unity3d

解决方案


Unity 的 Vector3.ToString 方法被隐式调用,它将 Vector3 中的值四舍五入到小数点右侧的 1 个小数位。

下面显示了正确的结果。

    Debug.Log(offsets[0].ToString("F2")); // round off to 2 decimal places

推荐阅读