Я делаю 3D-симулятор в Unity.
Для этого симулятора мне нужны некоторые данные, которые хранятся в объекте Serializable.
Этот объект определен в файле DLL, который я создал.
Я десериализации его с этим кодом:Deserialization slow performance в Unity
public class myObject
{
static public myObject LoadFromFile(String Path)
{
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter BF = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.FileStream FS = new System.IO.FileStream(Path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read);
myObject Result = BF.Deserialize(FS) as myObject;
FS.Close();
return Result;
}
}
Моя программа единства имеет ссылку на библиотеку классов, содержащую определение «MyObject».
Если я запускаю функцию десериализации из Unity, этот процесс занимает 35.080 секунд.
Если я запустил это в приложении Windows, которое я создал для целей тестирования, и относится к той же библиотеке классов и открывает тот же файл, этот процесс занимает всего 0.260 секунд.
Это займет много времени в Unity, даже если я запускаю этот процесс асинхронно.
Интересно, почему это занимает намного больше времени, когда я запускаю этот код из Unity? , и если есть что-нибудь, что я могу сделать по этому поводу?
Спасибо заранее,
Маартен
Добро пожаловать в StackOverflow, используете ли вы один и тот же объект в своем приложении Test and Unity? –
Да все одинаково – Maarten