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

Взаимодействие C# <> Javascript

СообщениеДобавлено: 14 дек 2010, 10:53
alexz
Правильно ли я понимаю, что в Unity классы, написанные на разных языках, не могут напрямую обращаться друг к другу? Например, если есть MyJavascriptClass с методом DoJob(), то из C# это метод нельзя вызвать явно:

MyJavascriptClass x = gameObject.GetComponent<MyJavascriptClass>();
x.DoJob();


А можно только так:

Component x = gameObject.GetComponent("MyJavascriptClass");
x.SendMessage("DoJob");


Может быть, я что-то упустил, и в C# достаточно добавить какое-нибудь пространство имён, чтобы класс MyJavascriptClass стало видно?

PS
И сопутствующий вопрос: я до сих пор не понял, Javascript в Unity компилируется и работает сам по себе или относится к Mono, как C#?

Re: Взаимодействие C# <> Javascript

СообщениеДобавлено: 14 дек 2010, 12:58
Zaicheg
Связано с порядком компиляции.
http://unity3d.com/support/documentatio ... ced29.html

Re: Взаимодействие C# <> Javascript

СообщениеДобавлено: 14 дек 2010, 13:12
alexz
Zaicheg писал(а):Связано с порядком компиляции.
http://unity3d.com/support/documentatio ... ced29.html

Я вчера пробовал обратиться из C# к параметрам скрипта SunShafts, который написан на яваскрипте и лежит в Standart Assets ― это первый пункт в очереди на компиляцию. Мой скрипт лежит в отдельной папке, несвязанной со стандартными папками, ― это последний пункт в очереди на компиляцию. И компилятор C#, и Intellisense считают, что класс SunShafts не существует для моего скрипта.