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