Як я можу побудувати гру в Unity з мінімальним / відсутнім використанням візуального редактора?


24

Я хотів би написати гру повністю на C #. У процесі пошуку двигуна я знайшов Unity3D, але всі підручники та документація говорять про візуальний редактор та IDE Unity, в якому ви клацаєте та орієнтуєтесь, щоб створити сцени та сценарії.

Я не хочу цього робити. Я вважаю за краще повне висвітлення коду над дизайнерами, які відволікають від мене речі. Я хотів би написати чистий C # код з нуля або, якщо потрібно, сценарії Unity як додаток. Я не міг знайти жодного пояснення чи документації щодо цього; як я можу побудувати гру за допомогою Unity та мінімальним (або ні) використанням візуального редактора?


1
Голосування про закриття, це рамкова рекомендація, замаскована як питання про Єдність.
BlueRaja - Danny Pflughoeft

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

2
Більшість розробників шукають візуального редактора в якийсь момент, щоб спроектувати їхні рівні, тому що візуально позиціонувати речі набагато простіше, ніж встановити положення кожного маленького дудада в коді. Те саме стосується редагування / проектування макетів графічного інтерфейсу. Наявність цього матеріалу вже вбудовано - це величезна користь IMHO.
bummzack

4
I prefer writing my own level editor which provides only the stuff really neccessary for my gameнормально, це означає, що ви не хочете використовувати ігровий движок, ви хочете програмувати з графічною бібліотекою. Однак ти вже намагаєшся це зробити, тому ... я відчуваю тут суперечність.
поштовх

3
@jhocking Тоді наше визначення ігрового двигуна здається дуже різним. Бібліотека класів - це ігровий движок, якщо він абстрагує типові ігрові завдання, такі як математика камери, звукова система і, можливо, навіть трохи фізики, але дизайнер - це не вимога, і на мою думку, це навіть не повинно бути обов'язковим для використання .
Рей

Відповіді:


27

Я повний початківець в Unity, але це я роблю в даний момент, і це зводить використання редактора до мінімуму:

У редакторі у мене є лише три об’єкти: порожній GameObject під назвою "головний", камера та світло. І це лише тому, що до цих пір я працюю лише з однією камерою та одним світлом, тому було швидше таким чином. Пізніше я їх, мабуть, видалю, і залишиться лише "головне".

У "Активи / MyScripts" у мене є клас "Main", який додається до "основного" GameObject як поведінка. Що означає, що при запуску програми клас "Main" в інстанційному режимі і викликається його метод. Клас "Основний" такий:

using UnityEngine;

public class Main : MonoBehaviour
{

    void Start ()
    {
        // initialize the game
    }

    void Update ()
    {
        // update physics
    }

}

У грі я динамічно будую таке середовище:

GameObject floor = GameObject.CreatePrimitive (PrimitiveType.Cube);
floor.renderer.material.color = RandomGreen ();

Але це тому, що поки я складаю лише прототип. Пізніше я захочу замінити кубики на деякі приємні речі, відредаговані в Blender. Для чого знадобиться зробити їх у Blender та імпортувати їх до Units як "збірники". Тоді я подібним чином інстантую "збірники" з коду C #.

Якщо ви хочете змусити об'єкт реагувати на події, такі як зіткнення з іншими об'єктами, ви можете інстанціювати об'єкт і динамічно додавати до них клас поведінки, який є класом C #, похідним від MonoBehavior. Наприклад, якщо ви хочете мати автомобіль, ви робите автомобільний збір і пишете клас "CarBehavior" для його поведінки в грі.

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


2
Я б сказав, що це виглядає як досить чітка і тверда відповідь лише для початківців Unity :)
Рей

Спасибі! Я інакше досвідчений програміст, але це мій перший проект в Unity, і він ще далеко не закінчений. Я ще не використовував збірники. Можуть бути деякі ускладнення, про які я зараз не знаю, тому рекомендую приймати поради з зерном солі. До речі, серіалізація в Unity відчуває мене трохи протиінтуїтивно. Мені доведеться вивчити це глибше, і це може вплинути на деякі дизайнерські рішення.
Viliam Búr

9

Під час роботи з Unity вам належить виконати певну роботу в редакторі Unity; просто так працює Unity.

Однак переважна більшість того, що ви робили програмістом, не відбувається в редакторі Unity; Файли сценаріїв - це зовнішні текстові файли, записані у зовнішній IDE, і як програміст ви використовуєте лише редактор Unity, щоб зв’язати, які сценарії виконувати, а потім натиснути Play, щоб фактично запустити гру. Це не на відміну від з'єднання в класах у налаштуваннях проекту, а потім натискання «Виконати» в межах IDE.

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

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


1
опинився в середині читання вашої книги, коли я натрапив на цю відповідь
максимум прихильників

6

Я вважаю, що ви шукаєте, це Futile Framework for Unity.

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

Відмова: Хоча Futile дуже орієнтований на код, неминуче вам доведеться якось возитися з редактором Unity. Але це дуже зменшується з Futile.


2

Я хотів би додати тут всі хороші відповіді, особливо відповідь @jhocking:

Майже все, що я знайшов у Unity, має звичайний текстовий аналог у дереві папок проектів. Я безпосередньо редагував збірні та інші ігрові об'єкти, не відкриваючи Unity, і ці зміни були успішно знайдені іншими розробниками після здійснення.

Хоча я не знав стільки про Futile Framework до сьогодні, але, схоже, це дійсно приголомшливий спосіб дістатись до всього.

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

Мої два центи кажуть, що в основному отримайте кілька об'єктів, які вам потрібні в Unity, а потім покладайтеся на сценарії у зовнішньому редакторі. Ви можете зробити майже все в простому тексті.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.