Интеграция C# и LUA на уровне объектов.

Общие вопросы о Unity3D

Интеграция C# и LUA на уровне объектов.

Сообщение Woolf 02 авг 2012, 03:05

Интеграция C# и LUA на уровне объектов. Кто либо занимался или может есть готовые решения? Поясню - то, что я нашел - интегрируется на уровне функций (с их обязательной регистрацией). Мне нужно несколько другое решение, как в jnlua, например. Я передаю в луаскрипт объект и выполняю скрипт, без всяких функций и регистраций этих функций. А скрипт имеет доступ, как к любому из полей объекта, так и ко всем его методам (включая и другие вложенные объекты). Есть ли такое вообще на сишарпе, или мелкософт, как всегда тупит?
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Интеграция C# и LUA на уровне объектов.

Сообщение Tolking 02 авг 2012, 09:20

Где-то ты должен что-то описать в любом случае... Регистрируются процедуры приложения, которые можно использовать в скрипте, если не нужно выполнять функций приложения, то и не нужно ничего регистрить, передать объект в скрипт можно, но в луа ты получишь ссылку на объект. Как можно обращаться к полям объекта, не описав его структуры?

Не! В принципе с С# это возможно ибо рефлект и т.п. (в яве тоже есть аналог рефлекта), но тут не мелкософт виноват, Луа не мелкософт делает... Мелкософт делает С# который можно использовать для скриптов в том числе...
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2716
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Интеграция C# и LUA на уровне объектов.

Сообщение Woolf 02 авг 2012, 13:40

Регистрируются процедуры приложения, которые можно использовать в скрипте

Вот это и печально.. Не нарегистрируешься.. В JnLUA ничего регистрировать не нужно. Просто из скрипта вызываю любой метод объекта приложения (положенного на стек и снятого lua), который у него есть. И если у объекта есть дочерний объект другого типа, а у того еще объект - то и у них можно вызвать методы. Это очень удобно было для написания скриптовой квестовой системы. А тут даже теперь не знаю что делать.. А про мелкософт.. Java ведь тоже не разрабы lua делают, однако там подобные штуки в порядке вещей, а тут толковую рефлексию сделать не смогли ((

Как можно обращаться к полям объекта, не описав его структуры?


lua table, не?
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Интеграция C# и LUA на уровне объектов.

Сообщение Tolking 02 авг 2012, 16:47

Ну таблицу нужно описывать ведь?

JnLua кто сделал? Вот сделают СsLua будет так-же...

Есть такое – CSScript - http://www.csscript.net

Я считаю его и нужно использовать...
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2716
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Интеграция C# и LUA на уровне объектов.

Сообщение Woolf 02 авг 2012, 19:20

Tolking писал(а):Есть такое – CSScript - http://www.csscript.net
Я считаю его и нужно использовать...

Ага, мне уже гноблин подсказал, спасибо. Курю маны. Действительно, это лучше получается.

Tolking писал(а):Ну таблицу нужно описывать ведь?

В lua? Зачем? ))

В jnLua к примеру передаю объект go

Синтаксис:
Используется csharp
public class Foo {

 public int param=0;

 public void hello(){
  blablabla
 }
}


в луа делаю:
Синтаксис:
Используется csharp
do
 go:param=1; -- работает
 go:hello(); -- работает
 go:param2=10; -- работает, но ничего не происходит, кроме того, что в таблице go появляется еще один элемнт param2 (которые, естественно не влиет на базовый объект)
 go:param=go:param2; -- param становится равным 10
end;
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59


Вернуться в Общие вопросы

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

Сейчас этот форум просматривают: Google [Bot] и гости: 10