Четверг, 14 Ноября 2024, 21:48

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • Nevlin479Дата: Суббота, 15 Октября 2016, 18:52 | Сообщение # 8161
    уже был
    Сейчас нет на сайте
    Добрый вечер,уважаемые форумчане!
    Не могли бы Вы подсказать, в каком направлении мне копать.
    Суть такова:
    Есть персонаж. Как сделать,что бы собрав 10 ключиков, открылась к примеру дверь?

    Заранее благодарю за ответ!


    Счастлив тот,кто научился искренне любить.

    Сообщение отредактировал Nevlin479 - Суббота, 15 Октября 2016, 18:52
    МорриартеДата: Суббота, 15 Октября 2016, 19:14 | Сообщение # 8162
    LINUX ФАНАТ
    Сейчас нет на сайте
    Цитата Nevlin479 ()
    Есть персонаж. Как сделать,что бы собрав 10 ключиков, открылась к примеру дверь?

    Проверка условия.
    БозингарДата: Воскресенье, 16 Октября 2016, 10:51 | Сообщение # 8163
    почетный гость
    Сейчас нет на сайте
    Цитата Nevlin479 ()
    Как сделать,что бы собрав 10 ключиков, открылась к примеру дверь?

    Как-то так:
    Код
    If (int key >= 10) {
    bool open_door = true;
    }

    Всё зависит от условий конкретно поставленной задачи.

    ___

    Пытаюсь разобраться в волновых алгоритмах поиска пути. Если пигмейским языком, то выходит следующее: 1. Создаём двумерный массив клеток поля типа {1,0,0,0,1}, => 2. Циклом ищем путь (если 0 - ячейка пустая, если -1 - занята) => 3. Из клеток пути создаём waypoint'ы, по которым шагает юнит?
    Начну с простого: имеется игровое поле из тайлов-квадратиков. На его основе логичней всего генерировать матрицу (0 - если клетка пустая, -1 если здание и т.д) и далее уже от него отталкиваться с алгоритмом проходимости?


    #Хийвэл бүү ай, айвал бүү хий.

    Сообщение отредактировал Бозингар - Воскресенье, 16 Октября 2016, 11:47
    EchoITДата: Воскресенье, 16 Октября 2016, 13:04 | Сообщение # 8164
    старожил
    Сейчас нет на сайте
    Цитата
    Как-то так

    Только обе переменные должны быть объявлены выше, иначе в другом участке кода доступа к ней не будет. И вообще, это можно записать проще:
    Код
    open_door=(key>=10);


    Цитата
    Пытаюсь разобраться в волновых алгоритмах поиска пути. Если пигмейским языком, то выходит следующее: 1. Создаём двумерный массив клеток поля типа {1,0,0,0,1}, => 2. Циклом ищем путь (если 0 - ячейка пустая, если -1 - занята) => 3. Из клеток пути создаём waypoint'ы, по которым шагает юнит?

    Я же уже отвечал. Двумерный массив. * - персонаж, 0 - пусто, 1 - занято, x - точка назначения.
    0 0 0 * 0 0
    0 1 1 1 0 0
    0 0 1 1 1 0
    0 0 0 0 1 1
    0 0 x 0 0 0

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


    Долгожданный анонсик: State of War

    Сообщение отредактировал EchoIT - Воскресенье, 16 Октября 2016, 13:07
    БозингарДата: Воскресенье, 16 Октября 2016, 15:54 | Сообщение # 8165
    почетный гость
    Сейчас нет на сайте
    Цитата EchoIT ()
    Я же уже отвечал

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


    #Хийвэл бүү ай, айвал бүү хий.
    EchoITДата: Воскресенье, 16 Октября 2016, 17:49 | Сообщение # 8166
    старожил
    Сейчас нет на сайте
    Цитата
    Хорошо-бы по делу и по теме. А про двумерный массив, матрицу и счёт ячеек я и сам написал. Посему впредь попрошу игнорировать мои сообщения - меня интересует конкретика и ответы понимающих в теме людей, а не повторение мной-же сказанного.

    Так это по делу и по теме. Если вы сами всё так хорошо понимаете, в чём тогда проблема? ;) Ставьте, пожалуйста, вопросы правильно, если хотите, чтобы на них правильно отвечали.


    Долгожданный анонсик: State of War

    Сообщение отредактировал EchoIT - Воскресенье, 16 Октября 2016, 17:50
    HeiwaДата: Воскресенье, 16 Октября 2016, 23:48 | Сообщение # 8167
    был не раз
    Сейчас нет на сайте
    Делаю игру с ужасающим кол-вом пререндеренных кат-сцен (по хронометражу их несколько часов). В них может быть вариативность (сюжетные развилки); то есть, некоторые детали в кат-сценах меняются в зависимости от геймплейного выбора.

    Как мне лучше эти кат-сцены хранить?

    Изначально собирался делать анимацию в виде массива изображений (*.gif[], или *.png[]), но оказалось, что Unity хранит все изображения в DDS (http://answers.unity3d.com/questions/807623/best-image-format-for-unity-game-textures.html), потому сборка с FullHD@60fps-анимацией длительностью в пару минут выглядит примерно вот так (см. приложенный скриншот).
    http://s1.uploadpics.ru/images/bJc95Y355b.jpg
    Если хранить и воспроизводить как видео, то придётся для каждой вариативности в каждой кат-сцене делать отдельное видео, что сильно ударит и по времени рендера, и по размеру игры.

    Есть ли адекватный способ встроить в игру онлайн-видеопоток?

    Как юзать в игре картинки из вне проекта (чтоб они не сериализировались стандартно и не весили как чья-то мамаша), и стоит ли это вообще делать?

    Может стоит вообще сменить движок, если жанр — интерактивный фильм (принципиально важен скриптинг на C#)?
    usluciferДата: Суббота, 22 Октября 2016, 21:59 | Сообщение # 8168
    постоянный участник
    Сейчас нет на сайте
    Здравствуйте!
    поворачиваю спрайт в направлении другого спрайта таким образом
    Код
    Vector3 moveDirection = target.transform.position - transform.position;
            if (moveDirection != Vector3.zero)
            {
                float angle = Mathf.Atan2(-moveDirection.x, moveDirection.y) * Mathf.Rad2Deg;
                transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
            }

    target - целевой объект
    объект поворачивается моментально.

    вопрос: как изменить код, чтобы объект поворачивался плавно?


    Сообщение отредактировал uslucifer - Суббота, 22 Октября 2016, 22:00
    EchoITДата: Суббота, 22 Октября 2016, 23:58 | Сообщение # 8169
    старожил
    Сейчас нет на сайте
    uslucifer, Quaternion.Lerp или Quaternion.RotateTowards можно использовать.

    Долгожданный анонсик: State of War
    RangerДата: Воскресенье, 23 Октября 2016, 09:15 | Сообщение # 8170
    почти ветеран
    Сейчас нет на сайте
    Цитата Heiwa ()
    в виде массива изображений (*.gif[], или *.png[]),

    Жесть, а что не BitMap-ы без компрессии? :D

    Цитата Heiwa ()
    Есть ли адекватный способ встроить в игру онлайн-видеопоток?

    тюк
    тюк




    Сообщение отредактировал Ranger - Воскресенье, 23 Октября 2016, 09:16
    dimaantipanovДата: Среда, 26 Октября 2016, 08:10 | Сообщение # 8171
    был не раз
    Сейчас нет на сайте
    Начал переносить из блендера в юнити ландшафт и столкнулся с тем, что в блендере я сделал текстурирование ландшафта через ноды, с промежуточными текстурами где находиться на ув развертке тот или иной материал. Как тоже самое можно сделать в юнити?
    BarbatosДата: Среда, 26 Октября 2016, 18:43 | Сообщение # 8172
    3D-моделлер/Руководитель
    Сейчас нет на сайте
    dimaantipanov,
    Запечь текстуру в блендере и перенести в юнити.


    Его остатки и на хлеб не намазать. Мой тебе совет Пабло - относись к жизни как к веселухе, но непродолжительной. @Эш
    mrFrankensteinДата: Четверг, 27 Октября 2016, 21:01 | Сообщение # 8173
    частый гость
    Сейчас нет на сайте
    Приветствую вас! Подскажите пожалуйста, каким образом можно осуществить Инстанцировать (Instantiate) префаб на определённые координаторы напрямую из папки Assets. Это вообще возможно? Буду очень рад каждому совету)
    dimaantipanovДата: Пятница, 28 Октября 2016, 04:53 | Сообщение # 8174
    был не раз
    Сейчас нет на сайте
    В том и вся загвоздка, что ландшафт большой и что бы запечь все текстуры и осталось качество более,менее нужно около 40 текстур расширением 2048\2048, а это мне кажется очень не эффективно,но я нашел способ лучше я установил себе Shader Editor и сделал все в нодах как и в блендере.там все тоже самое даже возможностей будет побольше)

    Добавлено (28 октября 2016, 04:53)
    ---------------------------------------------
    mrFrankenstein а перенести и выставить координаты не получиться?

    mrFrankensteinДата: Пятница, 28 Октября 2016, 07:45 | Сообщение # 8175
    частый гость
    Сейчас нет на сайте
    Цитата dimaantipanov ()
    перенести и выставить координаты не получиться?

    Должен появляться префаб с искрами при каждом выстреле. Как вы думаете, как часто я смогу переносить и выставлять его "руками"? Это нужно делать это через скрипт, правильно думаете.
    BarbatosДата: Пятница, 28 Октября 2016, 09:14 | Сообщение # 8176
    3D-моделлер/Руководитель
    Сейчас нет на сайте
    mrFrankenstein,
    Я не понял суть вопроса.
    Что выставлять руками?

    Создаешь префаб, создаешь скрипт.
    В инспекторе в prefab - засовываешь префаб вспышки, перетащить мышкой из project в слот prefab в инспекторе.
    В инспекторе в MuzzelFlashP - засовываешь пустышку, которая обозначает позицию где будет вспышка.

    Код
    public GameObject prefab;
    public GameObject MuzzelFlashP;

    void Update(){

    if(кто-то жмет кнопку выстрела){
           Instantiate(prefab, MuzzelFlashP.transform.position, Quaternion.identity);
           }

    }


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

    Сообщение отредактировал Barbatos - Пятница, 28 Октября 2016, 09:14
    EchoITДата: Пятница, 28 Октября 2016, 11:59 | Сообщение # 8177
    старожил
    Сейчас нет на сайте
    mrFrankenstein, прям так, как вы хотите, можно через Resources.Load(). Но способ выше действительно удобнее.

    Долгожданный анонсик: State of War
    mrFrankensteinДата: Суббота, 29 Октября 2016, 04:42 | Сообщение # 8178
    частый гость
    Сейчас нет на сайте
    Цитата EchoIT ()
    действительно удобнее.

    Это более чем верно, НО (!) не в этом случае. Я знаю как перетаскивать в инспектор нужный файл, но мне надо чтобы этот файл читался на прямую из памяти. Во первых: по тому, что (мне кажется) иметь на сцене добрый десяток скрытых объектов - не самая лучшая идея (имеется в виду модели оружия в которых будут вспышки-стрижки-шишки и ещё Бог знает что). Особенно это не удобно, когда переходишь с одной сцены на другую. Все префабы (кроме статичных конечно) нужно обратно перешерстить и проверить всё ли правильно работает, и работает ли вообще...

    Во вторых: мне кажется, что эта функция ( Resources.Load(), если это то что нужно ) мне в будущем понадобиться. Если вы сможете объяснить или хотя бы подсказать где посмотреть (желательно на русском) про это, я буду очень благодарен))) И кстати, может быть вы знаете, где можно посмотреть информацию по оптимизации (желательно на русском. Можно и на Енглише если есть, но на Русском предпочтительнее)?


    Сообщение отредактировал mrFrankenstein - Суббота, 29 Октября 2016, 04:44
    RangerДата: Воскресенье, 30 Октября 2016, 06:30 | Сообщение # 8179
    почти ветеран
    Сейчас нет на сайте
    Цитата mrFrankenstein ()
    Все префабы (кроме статичных конечно) нужно обратно перешерстить и проверить всё ли правильно работает, и работает ли вообще...

    в чем проблема? сделай 1 неуничтожаемый синглтон объект, который управляет ресурсами. к нему и обращайся.


    EchoITДата: Воскресенье, 30 Октября 2016, 11:58 | Сообщение # 8180
    старожил
    Сейчас нет на сайте
    Цитата
    Это более чем верно, НО (!) не в этом случае. Я знаю как перетаскивать в инспектор нужный файл, но мне надо чтобы этот файл читался на прямую из памяти. Во первых: по тому, что (мне кажется) иметь на сцене добрый десяток скрытых объектов - не самая лучшая идея (имеется в виду модели оружия в которых будут вспышки-стрижки-шишки и ещё Бог знает что). Особенно это не удобно, когда переходишь с одной сцены на другую. Все префабы (кроме статичных конечно) нужно обратно перешерстить и проверить всё ли правильно работает, и работает ли вообще...

    Их же не будет на сцене, ссылки на них будут только в скрипте. Хотя, даже так часто бывают ошибки, если сцен много.

    Цитата
    Во вторых: мне кажется, что эта функция ( Resources.Load(), если это то что нужно ) мне в будущем понадобиться. Если вы сможете объяснить или хотя бы подсказать где посмотреть (желательно на русском) про это, я буду очень благодарен)))

    В справке, но вообще всё очень просто:
    Код
    GameObject yourObject=Resources.Load("\\Folder\\File") as GameObject;

    Через Resource.Load можно загрузить файл из папки Resources. В примере выше путь выглядит так: Resources\Folder\File.prefab. ".prefab" - пример, расширение файла может быть любое, по-моему, и в пути к файлу, судя по справке, оно не пишется. Но на самом деле мне это не совсем понятно, что будет делать программа, если есть например File.prefab и File.material. Хотя там вообще есть возможность добавить typeof для фильтра, но не уверен, что это то, что нужно. К слову, если кто объяснит, буду признателен. Задумался об этом только сейчас. :D


    Долгожданный анонсик: State of War
    Поиск:

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