Пятница, 29 Марта 2024, 17:19

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • MANMANAДата: Среда, 27 Апреля 2016, 02:05 | Сообщение # 7781
    почти ветеран
    Сейчас нет на сайте
    Цитата Lertmind ()
    Скорее компилируется в СIL-код.

    сцылочка ведет на CLR, хотя, я подразумеваю, что имелся ввиду именно Common Intermediate Language
    Исходя из общения со знакомыми разработчиками, многое что компилится в C# код, так что полагаю, SkorpyX, прав и многое в Unity компилится именно в C# код smile

    Добавлено (27 апреля 2016, 02:05)
    ---------------------------------------------
    "Due to standardization of C# and the Common Language Infrastructure, the bytecode is now officially known as CIL"


    http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
    VKонтакте 3Dbuffer

    Последнее:

    Новый раздел "Текстуры"

    Как запатентовать, защитить техническое решение, игру, идею
    sirtooДата: Среда, 27 Апреля 2016, 09:26 | Сообщение # 7782
    был не раз
    Сейчас нет на сайте
    Насколько я себе все представляю, C# гораздо более объектно ориентированный чем JS , наследование классов и пр., отсюда и некоторые профиты при разработке.

    Но по большому счету владеть нужно и тем и тем, я с JS немного сталкивался, знаю что некоторые графические приколы там довольно удобно реализовывать.

    Подозреваю что на C# это может оказаться несколько громоздким, а общая логика работы таки на C# должна получаться прозрачнее и стройнее.
    seamanДата: Среда, 27 Апреля 2016, 11:25 | Сообщение # 7783
    старожил
    Сейчас нет на сайте
    Цитата sirtoo ()
    Насколько я себе все представляю, C# гораздо более объектно ориентированный чем JS

    В какой -то мере да. Но все же не надо забывать, что в Юнити не настоящий javaScript. У него есть и наследование и еще что-то...
    В качестве еще одного профита. На C# гораздо приятнее и продуктивнее писать на VS. Тем более, что она уже бесплатна. Ну а если Вы приобретете решарпер - то это как небо и земля по сравнению с МоноДевелоп.


    Сообщение отредактировал seaman - Среда, 27 Апреля 2016, 11:26
    sirtooДата: Среда, 27 Апреля 2016, 11:34 | Сообщение # 7784
    был не раз
    Сейчас нет на сайте
    Цитата seaman ()
    На C# гораздо приятнее и продуктивнее писать на VS. Тем более, что она уже бесплатна.

    вот это особенно актуально для меня как для новичка ... синтаксис новый, с головы писать нереально все.
    ShortKedrДата: Среда, 27 Апреля 2016, 12:03 | Сообщение # 7785
    Renword Studio
    Сейчас нет на сайте
    seaman, ну кстати в MonoDevelop тоже есть пару полезных фич по рефакторингу и прочему, но не скажу, что их много как например в том же Intelij IDEA от JetBrains. Честно сказать не видел особых полезностей в VS для продуктивного написания кода, но с ReSharper конечно всё по другому становится, и это не удивительно, JetBrains умеют делать качественные IDE и нацелены на удобство)
    8Observer8Дата: Среда, 27 Апреля 2016, 12:34 | Сообщение # 7786
    заслуженный участник
    Сейчас нет на сайте
    ShortKedr, VS прежде всего удобна C# программистам, которые создают приложения не только с использованием Unity, но и разных .NET технологий от Microsoft

    А ещё я к ней привык, к примеру: автоматически форматировать код с помощь Ctrl+K, Ctrl+D или генерировать класс из JSON или ввести propfull, чтобы сгенерить свойство с get\set и приватным полем и т.д.


    Сообщение отредактировал 8Observer8 - Среда, 27 Апреля 2016, 12:39
    allodsДата: Четверг, 28 Апреля 2016, 15:28 | Сообщение # 7787
    почти ветеран
    Сейчас нет на сайте
    Использую Сanvas Scaler , проблема в том что интерфес на мелких экранах маленький а на больших он слишком большой . Есть возможность поставить максимальный размер ?
    ShortKedrДата: Четверг, 28 Апреля 2016, 16:23 | Сообщение # 7788
    Renword Studio
    Сейчас нет на сайте
    allods, Элементы друг на друга залазят? У "Screen Match Mode" используй "Match Width Or Height", ставь Match на 1 (в сторону height), для разрешений, где когда соотношение ширины больше соотношения высоты и 0, когда наоборот. Соотношение рассчитывается от Reference Resolution, соответственно ты можешь написать небольшой скрипт, который будет определять Match в момент изменения разрешения и тогда у тебя будет всё правильно растягиваться.

    Добавлено (28 апреля 2016, 16:23)
    ---------------------------------------------

    Если не поняли, что я сказал, попробуйте подумать, как бы вы реализовали растяжение интерфейса не будь у вас под рукой уже готового инструмента, сделанного Unity Technologies для лентяев, которые постили на форумах записи о том, что стандартный GUI гумно(глупость)

    P.S. вам пригодятся знания математики уровня 5 класса на процентные соотношения


    Сообщение отредактировал ShortKedr - Четверг, 28 Апреля 2016, 16:34
    allodsДата: Четверг, 28 Апреля 2016, 19:08 | Сообщение # 7789
    почти ветеран
    Сейчас нет на сайте
    Не это, мне нужно менять ширину объекта относительно высоты , но также обозначить минимальный размер и максимальный, и два элемента которые будут заполнять свободное место с верху и с низу от объекта при этом иметь ширину объекта

    Цитата ShortKedr ()
    Если не поняли, что я сказал, попробуйте подумать, как бы вы реализовали растяжение интерфейса не будь у вас под рукой уже готового инструмента, сделанного Unity Technologies для лентяев, которые постили на форумах записи о том, что стандартный GUI гумно(глупость)

    P.S. вам пригодятся знания математики уровня 5 класса на процентные соотношения


    А вам не делать поспешных выводов и умничать

    Сделал без велосипедов, решение нашлось


    Сообщение отредактировал allods - Четверг, 28 Апреля 2016, 19:19
    ShortKedrДата: Четверг, 28 Апреля 2016, 19:24 | Сообщение # 7790
    Renword Studio
    Сейчас нет на сайте
    Цитата allods ()
    Не это, мне нужно менять ширину объекта относительно высоты , но также обозначить минимальный размер и максимальный, и два элемента которые будут заполнять свободное место с верху и с низу от объекта при этом иметь ширину объекта


    Используйте различные Layout'ы. HorizontalLayout вроде или как-то так и привязку к краям. Ну или ручками - пишем свои скрипты для интерфейса. Тема вовсе не сложная. Нужно чуток подумать, как я уже и говорил выше:


    Сообщение отредактировал ShortKedr - Четверг, 28 Апреля 2016, 19:28
    berilДата: Четверг, 28 Апреля 2016, 20:23 | Сообщение # 7791
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    allods, ShortKedr, хватит уже флудить ребята в ЛС идите



    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    SanprabhuДата: Суббота, 30 Апреля 2016, 02:23 | Сообщение # 7792
    частый гость
    Сейчас нет на сайте
    Привет всем. Подскажите, пожалуйста, как лучше реализовать взаимодействие с объектами с помощью мыши.
    Будет много объектов, на каждый можно кликнуть, затем произойдут какие-то изменения, перемещения, подсчет очков и т.д.
    Если я клонирую объекты, вычисления и изменения происходят со всеми объектами.
    Как мне заставить player взаимодействовать именно с тем enemy, на которого я кликнул, а не со всеми одновременно?
    Спасибо.
    LertmindДата: Суббота, 30 Апреля 2016, 02:31 | Сообщение # 7793
    заслуженный участник
    Сейчас нет на сайте
    Sanprabhu, самый простой вариант: в одном скрипте с помощью Physics.Raycast узнаешь в кого кликнули, на основе этого и делаешь взаимодействие. Остальное уже зависит от твоей логики взаимодействия между объектами.
    8Observer8Дата: Суббота, 30 Апреля 2016, 07:57 | Сообщение # 7794
    заслуженный участник
    Сейчас нет на сайте
    Цитата Lertmind ()
    самый простой вариант: в одном скрипте с помощью Physics.Raycast

    Перечислите, пожалуйста, какие ещё вам способы известны
    EchoITДата: Суббота, 30 Апреля 2016, 11:17 | Сообщение # 7795
    старожил
    Сейчас нет на сайте
    8Observer8, OnMouseDown?

    Долгожданный анонсик: State of War
    ShortKedrДата: Суббота, 30 Апреля 2016, 12:46 | Сообщение # 7796
    Renword Studio
    Сейчас нет на сайте
    EchoIT, 8Observer8, Lertmind, Sanprabhu, всё от цели зависит. Рейкастом можно узнать куда попал луч - Physics.Raycast.
    В стратегиях очень удобно использовать перевод в экранные координаты, например при использовании области выбора. Camera.main.WorldToScreenPoint и ему аналоговые.
    OnMouseDown используется в самом классе.
    Sanprabhu, вам скорее всего нужно выключать/включать активность объектов при клике.
    Можно сделать переменную bool isHover. На OnMouseEnter присваивать true, на OnMouseExit присваивать false.
    В Update прописать
    Код

    if (Input.GetMouseButtonDown(0)){
        if (isHover)
            isActiveUnit = true;
        else
            isActiveUnit = false;
    }


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


    Сообщение отредактировал ShortKedr - Суббота, 30 Апреля 2016, 12:49
    SanprabhuДата: Суббота, 30 Апреля 2016, 13:38 | Сообщение # 7797
    частый гость
    Сейчас нет на сайте
    ShortKedr, Lertmind, Спасибо, буду пробовать.
    Уже кое что получается ))
    8Observer8Дата: Суббота, 30 Апреля 2016, 13:38 | Сообщение # 7798
    заслуженный участник
    Сейчас нет на сайте
    Я знаю ещё один способ:

    Код

        void OnMouseOver()
        {
            if (Input.GetMouseButtonDown(0))
            {
            }
        }
    SanprabhuДата: Суббота, 30 Апреля 2016, 14:42 | Сообщение # 7799
    частый гость
    Сейчас нет на сайте
    Еще такой вопрос: я создаю несколько объектов (перетаскиваю с префарба), cкрипт копируется, все ок. Но у них не определены поля и вываливается NullReferenceException. Есть ли способ закрепления объектов в скрипте или как-то еще, чтобы не перетаскивать их вручную на каждый объект с префарба?
    ShortKedrДата: Суббота, 30 Апреля 2016, 14:57 | Сообщение # 7800
    Renword Studio
    Сейчас нет на сайте
    Sanprabhu, сказать им: "Сами ищите нужные объекты, камеры, канвасы, таргеты и т.п. Я вам не папа!)" :D
    Написать, что бы они сами нужный объект искали. Или, если ты в редакторе, то создать 1 копию поставить ей все поля и дублировать остальные в списке объектов сцены

    Добавлено (30 апреля 2016, 14:57)
    ---------------------------------------------
    Sanprabhu, суть в том, что префабы не как не связаны со сценой, то есть объекты которые ты ставишь в поля, их может и не быть на сцене. Поэтому ты никак не привяжешь их вместе. Поэтомуостаётся искать нужные объекты: по тегу, типу или ещё чему нибудь)


    Сообщение отредактировал ShortKedr - Суббота, 30 Апреля 2016, 14:57
    Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос-[ответ] по Unity (Задаём свои вопросы)
    Поиск:

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