Настройка: Unity 2017.4.16f1
/ 2018.2.18f1
У меня есть собственная письменная библиотека C#
, использующая .Net
.Библиотека отлично работает в приложении Winforms
.Обычно он связывается с серверным приложением и получает некоторые данные.
Теперь мы хотим визуализировать данные в Unity.Для этого я следовал этому руководству: https://docs.unity3d.com/Manual/UsingDLL.html. Вкратце: перетащите библиотеку в папку ресурсов, добавьте новый скрипт и получите доступ к библиотеке.Моей первой проблемой была совместимость.Потому что сначала я использовал Unity 2017.4.16f1
, мне нужно было понизить библиотеку с .Net 4.7.2
до .Net 4.6
и изменить настройки проекта на ту же .Net
среду.После избавления от всех ошибок компилятора я столкнулся с моей текущей проблемой.
Я прикрепил Visual Studio 2017
к единице, настроил точку останова и запустил приложение в Unity
.Точка останова находится при первом вызове функции из моей пользовательской библиотеки.Точка останова достигнута.Но если я говорю «Перешагни» (либо щелчком, либо F10), активная линия не переключается, и я возвращаюсь к Unity
.Как будто я никогда не начинал отлаживать.Unity
продолжается, как будто ничего не произошло.
После этого я попробовал это с Unity 2018.2.18f1
.Тем не менее, есть та же проблема.Библиотека не называется.
Что касается некоторых проблем совместимости, я создал проект Unity
.Ошибка не возникает.Наконец я сократил внешнюю библиотеку до базового уровня.Но опять я получил это странное поведение.Ниже приведен скрипт для единства и пример класса из пользовательской библиотеки.Спасибо за каждый совет.
C#
:
[Serializable]
public class PostgreSQLParameters
[XmlElement(ElementName = "PostgreSQL_User", IsNullable = false)]
public string UserName
{
get
{
return this.userName;
}
set
{
if (this.userName == value)
return;
this.userName = value;
this.OnPropertyChanged();
}
}
public PostgreSQLParameters()
{ }
Unity
:
void Start () {
string cwd = Directory.GetCurrentDirectory();
string pathVariable = Environment.GetEnvironmentVariable("PATH");
try
{
//this line has the break point, untill here all is ok
//after the Debug steps in, I hit F10 here to get to the next line,
//which should be the bracket befor the catch
PostgreSQLParameters parameter = new PostgreSQLParameters();
} // The cursor should be here after hitting F10, but disappears only
catch (Exception)
{
throw;
}
}