Страница 1 из 3

Подключение своего проекта

СообщениеДобавлено: 08 янв 2011, 14:11
EvgeniyT
У меня такая проблема: нужно к проекту, который содержит в себе все скрипты моей игры, подключить другой проект. Я делаю стандартную процедуру - добавляю в Solution Explorer свой проект, потом добавляю на него Reference, и пытаюсь использовать пространства имён и объекты из подключенного класса. Пока я пишу код всё отлично - все объекты видимы и пространства имён существуют. Но когда я перехожу в Unity, она начинает на меня ругаться, типо она таких пространств имён не видит, и говорит, что я забыл подключить ссылку на проект.
Так вот вопрос как раз и заключается в том, как безболезненно добавить в проект игры свой собственный проект? Нужно ли его помещать в папку Assets, или нет? В ообщем как сделать так, чтобы Unity приняла его гостеприимно, а не гавкала?

Re: Подключение своего проекта

СообщениеДобавлено: 08 янв 2011, 15:07
sp00n
Создать unitypackage и импортировать уже его?

Re: Подключение своего проекта

СообщениеДобавлено: 08 янв 2011, 15:11
EvgeniyT
sp00n писал(а):Создать unitypackage и импортировать уже его?


Если честно, не очень понял вопроса т.к. не знаю, что такое unitypackage. Мне нужно добавить свой собственный проект, никак не связанный с Unity и использовать в скриптах для Unity классы из этого проекта.

Re: Подключение своего проекта

СообщениеДобавлено: 08 янв 2011, 15:40
DbIMok
редактор это редактор он может видеть и думать что угодно. но как только мы переходим в Unity, она перекомпилирует скрипты в своем проекте, создает из них несколько dll. конечно она не знает про какие-то другие неведомые проекты. для переноса кода в исходном виде можно копировать папку с кодом в ассетс, использовать пакаджи (что в общем-то примерно тоже) или копировать уже скомпилированный код в виде dll.

Re: Подключение своего проекта

СообщениеДобавлено: 08 янв 2011, 15:52
EvgeniyT
DbIMok писал(а):копировать папку с кодом в ассетс


Пробовал, получаю какое-то исключение:

Internal compiler error. See the console log for more information. output was:
Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.

Re: Подключение своего проекта

СообщениеДобавлено: 08 янв 2011, 16:15
DbIMok
не какое-то, а вполне определенное "класс в модуле не может быть загружен"

Re: Подключение своего проекта

СообщениеДобавлено: 08 янв 2011, 16:25
EvgeniyT
DbIMok писал(а):"класс в модуле не может быть загружен"


Да это я понял! что делать-то? Библиотека же нужна!

Re: Подключение своего проекта

СообщениеДобавлено: 08 янв 2011, 18:05
DbIMok
разбираться в причинах. либо, если хотите помощи, дать больше информации.

Re: Подключение своего проекта

СообщениеДобавлено: 08 янв 2011, 18:12
EvgeniyT
Помощи хочу. Какая именно информация может быть полезна?
Могу с уверенностью сказать, что сама библиотека отлично компилируется.

Re: Подключение своего проекта

СообщениеДобавлено: 08 янв 2011, 18:34
DbIMok
начните с описания ситуации, например:
у меня есть проект 1, в нем используется исходный код библиотеки (указать какой), все работает. я копирую папку с библиотекой в проект 2, и юнити ругается: сообщение(я) полностью
во вложении архив тестового проекта с библиотекой.

библиотека компилируется во что? в нативный или .нет код (какой версии)? какие библиотеки она, в свою очередь, использует?

Re: Подключение своего проекта

СообщениеДобавлено: 08 янв 2011, 22:00
EvgeniyT
Попробовал добавить другую библиотеку, вроде работает.
Видимо это значит, что добавляемая библиотека в чём-то кривовата. Вот Unity и ругается.

Re: Подключение своего проекта

СообщениеДобавлено: 09 янв 2011, 09:10
EvgeniyT
Ещё вопрос по теме: почему свои библиотеки .dll обязательно скидывать в папку Assets? Ведь Unity не ругается на библиотеку System.dll, которая находится вообще совершенно в другом месте, или всякие там UnityEngine.dll . А если я так же добавлю Reference на свою собственную библиотеку, лежащую в другом месте, то при первом Reload-е Visual Studio, ссылка на мою библиотеку пропадает.
И что, если мне понадобится использовать 10 разных библиотек в своей игре, то обязательно нужно из все включать в проект?

Re: Подключение своего проекта

СообщениеДобавлено: 09 янв 2011, 09:19
Fredo
EvgeniyT писал(а):Ещё вопрос по теме: почему свои библиотеки .dll обязательно скидывать в папку Assets? Ведь Unity не ругается на библиотеку System.dll, которая находится вообще совершенно в другом месте, или всякие там UnityEngine.dll . А если я так же добавлю Reference на свою собственную библиотеку, лежащую в другом месте, то при первом Reload-е Visual Studio, ссылка на мою библиотеку пропадает.
И что, если мне понадобится использовать 10 разных библиотек в своей игре, то обязательно нужно из все включать в проект?

Ну логично что их нада будет включать верно ? Ведь не факт что эти библиотеки есть у всех пользователей.

Re: Подключение своего проекта

СообщениеДобавлено: 09 янв 2011, 09:41
EvgeniyT
Не факт, что у всех пользователей есть на компьютере библиотека UnityEngine.dll. Точнее даже, я бы сказал, вероятность того, что данной библиотеки у игрока не будет, стремится к 100%. Однако эту библиотеку добавлять в папку Assets не нужно.

Re: Подключение своего проекта

СообщениеДобавлено: 09 янв 2011, 09:44
Fredo
Я думаю что юнити заботится об этом сам.