Я разработчик C++ и никогда раньше не занимался C#. Из любопытства я просматривал код Unity и не уверен, что понимаю следующий код:
[FreeFunction(Name = "GameObjectBindings::Internal_CreateGameObject")]
static extern void Internal_CreateGameObject([Writable] GameObject self, string name);
Мне кажется, что конкретный код реализован во внешнем файле (extern), внутри другого класса с именем GameObjectBindings
, но который, похоже, не указан в исходном коде Unity, так как я не смог найти Internal_CreateGameObject
и GameObjectBindings
. Что на самом деле означает FreeFunction
и почему я не смог найти функции Internal_xxx ? Аналогичная ссылка https://forum.unity.com/threads/how-does-the-freefunction-attribute-work.857653/
Заранее спасибо !
Это не полный исходный код единства, это просто репозиторий со ссылками на C#. Все исходники С++ по-прежнему недоступны.
@Lecrapouille Да, ты.
А ок спасибо понял! Я знал этот документ, но не был уверен в значении "ссылки на C#". Прав ли я, если могу сказать, что C# является оболочкой для кода C++ и, следовательно, FreeFunction(Name = "GameObjectBindings::Internal_CreateGameObject") относится к классу C++?