Files
Studio/Assets/Scripts/CustomMessagePackResolver.cs
SullyunShin 97030b1940 MessagePack IL2CPP 빌드 문제 해결
MessagePack Resolver 스크립트 빌드 후 추가
MessagePack Object Key type string -> integer 로 변경
MessagePackSerializerOptions에 Resolver 추가
2025-03-06 12:15:53 +09:00

35 lines
1.9 KiB
C#

using UnityEngine;
using MessagePack;
using MessagePack.Formatters;
using MessagePack.Resolvers;
using System;
using System.Collections.Generic;
public class CustomMessagePackResolver : IFormatterResolver
{
public static readonly IFormatterResolver Instance = new CustomMessagePackResolver();
private static readonly Dictionary<Type, object> formatters = new Dictionary<Type, object>
{
{ typeof(XED.Asset.MaterialPropertyData), new MessagePack.Formatters.XED.Asset.MaterialPropertyDataFormatter() },
{ typeof(XED.Asset.ModelData), new MessagePack.Formatters.XED.Asset.ModelDataFormatter() },
{ typeof(XED.Asset.SaveData), new MessagePack.Formatters.XED.Asset.SaveDataFormatter() },
{ typeof(XED.Asset.SavedModelData), new MessagePack.Formatters.XED.Asset.SavedModelDataFormatter() },
{ typeof(XED.Asset.SerializableMesh), new MessagePack.Formatters.XED.Asset.SerializableMeshFormatter() },
{ typeof(XED.Asset.SerializableQuaternion), new MessagePack.Formatters.XED.Asset.SerializableQuaternionFormatter() },
{ typeof(XED.Asset.SerializableVector2), new MessagePack.Formatters.XED.Asset.SerializableVector2Formatter() },
{ typeof(XED.Asset.SerializableVector3), new MessagePack.Formatters.XED.Asset.SerializableVector3Formatter() },
{ typeof(XED.Asset.SubmeshData), new MessagePack.Formatters.XED.Asset.SubmeshDataFormatter() },
{ typeof(XED.Asset.TextureData), new MessagePack.Formatters.XED.Asset.TextureDataFormatter() },
{ typeof(XED.Asset.TransformData), new MessagePack.Formatters.XED.Asset.TransformDataFormatter() },
};
public IMessagePackFormatter<T> GetFormatter<T>()
{
if (formatters.TryGetValue(typeof(T), out var formatter))
{
return (IMessagePackFormatter<T>)formatter;
}
return StandardResolver.Instance.GetFormatter<T>();
}
}