CsvHelper
é uma boa ferramenta no planeta.
Mas, instalar para Unity é bastante inconveniente.
Descompactei .nupkg
e obtive o arquivo dll
.
Espero que seja lançado para Unity Asset Store ou apenas link para download.
Eu vou investigar isso. Eu não fiz isso antes, então não tenho certeza no que estou me metendo aqui. :)
Você sabe como criar um ativo de unidade para a loja?
Acabei de enviar para a loja de ativos. Vamos ver se é aprovado.
talvez uma alternativa seja https://github.com/GlitchEnzo/NuGetForUnity ?
Isso parece incrível. A Unity rejeitou a solicitação de armazenamento de ativos porque não achava que a documentação era boa o suficiente. Fazer com que todas as bibliotecas do NuGet tenham que enviar seus próprios ativos para a loja parece bobagem. Esta é uma maneira muito melhor de fazer as coisas.
Se alguém puder verificar se isso funciona, atualizarei a documentação para apontar as pessoas do Unity para isso.
Olá @JoshClose ! :)
Testei o CSVHelper do NuGetForUnity, tive alguns problemas na compilação do iOS:
NullReferenceException: Object reference not set to an instance of an object.
Managed Stack Trace:
System.Linq.Expressions.Interpreter.LightLambda.MakeRunDelegateCtor (System.Type delegateType) (at <00000000000000000000000000000000>:0)
System.Linq.Expressions.Interpreter.LightLambda.GetRunDelegateCtor (System.Type delegateType) (at <00000000000000000000000000000000>:0)
System.Linq.Expressions.Interpreter.LightLambda.MakeDelegate (System.Type delegateType) (at <00000000000000000000000000000000>:0)
System.Linq.Expressions.Expression`1[TDelegate].Compile (System.Boolean preferInterpretation) (at <00000000000000000000000000000000>:0)
CsvHelper.ObjectCreator.GetFunc (System.Type type, System.Object[] args) (at <00000000000000000000000000000000>:0)
CsvHelper.ObjectCreator.CreateInstance (System.Type type, System.Object[] args) (at <00000000000000000000000000000000>:0)
CsvHelper.ObjectCreator.CreateInstance (System.Type type, System.Object[] args) (at <00000000000000000000000000000000>:0)
CsvHelper.ObjectResolver+<>c__DisplayClass17_0.<.cctor>b__1 (System.Type type, System.Object[] args) (at <00000000000000000000000000000000>:0)
System.Func`3[T1,T2,TResult].Invoke (T1 arg1, T2 arg2) (at <00000000000000000000000000000000>:0)
CsvHelper.ObjectResolver.Resolve[T] (System.Object[] constructorArgs) (at <00000000000000000000000000000000>:0)
CsvHelper.Configuration.CsvConfiguration.RegisterClassMap[TMap] () (at <00000000000000000000000000000000>:0)
Com.Atomicorn.TestCSVHelper..ctor () (at <00000000000000000000000000000000>:0)
System.Threading.ContextCallback.Invoke (System.Object state) (at <00000000000000000000000000000000>:0)
System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at <00000000000000000000000000000000>:0)
System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run () (at <00000000000000000000000000000000>:0)
System.Action.Invoke () (at <00000000000000000000000000000000>:0)
System.Threading.ContextCallback.Invoke (System.Object state) (at <00000000000000000000000000000000>:0)
System.Threading.Tasks.AwaitTaskContinuation.RunCallback (System.Threading.ContextCallback callback, System.Object state, System.Threading.Tasks.Task& currentTask) (at <00000000000000000000000000000000>:0)
System.Threading.Tasks.Task.FinishContinuations () (at <00000000000000000000000000000000>:0)
System.Threading.Tasks.Task`1[TResult].TrySetResult (TResult result) (at <00000000000000000000000000000000>:0)
System.Threading.Tasks.TaskCompletionSource`1[TResult].TrySetResult (TResult result) (at <00000000000000000000000000000000>:0)
Com.Atomicorn.Common.Utils.Unity.Server.Request+<RequestCoroutine>d__32.MoveNext () (at <00000000000000000000000000000000>:0)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <00000000000000000000000000000000>:0)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at <00000000000000000000000000000000>:0)
System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_0 (System.Object state) (at <00000000000000000000000000000000>:0)
System.Threading.SendOrPostCallback.Invoke (System.Object state) (at <00000000000000000000000000000000>:0)
UnityEngine.UnitySynchronizationContext.Exec () (at <00000000000000000000000000000000>:0)
UnityEngine.UnitySynchronizationContext.Exec () (at <00000000000000000000000000000000>:0)
UnityEngine.UnitySynchronizationContext:Exec()
Compilação do Android, mesmo tipo:
2021/01/05 19:48:55.950 23262 23294 Error Unity NullReferenceException: Object reference not set to an instance of an object.
2021/01/05 19:48:55.950 23262 23294 Error Unity at System.Linq.Expressions.Interpreter.LightLambda.MakeRunDelegateCtor (System.Type delegateType) [0x00000] in <00000000000000000000000000000000>:0
2021/01/05 19:48:55.950 23262 23294 Error Unity at System.Linq.Expressions.Interpreter.LightLambda.GetRunDelegateCtor (System.Type delegateType) [0x00000] in <00000000000000000000000000000000>:0
2021/01/05 19:48:55.950 23262 23294 Error Unity at System.Linq.Expressions.Interpreter.LightLambda.MakeDelegate (System.Type delegateType) [0x00000] in <00000000000000000000000000000000>:0
2021/01/05 19:48:55.950 23262 23294 Error Unity at System.Linq.Expressions.Expression`1[TDelegate].Compile (System.Boolean preferInterpretation) [0x00000] in <00000000000000000000000000000000>:0
2021/01/05 19:48:55.950 23262 23294 Error Unity at CsvHelper.TypeConversion.SByteConverter..ctor () [0x00000] in <00000000000000000000000000000000>:0
2021/01/05 19:48:55.950 23262 23294 Error Unity at CsvHelper.TypeConversion.SByteConverter..ctor () [0x00000] in <00000000000000000000000000000000>:0
2021/01/05 19:48:55.950 23262 23294 Error Unity at CsvHelper.ObjectCreator.CreateInstance (System.Type type, System.Object[] args) [0x00000] in <00000000000000000000000000000000>:0
2021/01/05 19:48:55.950 23262 23294 Error Unity at
Versão do Unity: 2019.3.7f1
Versão CSVHelper: 19.0.0
Comentários muito úteis
Isso parece incrível. A Unity rejeitou a solicitação de armazenamento de ativos porque não achava que a documentação era boa o suficiente. Fazer com que todas as bibliotecas do NuGet tenham que enviar seus próprios ativos para a loja parece bobagem. Esta é uma maneira muito melhor de fazer as coisas.
Se alguém puder verificar se isso funciona, atualizarei a documentação para apontar as pessoas do Unity para isso.