Правилен начин за предаване на обекти с данни към Unity

Опитвам се да работя върху изпращането на обект от моя клас сцена от програма на C#, за да го покажа в програма на Unity.

Какви са обичайните начини за постигане на това?

Една опция, която измислих, е WCF: програмата Unity действа като клиент, а другата C# програма действа като сървър. В рамките на всеки кадър (т.е. във функцията за актуализиране на Unity), програмата Unity изисква обекта на текущата сцена от другата C# програма по начин на заявка/отговор.

Има ли по-добри варианти? Има ли по-разпространен начин за предаване на обекти с данни към Unity?


person Boozzz    schedule 24.06.2014    source източник


Отговори (1)


Може би заявявам очевидното тук, но обмисляли ли сте факта, че приложението за единство е в известен смисъл просто нормално C# приложение?

И така, как обикновено бихте вкарали данни в проект за конзолно приложение, ако просто имате визуално студио и празен нов проект?

Обикновено обаче това варира в зависимост от вашите изисквания, ако сте един от многото луди, които изграждат MMO за първия си проект за игра, ще ви е необходим супер мощен и мащабируем сървърен код и вероятно някаква персонализирана двоична сериализация за „пакетиране на битове“ метод за обработка на това компресиране между сървър и клиент.

Въпреки това, ако не сте го загубили напълно, вероятно създавате нещо като шутър от първо лице (единството е създадено за това) или нещо по-просто, което не се нуждае от постоянни потоци от данни, които се нуждаят от ниски пингове ... това е мястото вашият WCF сценарий седи.

Unity има някои вградени мрежови функции, но (и това е чисто мое мнение) наистина зависи от ситуации на голяма игра, в които се случва много.

Например... клонинг на minecraft или FPS, който има до да кажем 16 играча, можете лесно да използвате вградената мрежова функционалност за единство отвъд това, че сте в собствената си територия.

Ето някои връзки, които да ви помогнат да се задълбочите...

http://blog.ccoder.co.uk/?page=6

http://www.paladinstudios.com/2013/07/10/how-to-create-an-online-multiplayer-game-with-unity/

person War    schedule 24.06.2014
comment
Когато използвам WCF, измислям следната опция: Моето приложение Unity изпраща заявка, а другото C# приложение (= хост приложение) отговаря, като изпраща обект до приложението Unity. Мога да си представя да направя това, като използвам TCP като протокол с активиран SessionMode. Въпреки това търся по-ефективен начин, без тази мода на заявка/отговор. Има ли начин за непрекъснато предаване на обекти с данни от приложението C# към приложението Unity асинхронно чрез UDP (например). Тогава може да имам нужда от работна нишка в приложението Unity, която постоянно получава обекти с данни от приложението C# и ги съхранява в приложението Unity. - person Boozzz; 24.06.2014