Суббота, 16 Ноября 2024, 13:32

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-[ответ] по Unity
QWER56Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1
старожил
Сейчас нет на сайте
Вопрос-[Ответ] по Unity3d

  • База скриптов Unity3d
  • Курс Уроков по Unity 3D от Alcatraz

    ConsMark - поисковик по интернет магазинам.

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • Knight1032Дата: Пятница, 16 Марта 2012, 22:33 | Сообщение # 1721
    заслуженный участник
    Сейчас нет на сайте
    Как подключить библиотеки в юнити ?

    Да, я программист, дизайнер, сценарист,
    Я сам себе издатель и сам себе игрок...
    seamanДата: Суббота, 17 Марта 2012, 00:00 | Сообщение # 1722
    старожил
    Сейчас нет на сайте
    Засунуть ее в папку Plugins и использовать using в скриптах. Это если библиотека написана на .NET. Если на нативных языках, то нужна ПРО версия Юнити и нужно изучать маршалинг и интероп.
    Knight1032Дата: Суббота, 17 Марта 2012, 00:12 | Сообщение # 1723
    заслуженный участник
    Сейчас нет на сайте
    seaman, а если я хочу подключить что-то вроде булета?

    Да, я программист, дизайнер, сценарист,
    Я сам себе издатель и сам себе игрок...
    seamanДата: Суббота, 17 Марта 2012, 00:27 | Сообщение # 1724
    старожил
    Сейчас нет на сайте
    Второй вариант.
    Например:
    Маршалинг
    Interop
    По этой теме очень много инфы, но она достаточно сложна. Пробуйте - может что и получится.
    jazzyДата: Воскресенье, 18 Марта 2012, 22:22 | Сообщение # 1725
    заслуженный участник
    Сейчас нет на сайте
    Кто нибудь знает как сотворить сие чудо? web demo Точнее поворот листьев в направлении камеры как в speed three. Как я понял листья это частицы.
    SnakeRДата: Воскресенье, 18 Марта 2012, 23:04 | Сообщение # 1726
    постоянный участник
    Сейчас нет на сайте
    jazzy, берешь этот полигон с листьями и заставляешь его все время смотреть на игрока, вот и вся хитрость.

    Unity3D Developer
    Ваш лучший помощник при разработке в Unity3D
    jazzyДата: Понедельник, 19 Марта 2012, 00:04 | Сообщение # 1727
    заслуженный участник
    Сейчас нет на сайте
    Quote (SnakeR)
    берешь этот полигон с листьями и заставляешь его все время смотреть на игрока, вот и вся хитрость.

    чет сомниваюсь
    TheDarkletДата: Понедельник, 19 Марта 2012, 00:17 | Сообщение # 1728
    почетный гость
    Сейчас нет на сайте
    Помогите!Проекту требуются тени, а работаю я на Unity Indie.Соотвественно для реализации теней выбрал Blob shadow projector)Для аттачинга проектора к обьекту сделал его дочерним обьекту, но появилась одна неувязочка.Проектор также вращается относительно обьекта.Можно ли как-то просто перемещать проектор по координатам другого обьекта через скрипт?И можно ли заморозить вращение осей проектора?



    SnakeRДата: Понедельник, 19 Марта 2012, 00:22 | Сообщение # 1729
    постоянный участник
    Сейчас нет на сайте
    jazzy, ну возьми и попробуй, ты думаешь что там мего-сложная технология? ))

    Unity3D Developer
    Ваш лучший помощник при разработке в Unity3D
    EizahlerДата: Понедельник, 19 Марта 2012, 09:43 | Сообщение # 1730
    участник
    Сейчас нет на сайте
    Здравствуйте. Имеется несколько теоретических вопросов по Unity. Сразу оговорюсь, что особых практических навыков в работе с движками не имею, раньше работал только с конструктором RPG Maker (без изучения Ruby), в институте учили Pascal, но уже смутно, что помню. Учить собираюсь C# и 3Ds Max.

    1) Для начала вопрос о размерах. В одном видео упоминалось, что значения размеров объекта в его свойствах обозначается в метрах. Однако когда я поставил на сцену несколько стандартных объектов и задал им одинаковые значения, они (объекты) получились разные. Возможно, это я плохо разобрался в осях координат, но все же, как на самом деле обстоит дело?

    2) Как лучше создавать карту (уровень): Сделать несколько деталей в 3D редакторе, а затем собрать их в Unity, или сразу делать готовый уровень в редакторе? Я так понимаю, что первый способ предпочтительней, если делать игру с разрушаемым окружением?

    3) Вопрос об АИ. Чисто теоретический. Допустим, есть уровень: узкий коридор, выходящий в просторный зал с балконами. Можно ли объектам или определенным площадям уровня (если он единое целое) задавать определенные параметры (наверное, я подразумеваю триггеры), вступив на которые АИ принимает соответствующие решения? Объясню подробнее. АИ заходит в коридор и «понимает», что нужно достать дробовик, следует в просторный зал и «понимает», что нужно достать штурмовую винтовку и спрятаться за ближайшим укрытием, ну а когда он будет на балконе, то достанет снайперскую винтовку.

    4) Вопрос по обучению. Для C# нашел книгу «Visual С# 2008 Базовый курс», за авторством кучи мужиков. Стоит учиться по ней, или есть, что лучше? Встречал еще, что то типа «C# для игр», но я не доверяю книгам с таким названием.
    BarbatosДата: Понедельник, 19 Марта 2012, 09:48 | Сообщение # 1731
    3D-моделлер/Руководитель
    Сейчас нет на сайте
    Eizahler,
    1) Смотри внимательней документацию и свойства обьектов.
    2) Если ты сделаешь все в 3д редакторе будет очень много проблем - Тени будут просчитыватся неправильно, колизия будет стоять не там где нужно и будет корявой, анимировать уровень будет невозможно. Лучше через редактор игры на то он и есть.
    3) Не знаком с юнити, но вроде тригеры поведения есть во всех редакторах от 2007 года.


    Его остатки и на хлеб не намазать. Мой тебе совет Пабло - относись к жизни как к веселухе, но непродолжительной. @Эш

    Сообщение отредактировал Barbatos - Понедельник, 19 Марта 2012, 09:49
    jazzyДата: Понедельник, 19 Марта 2012, 09:51 | Сообщение # 1732
    заслуженный участник
    Сейчас нет на сайте
    Quote (Eizahler)
    2) Как лучше создавать карту (уровень): Сделать несколько деталей в 3D редакторе, а затем собрать их в Unity, или сразу делать готовый уровень в редакторе? Я так понимаю, что первый способ предпочтительней, если делать игру с разрушаемым окружением?

    разницы нет.....если собрать уровень в редакторе то в unity вы получите префаб. Но лучше собрать в unity. Если вы имели в виду что раставлять в 3д редакторе обьекты. А если имели в виду одним мешем весь уровень то этого просто делать нельзя


    Сообщение отредактировал jazzy - Понедельник, 19 Марта 2012, 10:12
    pixeyeДата: Понедельник, 19 Марта 2012, 10:30 | Сообщение # 1733
    Red Winter Software
    Сейчас нет на сайте
    Quote (Eizahler)
    1) Для начала вопрос о размерах. В одном видео упоминалось, что значения размеров объекта в его свойствах обозначается в метрах. Однако когда я поставил на сцену несколько стандартных объектов и задал им одинаковые значения, они (объекты) получились разные. Возможно, это я плохо разобрался в осях координат, но все же, как на самом деле обстоит дело?


    разные по размерам? Вообще юнити не использует "метры" - называй это как хочешь, но метрика в данном случае влияет только на физику. Я делаю на юнити 2д игры и у меня все в пикселах (
    делаешь ортограф камеру с размером равным половине от высоты разрешения - ВСЕ. каждая единица пространства станет равна одному пикселу.

    Я забыл/лень искать сейчас про соотношения в юнити и максе метрики, однако такая проблема у меня возникала и я смотрел на глаз, подгоняя маштабы в максе под маштбы юнити.

    Quote (Eizahler)
    2) Как лучше создавать карту (уровень): Сделать несколько деталей в 3D редакторе, а затем собрать их в Unity, или сразу делать готовый уровень в редакторе? Я так понимаю, что первый способ предпочтительней, если делать игру с разрушаемым окружением?


    Комплексный вопрос - зависит от чего и на что уровень. Например если игра мобильная, то очень важен размер приложения. Каждая твоя сцена-уровень может весить в районе 150-300 кб ( утрирую, у меня примерно столько выходило для 2д игры ) - умножаем на уровней 40 и уже как то печально. У меня например в таком случае одна сцена, на которой я создаю "слепки" параметров уровня и объектов и потом их воссоздаю при загрузке N уровня на одной сцене. В любом случае ( даже если тебя не парят размеры ) - собирать все лучше в юнити, по многим причинам столь банальным что перечислять не хочется. (Ну как минимум это удобнее )

    Quote (Eizahler)
    3) Вопрос об АИ. Чисто теоретический. Допустим, есть уровень: узкий коридор, выходящий в просторный зал с балконами. Можно ли объектам или определенным площадям уровня (если он единое целое) задавать определенные параметры (наверное, я подразумеваю триггеры), вступив на которые АИ принимает соответствующие решения? Объясню подробнее. АИ заходит в коридор и «понимает», что нужно достать дробовик, следует в просторный зал и «понимает», что нужно достать штурмовую винтовку и спрятаться за ближайшим укрытием, ну а когда он будет на балконе, то достанет снайперскую винтовку.


    Нет, "тригерных зон" нет, ровно как и готовый поведений для АИ. Однако на практике создать самому триггерную зону - не так сложно. Ты можешь сделать невидимую плашку с коллайдером ( не забыв поставить переключать "триггер" (иначе друге физ объекты будут сталкиваться с твоей зоной буквально ), все - дальше создаешь скрипт для своей тригерной зоны где описываешь поведение для объектов которые в нее ступят. Разумеется это самый примитивный вариант.

    Quote (Barbatos)
    3) Не знаком с юнити, но вроде тригеры поведения есть во всех редакторах от 2007 года.

    Если не знаком, то зачем лезть?

    Quote (Eizahler)
    4) Вопрос по обучению. Для C# нашел книгу «Visual С# 2008 Базовый курс», за авторством кучи мужиков. Стоит учиться по ней, или есть, что лучше? Встречал еще, что то типа «C# для игр», но я не доверяю книгам с таким названием.


    Программирование это логика. Базовый синтаксис языка запоминается за пару дней битья об стену кодинга. Освоив один язык и имея опыт не составит труда в сжатые сроки пересесть на другой язык. В некоторых случаях от языка может зависеть стиль программирования и твое мышление.
    Так что в твоем "базовом" курсе будет все тоже самое, что и во всех остальных "базовых" курсах.

    Клик - хорошая библия для начала твоих мучений, после того как освоишь "азы" - поищи в интернете так же примеры по разработке игр, там своя специфика о которой не будут писать в твоем базовом курсе. Не понимая как работает твоя программа-игра и из чего состоит сложно что-то сделать самому.

    Клик - немного математики и чтобы не путался в плоскостях


    ACTORS - мой фреймворк на Unity
    Until We Die - игра над которой работаю



    Сообщение отредактировал pixeye - Понедельник, 19 Марта 2012, 10:33
    EizahlerДата: Понедельник, 19 Марта 2012, 11:00 | Сообщение # 1734
    участник
    Сейчас нет на сайте
    Quote (pixeye)
    сделать невидимую плашку с коллайдером

    Это я и имел ввиду. Значит можно.
    Barbatos, jazzy, спасибо.
    Отдельная благодарность pixeye.
    seamanДата: Понедельник, 19 Марта 2012, 21:11 | Сообщение # 1735
    старожил
    Сейчас нет на сайте
    Quote
    Нет, "тригерных зон" нет

    Что за чушь, а это что? Четко написано - Trigger.
    OnTriggerEnter
    Любой коллайдер - триггер. И проще не плашка, а бокс.
    pixeyeДата: Понедельник, 19 Марта 2012, 22:38 | Сообщение # 1736
    Red Winter Software
    Сейчас нет на сайте
    Quote (seaman)
    Что за чушь, а это что? Четко написано - Trigger.
    OnTriggerEnter
    Любой коллайдер - триггер. И проще не плашка, а бокс.


    Ну я вообще то написал про
    Quote (pixeye)
    Нет, "тригерных зон" нет, ровно как и готовый поведений для АИ. Однако на практике создать самому триггерную зону - не так сложно. Ты можешь сделать невидимую плашку с коллайдером ( не забыв поставить переключать "триггер" (иначе друге физ объекты будут сталкиваться с твоей зоной буквально ), все - дальше создаешь скрипт для своей тригерной зоны где описываешь поведение для объектов которые в нее ступят. Разумеется это самый примитивный вариант.


    Плашка, бокс, сфера - для абстрактного примера не имеет значения. Я делаю 2д игры и использую плашки. Поэтому на автомате привожу их, думаю Eizahler достаточно смышлен, чтобы использовать коллайдер той формы который подходит под его игру/пример/случай.

    Quote (seaman)
    Любой коллайдер - триггер. И проще не плашка, а бокс.

    Нет. Не любой коллайдер триггер, но любой триггер в данной интерпретации - коллайдер.

    Словосочетание "триггерная зона" подразумевает готовый функционал/фичу под конкретные нужды проекта. В юнити нет понятие тригерной зоны. Или как минимум я о ней не слышу ( тогда каюсь)

    -Грамотное отображение зоны в редакторе, желательно раскраски по смысловому значению ( задается пользователем ) и редактирование размеров и (!)формы непосредственно в окне сцены ( Минимум в форме прямоугольника ), в окне сцены подразумевает, что человек не полезет каждый раз изменять данные физ колайдера через инспектор а сможет по визуальным точкам в сцене маштабировать свою зону)
    -Грамотная отсылка сообщений объектам, включая отправку сообщений объектам непосредственно не наступающим на тригер зону при необходимости.
    -Использование зоны как площади спауна,использование в качестве эмиттера для эффектов,
    -Задание слоев и области видимости для тригер зоны через редактор.

    Я не помню чтобы OnTriggerEnter - выполнял хотя бы одно из выше перечисленного, это всеголишь создание события на условие соприкосновения с коллайдером помеченным как "триггер", не больше и не меньше. Это еще не делает триггерной зоны, которую к томуже можно реализовывать и другими способами.


    ACTORS - мой фреймворк на Unity
    Until We Die - игра над которой работаю



    Сообщение отредактировал pixeye - Понедельник, 19 Марта 2012, 22:46
    error111Дата: Вторник, 20 Марта 2012, 07:40 | Сообщение # 1737
    заслуженный участник
    Сейчас нет на сайте
    Добрый день. Возник вопрос по коду.
    Вот имеем нечто подобное:
    Code

    using UnityEngine;
    using System.Collections;

    public class GameScript : MonoBehaviour {
           
        class MyClass {
            
         void MyClass()
         {
          bla-bla-bla;    
         }
        }    
    }


    Создаю класс MyClass, в нем пытыюсь сделать метод-конструктор с тем же именем, что и класс. В ответ компилятор выдает:`GameScript.MyClass.MyClass()': member names cannot be the same as their enclosing type. А как тогда задавать конструкторы?

    Вопрос на ходу. Как создавать массивы на C#? В рефе написано, что класс Array доступен только для JS. А какой тогда аналог для шарпа?


    [Shmup/RPG] Fantasy Shmup!


    Сообщение отредактировал error111 - Вторник, 20 Марта 2012, 08:09
    mrResidentДата: Вторник, 20 Марта 2012, 08:57 | Сообщение # 1738
    постоянный участник
    Сейчас нет на сайте
    error111,
    массив в c# задается таким образом <тип>[] имя переменной = new <тип>[<кол-во элементов в массиве>]
    Примеры:

    1) одномерный массив: int[] x = new int[10];
    2) двумерный массив: int[,] x = new int[10,10]; (аналогично задается n-мерный массив, т.е. <тип>[, .. ,] имя переменной = new <тип>[<кол-во элементов в массиве>, .. , <кол-во элементов в массиве>])

    И есть еще одна фенька, так называемый рваный массив, пример:

    int[][] x = new [3][];
    x[0] = new [2];
    x[1] = new [7];
    x[2] = new [5];

    т.е. получается двумерный массив состоящий из 3 строк и варьируемых для каждой строки кол-во столбцов, получается что-то типа того

    1 1
    2 2 2 2 2 2 2
    5 5 5 5 5

    P.S. запомни, в с# массив это класс!

    По поводу вот этого

    Quote (error111)
    public class GameScript : MonoBehaviour {
           
        class MyClass {
            
         void MyClass()
         {
          bla-bla-bla;    
         }
        }    
    }


    что-то очень непонятная конструкция, класс в классе, так как я сам с# только осваиваю, не всех особенностей его знаю, но в других ЯП где есть классы я такой конструкции не встречал (object pascal (delphi), c++).


    Укроп головного мозга - болезнь тяжелая, но излечимая!
    error111Дата: Вторник, 20 Марта 2012, 10:04 | Сообщение # 1739
    заслуженный участник
    Сейчас нет на сайте
    Да массив я воткнул. Вроде бы получилось. Смущает только, что в СкриптРеференсе пишут, что только через ЯваСкрипт можно его юзать.

    По второму вопросу. Я пытаюсь в классе MyClass{} написать метод с таким же названием MyClass(){}.
    В ВижуалСтудии такое вроде бы прокатывает, а вот Юнити не дает обзывать метод, так же как и класс в котором он реализован.


    [Shmup/RPG] Fantasy Shmup!
    mrResidentДата: Вторник, 20 Марта 2012, 10:12 | Сообщение # 1740
    постоянный участник
    Сейчас нет на сайте
    error111, слушай, чет внимание не обратил, ты убери void перед названием метода, тогда он у тебя превратиться в конструктор smile

    Укроп головного мозга - болезнь тяжелая, но излечимая!
    Поиск:

    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг