DLL импорт функций (Решено)

Программирование на Юнити.

DLL импорт функций (Решено)

Сообщение Push0k 06 май 2010, 09:20

Здравствуйте уважаемые гуру.
Проштудировав http://unity3d.com/support/documentatio ... ugins.html и помучив google, я так и не смог найти реализации импорта функций из dll в java (js) , подскажите где можно найти даннуй инфу.
Последний раз редактировалось Push0k 06 май 2010, 17:46, всего редактировалось 1 раз.
Аватара пользователя
Push0k
UNец
 
Сообщения: 13
Зарегистрирован: 06 май 2010, 09:08

Re: DLL импорт функций

Сообщение Kann 06 май 2010, 09:28

Код: Выделить всё
import  mySuperFunction;
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: DLL импорт функций

Сообщение Push0k 06 май 2010, 09:39

Kann писал(а):
Код: Выделить всё
import  mySuperFunction;

А нельзя ли немного по подробнее, при использование import получаю следующее

Assets/Plugins/control_sn.js(1,8): BCE0021: Namespace 'testload' not found, maybe you forgot to add an assembly reference?
либо
Assets/Plugins/control_sn.js(6,1): BCE0044: expecting EOF, found 'import'.
либо
Assets/Plugins/control_sn.js(7,1): BCE0044: expecting }, found 'import'.

ну со 2 и 3 понятно, а вот с первым вариантом вообще туго. :-\
Аватара пользователя
Push0k
UNец
 
Сообщения: 13
Зарегистрирован: 06 май 2010, 09:08

Re: DLL импорт функций

Сообщение Push0k 06 май 2010, 09:52

или использовать такую комбинацию
Синтаксис:
Используется csharp
using UnityEngine;
using System.Runtime.InteropServices;
class SN_Import_Script : MonoBehaviour
{
   [DllImport ("sn")]
   private static extern byte testload (byte k);
   [DllImport ("sn")]
   private static extern string testload1 ();
   [DllImport ("sn")]
   private static extern bool check (byte k);
}
 

+
Синтаксис:
  1. var mydll; 
  2.  
  3. function Awake() {  
  4. mydll = gameObject.GetComponent("SN_Import_Script"); 
  5. }  
  6.  
  7. function Update(){  
  8. Debug.Log(mydll.testload(20)); 
  9. Debug.Log(mydll.check(2)); 
  10. }  

Но не будет ли это слишком "криворуко"?
Аватара пользователя
Push0k
UNец
 
Сообщения: 13
Зарегистрирован: 06 май 2010, 09:08

Re: DLL импорт функций

Сообщение Kann 06 май 2010, 10:10

вашу dll закидываете в папку Script
далее
import тут пишем пространство имен вашей dll;
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: DLL импорт функций

Сообщение Push0k 06 май 2010, 10:48

Kann писал(а):вашу dll закидываете в папку Script
далее
import тут пишем пространство имен вашей dll;

т.е. к примеру D:\4\Assets\Script\sn.dll
D:\4\Assets\Plugins\control_sn.js
Синтаксис:
  1. import testload; 
  2.  
  3. function Update(){  
  4. Debug.Log(testload(20)); 
  5. }  


Assets/Plugins/control_sn.js(1,8): BCE0021: Namespace 'testload' not found, maybe you forgot to add an assembly reference?
Аватара пользователя
Push0k
UNец
 
Сообщения: 13
Зарегистрирован: 06 май 2010, 09:08

Re: DLL импорт функций

Сообщение Neodrop 06 май 2010, 14:31

Прочитайте в справке про порядок компиляции скриптов. Вы нарушили очередь.
Упрощённо говоря - переложите свой скрипт в папку Scripts, а dll оттуда, переложите в папку Plugins
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: DLL импорт функций

Сообщение Push0k 06 май 2010, 15:46

Neodrop писал(а):Прочитайте в справке про порядок компиляции скриптов. Вы нарушили очередь.
Упрощённо говоря - переложите свой скрипт в папку Scripts, а dll оттуда, переложите в папку Plugins

Сделал, так как вы написали результат не изменился BCE0021: Namespace 'testload' not found, maybe you forgot to add an assembly reference?
Аватара пользователя
Push0k
UNец
 
Сообщения: 13
Зарегистрирован: 06 май 2010, 09:08

Re: DLL импорт функций

Сообщение Kann 06 май 2010, 16:13

незнаю че у вас там за dll, у меня все работает сама dll лежит в папке скриптов.
Синтаксис:
Используется javascript
import testdll;
var st:test;
function Start(){
st = new st();
.........
....
..
}
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: DLL импорт функций

Сообщение Push0k 06 май 2010, 17:46

Скорее всего проблема в моей DLL (писал на Delphi), потому что проблема исчезла когда использовал др. DLL-ку.

Но через (c#) она прекрасно импортировалась :-?
Аватара пользователя
Push0k
UNец
 
Сообщения: 13
Зарегистрирован: 06 май 2010, 09:08

Re: DLL импорт функций (Решено)

Сообщение Neodrop 06 май 2010, 18:35

недотнет dll (типа вашей дельфи или плюсов) нужно импортировать так :

http://unity3d.com/support/documentatio ... ugins.html




Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: DLL импорт функций (Решено)

Сообщение Push0k 06 май 2010, 19:35

Ну я вроде это так и сделал в своем 3-ем посте, просто показалась реализация 2-мя скриптами несколько "кривовато"
Аватара пользователя
Push0k
UNец
 
Сообщения: 13
Зарегистрирован: 06 май 2010, 09:08

Re: DLL импорт функций (Решено)

Сообщение Neodrop 06 май 2010, 20:18

В смысле "двумя скриптами" ? :-?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: DLL импорт функций (Решено)

Сообщение Push0k 06 май 2010, 22:25

Ну мне требовалось использовать функции из dll в (js) , я сначала в (c#) импортировал функции потом в (js) нашел (c#) скрипт и оттуда использовал выше упомянутые функции, т.е. (c#) получился неким посредником, что мне и показалось несколько "криворуким". :)
Просто я в Unity новичок и до конца не знаю внутренних механизмов, но как мне кажется что каждый скрипт отрабатывает в отдельном потоке, по этому и хотелось избавиться от лишнего "ресурсо-жора".
Аватара пользователя
Push0k
UNец
 
Сообщения: 13
Зарегистрирован: 06 май 2010, 09:08

Re: DLL импорт функций (Решено)

Сообщение Zaicheg 07 май 2010, 07:51

Push0k писал(а):Просто я в Unity новичок и до конца не знаю внутренних механизмов, но как мне кажется что каждый скрипт отрабатывает в отдельном потоке, по этому и хотелось избавиться от лишнего "ресурсо-жора".

Не-не, один поток. Ну и ты свои создавать можешь.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

След.

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9