Nino icon indicating copy to clipboard operation
Nino copied to clipboard

反序列化错误

Open liujunfan opened this issue 2 years ago • 11 comments

Uploading [24KY~A47V_O6}X1()W`(]M.png…

liujunfan avatar Nov 20 '23 07:11 liujunfan

U(67% )P8CU@CTID5M8U5HG

liujunfan avatar Nov 20 '23 07:11 liujunfan

啥信息都没提供光截个这图我咋知道你遇到啥问题。

JasonXuDeveloper avatar Nov 20 '23 07:11 JasonXuDeveloper

24KY~A47V_O6}X1()W`( M

liujunfan avatar Nov 20 '23 07:11 liujunfan

Vector2Int 也截图啊

JasonXuDeveloper avatar Nov 20 '23 07:11 JasonXuDeveloper

别用改造过的代码,用原代码先试试

JasonXuDeveloper avatar Nov 20 '23 07:11 JasonXuDeveloper

Vector2也报错。试过了 Vector2Int 是unity自带的

liujunfan avatar Nov 20 '23 07:11 liujunfan

7GT}UR5OZLO({B03%BBJLDX int 没问题, unity 结构报错

liujunfan avatar Nov 20 '23 07:11 liujunfan

别发截图了,请直接把代码粘过来

JasonXuDeveloper avatar Nov 20 '23 07:11 JasonXuDeveloper

写个能复现的案例

JasonXuDeveloper avatar Nov 20 '23 07:11 JasonXuDeveloper

using Vector3 = System.Numerics.Vector3;

[NinoSerialize]
public partial class TestB
{
    public Dictionary<int, TestC> TestCs;
}

[NinoSerialize]
public partial class TestC
{
    public Vector3 v2;
    public Vector3[] v2s;
}
public class Test : MonoBehaviour
{
    public void Awake()
    {
        TestB testB = new TestB();
        testB.TestCs = new();
        TestC c1 = new TestC();
        c1.v2 = new Vector3( 10,0, 10);
        c1.v2s = new []
        {
            new Vector3( 10,0, 10),
            new Vector3( 11,0, 11)
        };
        
        testB.TestCs.Add(0, c1);

        var bytes =  Serializer.Serialize(testB);

        TestB b = Deserializer.Deserialize<TestB>(bytes);
    }
}

liujunfan avatar Nov 20 '23 07:11 liujunfan

using Vector3 = System.Numerics.Vector3;
[NinoSerialize]
public partial class TestC
{
    public Vector3[] v2s;
}
public class Test : MonoBehaviour
{
    public void Awake()
    {
        TestC c1 = new TestC();
        c1.v2s = new []
        {
            new Vector3( 10,0, 10),
            new Vector3( 11,0, 11)
        };
        
        var bytes =  Serializer.Serialize(c1);

        TestC b = Deserializer.Deserialize<TestC>(bytes);
        int n = 0;
    }
}

liujunfan avatar Nov 20 '23 08:11 liujunfan

已在v2.0.0修复

JasonXuDeveloper avatar Jul 02 '24 10:07 JasonXuDeveloper