Реалізація програмної частини 3D екскурсії по ОККТ ОДЕКУ з використаням Uniti Engene

ВСТУП

У своєму дипломному проекті я мушу зробити та реалізувати програмну частину 3D екскурсії по ОККТ ОДЕКУ з використаням Uniti Engene

Тож почнемо з початку:

Цей дипломний проект розробляю не я один.Ми розробляємо його з товаришем. Він займається графічною частиною проекту. Розробити та реалізувати код програми для графічного проекту не дуже складно, але це потребує від мене вивчення того, що таке сценірії і вивчити написання скриптів на незнайомих мені мовах С# і JavaScript.

Розробка проекту ведеться за допомогою графічного рушію Unity Engine.

Я буду працювати напряму у середовищі MonoDevelop, якае вбудовано в Unity. Це дуже хороше середовище написання. Воно мені сподобалось тим, що воно підкреслює помилки та доповнює код, для мене, як для новачка у написанні скриптів, це дуже хороша функція.


1.ЗАГАЛЬНИЙ РОЗДІЛ

  1. Графічні бібліотеки для роботи з 3D графікою

  1. GD Graphics Library

GD Graphics Library - програмна бібліотека, написана Томасом Баутелом (Thomas Boutell) та іншими розробниками для динамічної роботи із зображеннями. Початковий мову програмування бібліотеки - ANSI C, але розроблені інтерфейси для безлічі інших мов програмування. Бібліотека дозволяє створювати зображення в форматах GIF, JPEG, PNG і WBMP. Підтримка GIF була припинена в 1999, коли Unisys анулювала вільну ліцензію для безкоштовного і некомерційного ПО на використання працюючого в GIF методу компресії LZW. 7 липня 2004, коли термін дії патенту закінчився, підтримка GIF була відновлена.

Назва GD спочатку позначало « GIF Draw ». Однак, після анулювання ліцензії Unisys, абревіатура розшифровується, як « Graphics Draw ».

GD дозволяє створювати зображення, що складаються з ліній, дуг, тексту (включаючи програмний вибір шрифтів) та інших зображень, а також використовувати різні кольори.

У версії 2.0 додана підтримка 32 -бітових (truecolor) зображень, Альфа - каналів, дискретизація зображень (для плавної зміни розміру 32 - бітних зображень) і багато іншого.

GD підтримує безліч мов програмування, включаючи C, PHP, Perl, Python, O'Caml, Tcl, Lua, Pascal, GNU Octave, Common Lisp, Scheme і REXX. Є також інструмент, званий fly, який дозволяє отримувати доступ до GD з будь-якої мови програмування при використанні командного рядка.

  1. OpenGL

OpenGL (Open Graphics Library - відкрита графічна бібліотека, графічний API) - специфікація, що визначає незалежний від мови програмування платформонезавісимость програмний інтерфейс для написання додатків, що використовують двовимірну і тривимірну комп'ютерну графіку.

Включає більше 300 функцій для малювання складних тривимірних сцен з простих примітивів. Використовується при створенні комп'ютерних ігор, САПР, віртуальної реальності, візуалізації в наукових дослідженнях. На платформі Windows конкурує з Direct3D.

OpenGL орієнтується на наступні два завдання:

А) Приховати складності адаптації різних 3D - прискорювачів, надаючи розробнику єдиний API.

В) Приховати відмінності в можливостях апаратних платформ, вимагаючи реалізації відсутньої функціональності за допомогою програмної емуляції.

Основним принципом роботи OpenGL є отримання наборів векторних графічних примітивів у вигляді точок, ліній і багатокутників з наступною математичною обробкою отриманих даних і побудовою растрової картинки на екрані і / або в пам'яті.

OpenGL є низькорівневим процедурним API, що змушує програміста диктувати точну послідовність кроків, щоб побудувати результуючу растрову графіку (імперативний підхід). Це є основною відмінністю від дескрипторних підходів, коли вся сцена передається у вигляді структури даних (найчастіше дерева), яке обробляється і будується на екрані. З одного боку, імперативний підхід вимагає від програміста глибокого знання законів тривимірної графіки і математичних моделей, з іншого боку - дає свободу впровадження різних інновацій.виполняются графічним конвеєром (graphics pipeline), який по суті являє собою дискретний автомат. Абсолютна більшість команд OpenGL потрапляють в одну з двох груп: або вони додають графічні примітиви на вхід в конвеєр, або конфігурують конвеєр на різне виконання трансформацій.

Існує ряд бібліотек, створених поверх або на додаток до OpenGL. Наприклад, бібліотека GLU, що є практично стандартним доповненням OpenGL і завжди її супроводжує, побудована поверх останньої, тобто використовує її функції для реалізації своїх можливостей. Інші бібліотеки, як, наприклад, GLUT і SDL, створені для реалізації можливостей, недоступних в OpenGL. До таких можливостей відносяться створення інтерфейсу користувача (вікна, кнопки, меню тощо), настройка контексту малювання (область малювання, использующаяся OpenGL), обробка повідомлень від пристроїв введення-виведення (клавіатура, миша та ін), а також робота з файлами. Зазвичай, кожен віконний менеджер має власну бібліотеку - розширення для реалізації вищеописаних можливостей, наприклад, WGL в Windows або GLX в X Window System, однак бібліотеки GLUT і SDL є крос- платформеними, що полегшує перенесення написаних додатків на інші платформи.

1.1.3 GTK +

GTK + (скорочення від GIMP ToolKit) – кроссплатформена бібліотека елементів інтерфейсу, має простий у використанні API, поряд з Qt є однією з двох найбільш популярних на сьогоднішній день бібліотек для X Window System.

Спочатку була частиною графічного редактора GIMP, вона розвинулася в окремий проект і придбала помітну популярність. GTK + - вільне ПЗ, яке розповсюджується на умовах GNU LGPL, що дозволяє створювати як вільне, так і пропрієтарне програмне забезпечення з використанням бібліотеки. GTK + є офіційною бібліотекою для створення графічного інтерфейсу проекту GNU.

GTK + написана на мові Сі, але проте, є об'єктно-орієнтованою. Однією з причин для вибору Сі в якості мови було бажання легко будувати інт-

ерфейси для інших мов програмування. В результаті під GTK + можна

писати на наступних мовах програмування:

C, C++, C#, Java, JavaScript, PHP та інші.

Власне GTK + складається з двох компонентів: GTK і GDK. Перший містить набір елементів інтерфейсу користувача, або «віджетів» (таких, як кнопка, список, поле для введення тексту і т. п.) для різних завдань. GDK відповідає за виведення на екран і може використовувати для цього X Window System, Linux Framebuffer, WinAPI або функції Mac OS X. Починаючи з версії 2.8, GDK багато в чому (але не повністю) замінена на систему отрисовки векторної графіки Cairo.

Крім Cairo, GTK + залежить від трьох бібліотек - GLib, Pango і ATK, - які розробляються разом з GTK +, але можуть використовуватися і окремо.

Программи що використовують GTK +

  • AbiWord - текстовий редактор
  • Anjuta - офіційна інтегрована середовище розробки GNOME
  • Chromium - веб -браузер, разрабативаеммий в основному компанією Google і використовує WebKit
  • Ekiga - програми для VoIP і відео -конференцій
  • Epiphany - веб -браузер середовища GNOME.
  • Evolution - програма для управління контактами та електронною поштою
  • Firefox - стандартний браузер більшості Gnome- редакцій дистрибутивів Linux.
  • GIMP - растровий графічний редактор
  • Inkscape - векторний графічний редактор
  • Midori - легкий веб -браузер
  • MonoDevelop - відкрита інтегрована середовище розробки
  • Pidgin - клієнт обміну миттєвими повідомленнями
  • Wireshark - аналізатор мережевих пакетів
  • SciTE - багатоплатформовий текстовий редактор

1.2 Структура сценаріїв для 3D графіки

Скриптова мова (англ. scripting language) — мова програмування, розроблена для запису «сценаріїв», послідовностей операцій, які користувач може виконувати на комп'ютері. Прості скриптові мови раніше часто називали мовами пакетної обробки (batch languagesабо job control languages). Сценарії зазвичай інтерпретуються, а не компілюються.

У прикладній програмі, сценарій (скрипт) — це програма, яка автоматизує деяке завдання, яке без сценарію користувач робив би вручну, використовуючи інтерфейс програми. Мови таких скриптів спочатку орієнтувалися на використання в якості внутрішніх керуючих мов у складних системах. Багато хто з них, проте, вийшли за межі сфери свого початкового застосування і використовуються нині в зовсім інших областях. Характерними особливостями даних мов є, по-перше, їх інтерпретованість (компіляція або неможлива, або небажана), по-друге, простий синтаксис, а по-третє, легка розширюваність. Таким чином, вони ідеально підходять для використання в часто змінюваних програмах, дуже невеликих програмах або у випадках, коли для виконання операторів мови витрачається час, незрівнянний із часом їх розбору.

Для написання призначених розширень користувача можуть використовуватися як плагіни, так і скрипти. Скриптова мова використовується переважно в таких випадках:

А) Якщо потрібно забезпечити програмовість без ризику дестабілізувати систему. Оскільки, на відміну від плагінів, скрипти інтерпретуються, а не компілюються, неправильно написаний скрипт виведе діагностичне повідомлення, а не приведе систему до краху.

В) Якщо важливий виразний код. По-перше, чим складніша система, тим більше коду доводиться писати «тому, що це потрібно». По-друге, в скриптовій мові може бути зовсім інша концепція програмування, ніж в основній програмі — наприклад, гра може бути монолітним однопотоковим

застосунком, тоді як скрипти, що керують персонажами, виконуються

паралельно. По-третє, скриптова мова має власний проблемно-орієнтований набір команд, і один рядок скрипта може робити те ж, що кілька десятків рядків на традиційній мові. Як наслідок, на скриптовій мові може писати програміст дуже низької кваліфікації — наприклад, геймдизайнер своїми руками, не покладаючись на програмістів, може коректувати правила гри.

С) Якщо потрібна крос-платформовість. Хорошим прикладом є JavaScript — його виконують браузери під найрізноманітнішми ОС.

Також в плані швидкодії скриптові мови можна розділити на мови динамічного розбору (sh, command.com) і передкомпільовані (Perl). Мови динамічного розбору прочитують інструкції з файлу програми мінімально потрібними блоками, і виконують ці блоки, не читаючи подальший код. Передкомпільовані мови спочатку прочитують всю програму, компілюють її всю або в машинний код, або байт-код, або в якийсь внутрішній формат, і лише потім виконують отриманий код.

1.2.1 Lua

Lua — швидка і компактна скриптова мова програмування, розроблена підрозділом Tecgraf Католицького університету Ріо-де-Жанейро. Є вільно поширюваним, звідкритим сирцевим кодом на мові Сі.

За можливостями, ідеологією і реалізацією, мова найближча доJavaScript, проте Lua відрізняється могутнішими і набагато гнучкішими конструкціями, спроектованими з метою «не плодити суті понад необхідне». Хоча Lua не містить поняття класу і об'єктав явному вигляді, механізми

об'єктно-орієнтованого програмування з підтримкою прототипів (включаючи множинне успадкування) легко реалізуються з використаннямметатаблиць, які також дозволяють перевантаження операційтощо. Реалізована модель ООП (як і в JavaScript) — прототипна.

Lua отримала велике поширення в ролі вбудованої в інші проекти мови сценаріїв (наприклад, для визначення конфігурації або для написання розширень). Lua комбінує простий процедурний синтаксис з потужними

можливостями опису даних через використання асоціативних масивів і розширюваної семантики мови. У Lua використовується динамічна типізація, мовні конструкції перетворюються в байт-код, який виконується поверх регістровоївіртуальної машини з автоматичним збирачем сміття. Самінтерпретатор оформлений у вигляді бібліотеки, легко інтегрованої в проекти на мовах Сі та Сі++. Код інтерпретатора Lua написаний на мові Сі і розповсюджується під ліцензією MIT.

1.2.2 JavaScript

JavaScript - призначений для написання сценаріїв для активних HTML - сторінок. Мова JavaScript не має ніякого відношення до мови Java. Java розроблений фірмою SUN. JavaScript - фірмою Netscape Communication Corporation. Перша назва - LiveScript. Після завоювання мовою Java всесвітньої популярності LiveScript з комерційних міркувань перейменували в JavaScript.

JavaScript не призначений для створення автономних додатків. Програма на JavaScript вбудовується безпосередньо у вихідний текст HTML - документа й інтерпретується брaузер по мірі завантаження цього документа. За допомогою JavaScript можна динамічно змінювати текст завантажуваного HTML - документа і реагувати на події, пов'язані з діями відвідувача або змінами состоятія документа або вікна.

Важлива особливість JavaScript - об'єктна орієнтованість. Програмісту доступні численні об'єкти, такі, як документи, гіперпосилання, форми, фрейми і т.д. Об'єкти характеризуються описової інформацією (властивостями) і можливими діями (методами)

тег <script>

Сценарій JavaScript вбудовується в HTML - документ за допомогою тега <script>.

Текст сценарію оформляється як коментар, щоб не було проблем у відвідувачів, брaузер яких не розуміють JavaScript. Крім того до символів, завершальним коментар додається ще два символи "/", тому що деякі браузери розглядає рядок, що складається тільки з символів " -> ", як помилкову.

У першому прикладі для об'єкта з ім'ям document викликається метод write. Як параметр йому передається текстовий рядок " Привіт!". Рядок закривається символом "; ", яким відокремлюються один від одного всі оператори JavaScript.

Об'єкт document - це HTML - документ, завантажений у вікно брaузер. Метод write записує в тіло HTML - документа рядок " Привіт!". При цьому документ буде вигдядеть так, як ніби ця рядок знаходиться в ньому на місці сценарію.

Майте на увазі, що JavaScript розрізняє малі та великі літери. Крім того символ дефіса в JavaScript розпізнається як мінус, тобто якщо фон об'єкта в HTML- документі задається через властивість background - color, то в JavaScript - через backgroundColor.

Змінні в JavaScript

Ім'я змінної не повинно збігатися з зарезервованими ключовими словами JavaScript.

Всі змінні в JavaScript оголошуються за допомогою ключового слова var. При оголошенні тип змінної не вказується. Цей тип присвоюється змінної тільки тоді, коли їй присвоюється яке-небудь значення.

Числа в рядки інтерпретатор JavaScript перетворює автоматично. Для перетворення рядків у числа використовують спеціальні функції parseInt і parseFloat

1.3 Інструменти

1.3.1 Денвер

Денвер (від скор. Д.н.w.р або ДНВР — джентльменський набір Web-розробника) — набір дистрибутивів і програмна оболонка, призначені для створення та налагодження сайтів (веб-додатків, іншого динамічного вмісту інтернет-сторінок) на локальному ПК (без необхідності підключення до мережі Інтернет) під управлінням ОС Windows.

Відразу після установки клієнту доступний повністю працюючий веб-сервер Apache, що працює на його локальному комп'ютері, на якому може працювати необмежена кількість сайтів, що дуже ефективно для розробки та налагодження сценаріїв PHP без завантаження їх файлів на віддалений сервер. Для запуску практично всіх утиліт «Денвера» використовується додаток Run в підкаталозі / denwer (або / etc) кореневого каталога установки Денвера. При запуску створюється віртуальний диск (за замовчуванням — Z:), де зберігаються всі файли проектів.

Третя версія підтримує роботу з флеш-накопичувача.

Особливістю, що відрізняє Denwer від інших WAMP-дистрибутивів, є автоматична правка системного файлу hosts, який є локальним аналогом DNS-сервера, що дозволяє звертатися до локальних сайтів, які працюють під управлінням Денвера, по іменах, що збігаються з іменами папок, розташованих в каталозі home Денвера.

1.3.2 Notepad++

Notepad++ — текстовий редактор, призначений для програмістів і тих, кого не влаштовує скромна функціональність Блокнота, що входить до складу Windows. Notepad++ базується на компоненті Scintilla (потужному компоненті для редагування), написаному на C++ з використанням тільки Windows API і STL, що забезпечує максимальну швидкість роботи при мінімальному розмірі програми. Інтерфейс у Notepad++ — багатомовний. Серед особливостей програми — підсвічування синтаксису, підтримка великої кількості мов (C, C++, Java, XML, HTML, PHP, Java Script, ASCII, Visual Basic/VBScript, SQL, CSS, Pascal, Perl і Python), багатомовна підтримка, робота з декількома документами.

Основні можливості Notepad++:

Підсвічування тексту і можливість згортання блоків, згідно з синтаксисом мови програмування

  • WYSIWYG (друкуєш і отримуєш те, що бачиш на екрані)
  • Режим підсвічування синтаксису, що налаштовується користувачем
  • Авто-завершення слова, що набирається
  • Одночасна робота з безліччю документів
  • Підтримка регулярних виразів для пошуку/заміни
  • Повна підтримка перетягування фрагментів тексту
  • Динамічна зміна вікон перегляду
  • Автоматичне визначення стану файлу
  • Збільшення і зменшення

1.3.3 MonoDevelop

MonoDevelop — відкрите інтегроване середовище розробки для платформ Linux, Mac OS X та Microsoft Windows, передусім націлене на розробку програм, які використовують і Mono, і Microsoft.NET framework.

На даний момент підтримуються мови C#, Java, Boo, Visual Basic.NET, CIL, Python, Vala, C та C++. Також MonoDevelop підтримує такі технології, як Gtk#, ASP.NET MVC, Silverlight, MonoMac и MonoTouch.

MonoDevelop включає можливості подібні до NetBeans та Microsoft Visual Studio, такі як автоматичне доповнення, інтеграція контролю коду, графічний користувацький інтерфейс і веб-дизайнер. В MonoDevelop інтегрований Gtk# GUI дизайнер під назвою Stetic

MonoDevelop також може використовуватися на платформах Windows та Mac OS X. Щоправда, до версії 2.2 жодна з даних платформ не мала офіційної підтримки. Тим не менше, жодна з них не підтримується настільки добре, як Linux-версія. MonoDevelop постачається разом з інсталятором Mono для Mac OS X, але ця версія не включає у себедизайнер графічного інтерфейсу користувача Stetic GUI designer через проблеми Drag&Drop у нативній для OS X версії GTK. MonoDevelop на FreeBSD найвірогідніше підтримується лише зусиллями FreeBSD спільноти.

2 РОЗРОБКА ТЕХНІЧНОГО ТА РОБОЧОГО ПРОЕКТУ

2.1 Аналіз серидовища програмування Unity

Unity — це багатоплатформний інструмент для розробки дво- та тривімирних застосунків та ігр, який працює на операційних системах Windows і OS X. Створені за допомогою Unity застосунки працюють під системами Windows, OS X, Android, Apple iOS, Linux, а також на гральних консолях Wii, PlayStation 3 і XBox 360.

Є можливість створювати інтернет-застосунки за допомогою спеціального підключаємого модуля до браузера Unity, а також за допомогою експерементальної реалізації в межах модуля Adobe Flash Player. Застосунки, створені за допомогою Unity, підтримують DirectX та OpenGL.

Технічні характеристики:

  • Сценарії на C#, JavaScript та Boo;
  • Ігровий рушій повністю пов'язаний із середовищем розробки. Це дозволяє випробовувати гру прямо в редакторі;
  • Робота з ресурсами можлива через звичайний Drag&Drop.
  • Система успадкування об'єктів;
  • Підтримка імпортування великої кількості форматів файлів;
  • Вбудований генератор ландшафтів;
  • Вбудована підтримка мережі;
  • Існує рішення для спільної розробки — Asset Server. Також можна використовувати зручний для користувача спосіб контролю версій. Наприклад, SVN або Source Gear;

Функціональні можливості:

Рендеринг.

Графічний двигун використовує DirectX (Windows), OpenGL (Mac, Windows, Linux), OpenGL ES (Android, iOS), та спеціальне власницьке API для Wii. Також підтримуються bump mapping, reflection

mapping, parallax mapping, screen space ambient occlusion (SSAO), динамічні тіні з використанням shadow maps, render-to-texture та повноекранні ефекти post-processing.

В Unity підтримуються файли з 3ds Max, Maya, Softimage, Blender, modo, ZBrush, Cinema 4D, Cheetah3D, Adobe Photoshop, Adobe Fireworks та Allegorithmic Substance. В ігровий проект Unity можна імпортувати об'єкти цих програм та робити налаштовування за допомогою графічного інтерфейсу.

Для написання шейдерів використовується ShaderLab, який підтримує шейдерні програми написані на GLSL або Cg. Шейдер може включати декілька варіантів реалізації, що дозволяє Unity визначати найкращий варіант для конкретної відеокарти. Unity також має вбудовану підтримку фізичного рушія Nvidia (колишнього Ageia) PhysX, (починаючи з Unity 3.0) підтримка в системі реального часу симуляції одежі на довільній та прив'язаній полігональній сітці, системи ray casts та шарів зіткнення.

Скрипти

Скриптова система ігрового двигуна зроблена на Mono - вільний відкритий проект з реалізації.NET Framework. Програмісти можуть використовувати UnityScript (власна скриптова мова, подібна до JavaScript та ECMAScript), C# або Boo (мова програмування, подібна до Python) Починаючи з версії 3.0, до Unity входить перероблена версія MonoDevelop для зневадження скриптів.

Аsset Tracking.

В Unity включено систему контролю версій Unity Asset Server для ігрових об'єктів та скриптів. Система використовує PostgreSQL, роботу зі звуком, побудовану на основі бібліотеки FMOD (з можливістю програвати Ogg Vorbis аудіофайли), відеопрогравач із кодеком Theora, рушій для побудови ландшафтів рослинності, вбудовану систему карт освітлення (Beast), мережу для мультиплеєру (RakNet) та вбудовані навігаційні меші для пасфайндингу.

Unity Asset Server.

Інструментарій для спільної розробки на базі Unity. Сутність розробки ігор - це робота в команді. Сервер ресурсів Unity це доповнення, яке додає контроль версій у функціонал Unity.

Система контролю версій

Сервер ресурсів Unity це повнофункціональне рішення для контролю версій для всіх ігрових скриптів і ресурсів. Як і все інше в Unity, він простий у використанні.

Оптимізація для великих проектів

Багато-гігабайтні проекти з тисячами багато-мегабайтних файлів управляються з витонченістю. Налаштування імпорту і всі інші метадані також зберігаються точно також разом з історією змін їх версій. Спостерігати за зміною ресурсів\версій можна прямо всередині Редактора Unity. Якщо файли піддаються змінам, їх статус негайно оновлюється. Перейменування і переміщення ресурсів не створює будь-яких перешкод для безперервного робочого процесу.

Сервер ресурсів Unity управляється базою даних PostgreSQL. PostgreSQL відомий своєю надійністю, цілісністю даних і легкістю адміністрування і відмінно справляється з робочим навантаженням гігантських проектів.

Mac OS X або Linux

Сервер ресурсів доступний як для Mac OS X Installer, так і для Linux RPMs. Підтримка декількох платформ дає вам гнучкість в тому, як впровадити Сервер ресурсів Unity в вашу існуючу IT-інфраструктуру.

Терміни:

Пайплайн - це ланцюжок процесів перетворення сценарію (вихідних даних) в 2D (двомірну) або 3D (стереоскопічну) картинку або в послідовність картинок (відео).

Рендеринг «візуалізація»- термін в комп'ютерній графіці, що позначає процес отримання зображення по моделі за допомогою комп'ютерної програми.

Позитивні сторони Unity:

Своїм IDE - він поєднує редактор сцен (він же редактор всього нижчеперерахованого), редактор ігрових об'єктів, і навіть простенький редактор скриптів. Крім того, в комплекті йде генератор дерев а- ля SpeedTree (непоганий) і террейнов (стандартний, зручний);

Можливостями для скриптинга - на відміну від UDK, в якому писати можна тільки на вбудованому самописна мовою, в Юніті доступні аж три мови: JavaScript, C #, і діалект пітона під назвою Boo. Мною особисто не перевірялося, але в російській ком'юніті проскакували фрази про те, що швидкість виконання скриптів в UDK в рази менше (воно й зрозуміло - адже в Юніті скрипти компілюються в нативний код).

Кросплатформеність - як уже згадувалося вище, підтримуються Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 і XBox 360. Ну і веб- плагін, звичайно, забувати не варто. Не всі з них вільно росповсюджуються на безкоштовній версії ліцензії (взагалі, доступні білди тільки під Windows, Mac і веб), але це цілком зрозуміло під Windows і Mac все компілюється взагалі без жодних змін в коді, під веб буду змушений, звичайно, порізати ресурси - качати 400 мегабайт щоб відкрити один рівень в браузері не дуже-то зручно. Роботу веб -версії опишу нижче;

Цілком сучасний рівень графіки - того ж UDK за кількістю

реалізованих можливостей Юніті, звичайно ж, програє - все-таки UnrealEngine можна назвати одним з флагманів по цій частині, і переплюнути його складно. Але в Юніті є deferred освітлення, вбудований редактор шейдеров, стандартний набір постпроцессінгових ефектів (повний список, можна і свої писати)

Продуктивність і масштабованість - без коливань ставимо

« відмінно». Тому що з більшою частиною рутини в цьому відношенні двигун справляється сам, і справляється чудово;

Запуск будь-якої програми в веб- плагіні - ми про це вже говорили але згадаємо ще раз.

Невисока ціна за ліцензію - всього 1500 $. І безкоштовна версія, без деяких можливостей;

Негативні сторони Unity:

Він закритий. Тобто вихідних кодів вам не дадуть навіть за ліцензією. З UDK, якщо я все правильно зрозумів, та ж картина – вихідні коди ліцензуються окремо, за більші гроші. Втім, в Юніті скриптами можна абсолютно те ж саме, що ми робили б з вихідними кодами – зауважте, практично все... Але все-таки вихідні коди всяко краще, тому це мінус - принаймні для тих, хто хотів би прикрутити сторонню фізику або той же SpeedTree;

На цьому негативні сторони Unity закінчуються.

Доповню скрінсейверами своєї программи:

Рисунок 1. Головне вікно IDE

Компіляція програми можлива прямо у режимі розробника

Рисунок 2. Компіляція у режимі розробника

Вбудований інспектор впливає на предмет змінних і дозволяє змінювати змінні в скриптах на льоту, не дивлячись у код. Причому не тільки int'и, але й матеріали, текстури, моделі... Дуже економить час. У документації до API вказується хорошим тоном не писати, припустимо, шлях до текстурі безпосередньо в скрипті, а просто робити властивістю класу пусте властивість відповідно типу, і вибирати в інспекторові потрібне:

Рисунок 3. Менежер об’єктів

Праворуч - заготовки об'єктів, ліворуч - ті об'єкти, що є в поточній сцені. Зручно, що під час прогону рівня в редакторі (кнопка «play»), можна поставити прогон на паузу і подивитися поточний стан об'єктів - набагато рідше доводиться читати логи або виводити на HUD відпрацьований рядок, щоб подивитися поведінку однієї маленької змінної:

Рисунок 4. Об’єкти для роботи в юніті.

2.2.1Мова програмування С#

C# (вимовляється Сі-шарп) — об'єктно-орієнтована мова програмування з безпечною системою типізації для платформи.NET. Розроблена Андерсом Гейлсбергом, Скотом Вілтамутом та Пітером Гольде під егідою Microsoft Research (при фірмі Microsoft).

Синтаксис C# близький до С++ і Java. Мова має строгу статичну типізацію, підтримує поліморфізм, перевантаження операторів, вказівники на функції-члени класів, атрибути, події, властивості, винятки, коментарі у форматі XML. Перейнявши багато що від своїх попередників — мов С++, Delphi, Модула і Smalltalk — С#, спираючись на практику їхнього використання, виключає деякі моделі, що зарекомендували себе як проблематичні при розробці програмних систем, наприклад множинне спадкування класів (на відміну від C++).

Історія виникнення

C# є дуже близьким родичем мови програмування Java. Мова Java була створена компанією Sun Microsystems, коли глобальний розвиток

інтернету поставив задачу розосереджених обчислень. Взявши за основу популярну мову C++, Java виключила з неї потенційно небезпечні речі (типу вказівників без контролю виходу за межі). Для розосереджених обчислень була створена концепція віртуальної машини та машинно-незалежного байт-коду, свого роду посередника між вихідним текстом програм і апаратними інструкціями комп'ютера чи іншого інтелектуального пристрою.

Java набула чималої популярності, і була ліцензована також і компанією Microsoft. Але з плином часу Sun почала винуватити Microsoft, що та при створенні свого клону Java робить її сумісною виключно з платформою Windows, чим суперечить самій концепції машинно-незалежного середовища виконання і порушує ліцензійну угоду. Microsoft відмовилася піти назустріч вимогам Sun, і тому з'ясування стосунків набуло статусу судового процесу. Суд визнав позицію Sun справедливою, і зобов'язав Microsoft відмовитися від позаліцензійного використання Java.

У цій ситуації в Microsoft вирішили, користуючись своєю вагою на ринку, створити свій власний аналог Java, мови, в якій корпорація стане повновладним господарем. Ця новостворена мова отримала назву C#. Вона успадкувала від Java концепції віртуальної машини (середовище.NET), байт-коду (MSIL) і більшої безпеки вихідного коду програм, плюс врахувала досвід використання програм на Java.

Нововведенням C# стала можливість легшої взаємодії, порівняно з мовами-попередниками, з кодом програм, написаних на інших мовах, що є важливим при створенні великих проектів. Якщо програми на різних мовах виконуються на платформі.NET,.NET бере на себе клопіт щодо сумісності програм (тобто типів даних, за кінцевим рахунком).

Станом на сьогодні C# визначено флагманською мовою корпорації Microsoft, бо вона найповніше використовує нові можливості.NET. Решта мов програмування, хоч і підтримуються, але визнані такими, що мають спадкові прогалини щодо використання.NET.

Назва мови

Символ # у назві мови можна інтерпретувати і як дві пари плюсів ++, що натякають на новий крок у розвитку мови порівняно з C++ (подібно до кроку від C до C++), і як музичний символ дієз, разом з буквою C, що становить в англійській мові назву ноти до-дієз. Останнє й дало назву мові. Попри те, що символ # насправді є символом для позначення номера на більшості клавіатур і відрізняється від символу дієз (Unicode U+266F), Microsoft, як автор мови, неодноразово зверталася до своїх клієнтів з проханням прийняти таку стилізацію.

Особливості мови

C# розроблялась як мова програмування прикладного рівня для CLR і тому вона залежить, перш за все, від можливостей самої CLR. Це стосується, перш за все, системи типів C#. Присутність або відсутність тих або інших виразних особливостей мови диктується тим, чи може конкретна мовна особливість бути трансльована у відповідні конструкції CLR. Так, з розвитком CLR від версії 1.1 до 2.0 значно збагатився і сам C#; подібної взаємодії слід чекати і надалі. (Проте ця закономірність буде порушена з виходом C# 3.0, що є розширеннями мови, що не спираються на розширення платформи.NET.) CLR надає C#, як і всім іншим.NET-орієнтованим мовам, багато можливостей, яких позбавлені «класичні» мови програмування. Наприклад, збірка сміття не реалізована в самому C#, а проводиться CLR для програм, написаних на C# точно так, як і це робиться для програм на VB.NET, J# тощо.

Версії:

Версія 1.0

Проект C# був початий в грудні 1998 і отримав кодову назву COOL (C-style Object Oriented Language). Версія 1.0 була анонсована разом з платформою.NET у червні 2000 року, тоді ж з'явилася і перша загальнодоступна бета-версія; C# 1.0 остаточно вийшов разом з Microsoft Visual Studio.NET у лютому 2002 року.

Перша версія C# нагадувала за своїми можливостями Java 1.4, дещо їх розширюючи: так, в C# були властивості (що виглядають у коді як поля об'єкта, але, при зверненні до них, можуть викликати пов'язані методи класу), індексатори (подібні до властивостей, але приймають параметр як індекс масиву), події, делегати, цикли foreach, структури, що передаються за значенням, автоматичне перетворення вбудованих типів в об'єкти при необхідності (boxing), атрибути, вбудовані засоби взаємодії з некерованим кодом (DLL, COM) тощо. Крім того, в C# вирішено було перенести деякі можливості C++, відсутні в Java: беззнакові типи, перевизначення операцій (з деякими обмеженнями, на відміну від C++), передача параметрів у метод за посиланням, методи зі змінним числом параметрів, оператор goto. Також у C# залишили обмежену можливість роботи з вказівниками — в місцях коду, спеціально позначених словом unsafe і при вказівці спеціальної опції компілятору.

Версія 2.0

Проект специфікації C# 2.0 вперше був викладений Microsoft в жовтні 2003 року; у 2004 році виходили бета-версії (проект з кодовою назвою Whidbey), C# 2.0 остаточно вийшов 7 листопада 2005 року разом з Visual Studio 2005 і.NET 2.0.

Нові можливості у версії 2.0:

Часткові типи (розділення реалізації класу більш ніж на один файл).

Узагальнені, або параметризовані типи (generics, «дженерики»). На відміну від шаблонів C++, вони підтримують деякі додаткові можливості і працюють на рівні віртуальної машини. Разом з тим, параметрами узагальненого типу не можуть бути вирази.

Нова форма ітератора, що дозволяє створювати співпрограми за допомогою ключового слова yield, подібно Python і Рубі.

Анонімні методи, що забезпечують функціональність замикання.

Оператор ??: return obj1 ?? obj2; означає (у нотації C# 1.0) return obj1!=null ? obj1: obj2;.

Типи-значення, що обнуляються (nullable), (що позначаються знаком питання, наприклад, int? i = null;) є тими ж самими типами-значеннями, що можуть nfrj; приймати також значення null. Такі типи дозволяють поліпшити взаємодію з базами даних через мову SQL.

Версія 3.0

В червні 2004 року Андерс Гейлсберг вперше розповів на сайті Microsoft про плановані розширення мови в C#3.0. У вересні 2005 року було випущено проект специфікації C# 3.0 і бета-версія C# 3.0, що встановлюється у вигляді доповнення до існуючих Visual Studio 2005 і.NET 2.0. Офіційно версія C# 3.0 побачила світ 19 листопада 2007 року у складі.NET Framework 3.5.

В C# 3.0 з'явилися такі радикальні доповнення та зміни:

Ключові слова select, from, where, що дозволяють робити запити з SQL, XML, колекції тощо (запит, інтегрований в мову, англ. Language Integrated Query, або LINQ)

Ініціалізація об'єкта разом з його властивостями:

матиме вигляд:

Лямбда-вирази (анонімні функції):

матиме вигляд

Автоматичне визначення типів локальних змінних:

матиме вигляд:

Безіменні типи:

Методи-розширення — додавання методу в існуючий клас за допомогою ключового слова this при першому параметрі статичної функції.

C# 3.0 буде сумісний з C# 2.0 за генерованим MSIL-кодом; поліпшення в мові — чисто синтаксичні і реалізуються на етапі компіляції. Наприклад, багато з інтегрованих запитів LINQ можна реалізувати в поточних версіях використовуючи безіменні делегати в поєднанні з предикативними методами над контейнерами, на кшталт List.FindAll і List.RemoveAll.

Версія 4.0

Нові можливості в версії 4.0:

Динамічна типізація об'єктів:

Динамічний перехід,

Динамічний виклик методу.

Приклад:

Препроцесор

C# має «препроцесорні директиви» (хоча насправді він не має препроцесора) на основі препроцесора C, це дає програмісту можливість визначити символи, але не макроси. Умовні директиви, такі як #if, #endif, чи #else також можливі. Директиви типу #region дають натяк редактору для згортання фрагментів коду.

Специфікація C# визначає мінімальний набір бібліотек типів і класів, на який має розраховувати компілятор. На практиці, C# найчастіше використовується з якоюсь реалізацією Common Language Infrastructure (CLI), яка стандартизована як ECMA-335 Common Language Infrastructure (CLI).

Стандартизація

C# стандартизований в ECMA та ISO.

У серпні 2000 Microsoft Corporation, Hewlett-Packard та Intel Corporation виступили спонсорами стандартизації специфікації мови C#, а також Common Language Infrastructure (CLI) в організації зі стандартизації ECMA International. У грудні 2001 ECMA випустила ECMA-334 Специфікація мови C#. C# стала стандартом ISO у 2003 (ISO/IEC 23270:2006 — Information technology—Programming languages—C#). До того ECMA ще встигла адоптувати еквівалентну специфікацію як другк редакцію C# у грудні 2002.

У червні 2005 ECMA схвалила редакцію 3 специфікації C#, і відредагувала ECMA-334. Доповнення включали часткові класи, анонімні методи, тип null, і генерики (аналоги шаблонів C++).

У липні 2005 ECMA подала стандарти і відповідні технічні умови на ISO/IEC JTC 1 через пришвидшену процедуру (Fast-Track). Цей процес звичайно займає 6-9 місяців.

Критика

Хоча визначення мови C# і CLI стандартизовані ISO та Ecma, що забезпечує розумний і недискримінаційний ліцензійний захист (RAND) від патентних позовів, Microsoft використовує C# і CLI у своїй бібліотеці Base Class Library (BCL), яка є фундаментом їхньої власницької платформи.NET framework, і яка забезпечує безліч нестандартизованих класів (розширений I/O, GUI Windows Forms, веб-служби тощо). У деяких випадках, де патенти Microsoft відносяться до стандартів, використаних у.NET framework,

документовані Microsoft, і застосовані патенти доступні через інші RAND умови або через Обітницю Відкритої Специфікації Microsoft (Microsoft's Open Specification Promise, OSP), які випускають патентні права публічно. Але є деякі застереження і обговорення про те, що існують додаткові аспекти, патентовані Microsoft, що не покриті, які можуть утримувати незалежних реалізаторів повного фреймворку. Microsoft також погодився не позиватися проти розробників відкритого програмного забезпечення щодо порушення прав у неприбуткових проектах для частини свого фреймворку, покритого OSP. Microsoft погодився не порушувати патентних вимог щодо продуктів Novell проти платних клієнтів Novel за винятком переліку продуктів, що явно не згадують C#,.NET чи реалізацію.NET від Novell (проект Mono). Проте Novell дотримується точки зору, що Mono не порушує жодного патенту Microsoft.. Microsoft також уклав спеціальну угоду не позиватися проти браузерного плагіну Moonlight, який спирається на Mono, отриманного від Novell.

У зауваженні, опублікованому на сайті новин Free Software Foundation у червні 2009 Річард Столлман попереджає, що він вважає, що «Microsoft можливо планує одного дня оголосити всі вільні реалізації C# такими, що використовують програмні патенти» і рекомендував розробникам уникати того, що він називає «безвідплатним ризиком», пов'язаним із «залежністю вільних реалізацій C#». Free Software Foundation пізніше повторила свої попередження, стверджуючи, що розширення Microsoft Community Promise на специфікації ECMA C# і CLI можуть не вберігти від шкідництва Microsoft відкритим реалізаціям C#, оскільки багато специфічних для Windows бібліотек, включених у.NET та Mono, не покриті цими обіцянками. Тому більшість провідних дистрибутивів Лінукс, за винятком Novell SUSE Linux, не включають Mono в установку за замовчанням (хоча його і можна завантажити з репозиторіїв).

Реалізації

Титульним компілятором C# є Microsoft Visual C#.

Існують інші компілятори C#, часто вони включають реалізації Common Language Infrastructure і бібліотеки класів.NET:

Проект Microsoft Rotor (який тепер зветься Shared Source Common Language Infrastructure, ліцензований тільки для навчального і дослідницького використання) забезпечує реалізації CLR runtime і компілятор C#, і підмножину бібліотек фреймворка Common Language Infrastructure, відповідно до специфікації ECMA (до C# 2.0, і з підтримкою тільки Windows XP).

Проект SharpDevelop від компанії icsharpcode, який використовується як альтернатива Visual Studio. Забезпечує повну реалізацію Common Language Infrastructure. Остання стабільна версія IDE 4.4 (28 серпня 2013), тестова версія 5.0 (13 лютого 2014. Зовнішній вигляд IDE дуже нагадує Microsoft Visual C#,що робить комфортним перехід від однієї середи до іншої.

Проект Mono, початий компанією Ximian і продовжений її покупцем і наступником Novell, забезпечує відкритий компілятор C#, повну відкриту реалізацію Common Language Infrastructure, включаючи потрібні бібліотеки фреймворка відповідно до специфікації ECMA, і близьку до повної реалізацію власницьких бібліотек класів Microsoft.NET до.NET 2.0, але не специфічних бібліотек.NET 3.0 і.NET 3.5, як для Mono 2.0.

Проект DotGNU також надає відкритий компілятор C#, близьку до повної реалізацію Common Language Infrastructure, включаючи потрібні бібліотеки фреймворка відповідно до специфікації ECMA, і підмножину деяких залишених власницьких біліотек класів Microsoft.NET до.NET 2.0 (які не документовані або не включені у специфікації ECMA, але включені у стандартне визначення Microsoft.NET Framework).

DotNetAnywhere Micro Framework Common Language Runtime націлений на вбудовані системи, і підтримує майже всі специфікації C# 2.0.

Приклад «Hello, world!»

JavaScript — назва реалізації стандарту мови програмування ECMAScript компанії Netscape, базується на принципах прототипного програмування. Найпоширеніше і найвідоміше застосування мови — написання сценаріїв для веб-сторінок, але, також, використовується для впровадження сценаріїв керування об’єктами вбудованими в інші програми.

Незважаючи на схожість назв, JavaScript та мова програмування Java мають дуже мало спільного. Права на назву Java належать компанії Sun Microsystems.

JavaScript розроблений у компанії Netscape. На сьогоднішній день підтримується більшістю браузерів. Текст програми включається безпосередньо в HTML-документ і інтерпретується самим браузером (точніше, вбудованим у браузер рушієм JavaScript). Застосовується в основному для часткової автоматизації обробки і маніпуляції даними, які використовує сторінка.

Станом на 2006 рік, останній стандарт мови — JavaScript 1.7. Якщо спрощено, то ECMA-262 є стандартизованим варіантом мови JavaScript. Стандартом ECMA-357 визначено E4X, розширення мови для роботи з XML.

JavaScript має низку властивостей об’єктно-орієнтованої мови, але завдяки концепції прототипів підтримка об’єктів в ній відрізняється від традиційних мов ООП. Крім того, JavaScript має ряд властивостей, притаманних функціональним мовам, — функції як об’єкти першого рівня, об’єкти як списки, каррінг (currying), анонімні функції, замикання (closures) — що додає мові додаткову гнучкість.

JavaScript має C-подібний синтаксис, але в порівнянні з мовою Сі має такі корінні відмінності:

  • об’єкти, з можливістю інтроспекції і динамічної зміни типу через механізм прототипів
  • функції як об’єкти першого класу
  • обробка винятків
  • автоматичне приведення типів
  • автоматичне прибирання сміття
  • анонімні функції

JavaScript містить декілька вбудованих об’єктів: Global, Object, Error, Function, Array, String, Boolean, Number, Math, Date, RegExp. Крім того, JavaScript містить набір вбудованих операцій, які, строго кажучи, не обов’язково є функціями або методами, а також набір вбудованих операторів, що управляють логікою виконання програм. Синтаксис JavaScript в основному відповідає синтаксису мови Java (тобто, зрештою, успадкований від C), але спрощений порівняно з ним, щоб зробити мову сценаріїв легкою для вивчення. Так, приміром, декларація змінної не містить її типу, властивості також не мають типів, а декларація функції може стояти в тексті програми після неї.

Семантика мови схожа з семантикою мови Self.

Приклад оголошення і використання класу в JavaScript (клас є одночасно функцією, оскільки функції — це об’єкти першого рівня):

Одна з популярних технологій, що дозволила зробити сторінки динамічнішими і забезпечити нові можливості — це динамічне

завантаження і вставка даних в документ, що отримала назву AJAX. При розробці великих і нетривіальних веб-застосунків з використанням JavaScript, критично важливим є доступ до інструментів зневадження. Оскільки браузери від різних виробників дещо відрізняються у поведінці JavaScript і реалізації Об'єктної Моделі Документа, треба мати в руках зневаджувач для кожного браузера, якщо веб-застосування орієнтовано на нього.

На даний час Internet Explorer, Firefox, Opera, Google Chrome та Safari мають зневаджувачі для себе.

Internet Explorer має три завантажувача для себе: Microsoft Visual Studio є найпотужнішим з цих трьох, слідом йде Microsoft Script Editor (компонента Microsoft Office), і нарешті існує безплатний Microsoft Script Debugger з базовими функціями. Веб-застосування для Firefox допоможе привести до розуму додаток Firebug (зручно вбудований безпосередньо в браузер), або давніший відладчик Venkman, котрий також працює з браузером Mozilla. Drosera — це зневаджувач з WebKit engine, що супроводжує Apple Safari.

Також існують кілька інструментів, як вільних, наприклад JSLint, інструмент перевірки якості коду, що сканує JavaScript програму, шукаючи проблеми коду, так і комерційних продуктів типу інструменту з назвою JavaScript Debugger.

Оскільки JavaScript є інтерпретатором, без строгої типізації, і може виконуватися в різних середовищах, кожне зі своїми власними особливостями сумісності, програміст має бути дуже уважним, і повинен перевіряти, що його код виконується як очікується в широкому переліку можливих конфігурацій. Дуже часто трапляються випадки, коли скрипт, що чудово працює в одному середовищі, видає некоректні результати в іншому.

Кожен блок сценарію інтерпретатор розбирає окремо. На веб-сторінках, коли треба комбінувати блоки JavaScript та HTML, синтаксичні помилки найти легше, якщо тримати функції сценарію в окремому блоці

коду, або (ще краще) використовувати багато малих пов’язаних.js файлів. В такий спосіб синтаксична помилка не спричинятиме «падіння» цілої сторінки, і можна надати допомогу, елегантно вийшовши зі сторінки.

Реальний звіт про використання JavaScript в браузерах свідчить, що

  • біля 90 % користувачів мають встановленим JavaScript версії 1.3,
    • близько 4 % — версію 1.0,
    • близько 3.5 % — версію 1.5,
    • близько 2.5 % — версію 1.6,

3 РОЗРАХУНКОВИЙ РОЗДІЛ

3.1 Скриптування та аналіз об’єктів програми

Прграма «Віртуальна екскурсія по ОККТ» дуже велика

Всі 3 поверхи заставлені об'єктами що знижують FPS до 15, що робить неприйнятним перегляд на слабких комп'ютерах, для підвищення FPS проект розділений на 3 локації, такі як:

  • Перший поверх та вулиця
  • Другий поверх
  • Третій поверх

Для оптимізації на слабких комп'ютерах було вирішено використовувати мінімальні системні ресурси, але підвищити якість текстур. (рисунок 5)

Рисунок 5. Оптимізація

Unity 3d - Програмування С #

У Unity є вбудований редактор коду, що підсвічує і доповнює синтаксис, називається він MonoDevelop (див. рис.6):

Рисунок 6. Програмування у Mono Develop

Скрипти програми:

using UnityEngine; // Використовуемо бібліотеку UnityEngine

using System.Collections; // Використовуемо бібліотеку System.Collections

public class Load1lvlbox: MonoBehaviour { // створюємо клас Load1lvlbox

public Texture2D LoadScreen; // змінна для екрану завантаження типу 2D текстура

private Rect rect1; // зміна системи координат

void Start () { // При старяті программи задати у центр екрана, картинку завантаження.

rect1 = new Rect((Screen.width/2) - (LoadScreen.width/2),(Screen.height/2) - (LoadScreen.height/2),LoadScreen.width,LoadScreen.height);

}

public GameObject ExitPoint; // Обєкт на сцені, куди телепортувати гравця після завантаження.

void OnTriggerEnter(Collider other) { // перевіряемо чи зіткнувся гравець з предметом

showimage = true; // показуємо екран зупуска

other.gameObject.transform.position = ExitPoint.transform.position; // перенести гравця на координати другої сцени

Application.LoadLevel (1); // завантаження сцени 2

// showimage = false; // не показувати стартовий екран

}

void OnGUI () // розмальовка екрану

{

if (showimage == true) { // якщо чекбокс включено малюемо запусковий екран.

GUI.Label(rect1,LoadScreen);

}

Зміна камеры:

using UnityEngine; // Використовуемо бібліотеку UnityEngine

using System.Collections; // Використовуемо бібліотеку System.Collections

public class SwitchCamera: MonoBehaviour

// Використовуемо загальнодоступний клас SwitchCamera

{

int stadia = 1; // вираховуемо змінну запам’ятовуемо натиснута клавіша С або ні

void Start() // Дія при запуску скрипта, скрипт знаходиться на сцені, а це означає щр призапуску проекту буде автоматично використати код приведений нижче

{

Screen.showCursor = false; // прибираемо курсор з екрану

Screen.lockCursor = true; // блокуємо курсор у центрі екрану

}

void Update () // перевіряемо кожний кадр

{

switch(stadia) // Конструкція switch

{

case 1: // Якщо stadia = 1, то:

Screen.showCursor = false; // прибираємо курсор

Screen.lockCursor = true; // блокуемо курсор в центрі єкрану

stadia = 2; // переходим на наступну стадію

break; // переріваємо виконання коду

case 2: // Якщоstadia = 2, то:

stadia = 1; // Повертаємо стадію у початкове положення

break; // перериваємо витконаня з перемінною коду

}

void OnGUI () малюємо на екрані координ Rect.

{

GUI.Label(new Rect(10,10,300,30), "керування:");

GUI.Label(new Rect(10,40,300,30)," <C> - блокувати\роблокувати курсор");

GUI.Label(new Rect(10,70,300,30)," <W A S D> - рух");

GUI.Label(new Rect(10,100,300,30)," <ПКМ> - інформація");

}

Для коректної роботи програми на комп'ютерах користувачів повинен бути встановлений браузер (IE. Опера, Google chrome, Mozila FireFox і т. д.), Unity web player.

Після установки Unity web player, на екрані користувачів з'явиться завантажувальний екран Unity.

Рисунок 7. Завантажувальний екран Unity

Після завантаження програми, ми побачимо стартову сцену, на якій можна ознайомитися з управлінням в натиснувши клавішу Е біля стенду.

  На цій сцені ми можемо почати віртуальну екскурсію по Одеському коледжі комп’ютерних технологій при натисканні на кнопку «Почати екскурсію»

Після натискання кнопки «Почати екскурсію », користувач починає свою екскурсію з входу до Одеського коледжу комп’ютерних технологій. Для огляду середовища навколо вашого персонажа використовуйте маніпулятор миша, для пересування по місцевості використовуйте клавіші: W - для пересування персонажа вперед, A - для пересування персонажа вліво, S - для пересування персонажа назад, D - для пересування персонажа вправо.

3.2 Тестування та виправлення помилок

Я розробляв код програми для кожної сцени проекту й одразу ж тестував його. Були випадки коли код не копілювався так як мені було потрібно. Програму було розбито на декілька сцен з метою оптимізації. Я написав сценарій для переходу з першого поверху на другий, але при тестуванні я був розачарований тим що не було потрібного ефекту: замість того щоб опинитися на другому поверсі я потрапив на перший. Я почав шукати неправильне місце написання сценарію й здивувався. Справа у тому, що я використовую MonoDevelopment, а це серидовище зрблене спеціально для написання сценаріїв. Тобто він має повідомляти про помилки у синтаксисі, але нічого він не виявив. Я звернувся до мого співрозробника.Він протестував мій код, й також нічого не виявив. Я мучився з цим приблизно 2 дні й дуже здивувався зрозумівши у чому була помилка. При компіляції проекту я забув додати до першого поверху другий. Тобто персонажу не було куди перходити. Ось так здобувається досвід.

4. ЕКОНОМІЧНИЙ РОЗДІЛ