Пятница, 29 Марта 2024, 10:40

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • SanprabhuДата: Среда, 20 Июля 2016, 03:31 | Сообщение # 7961
    частый гость
    Сейчас нет на сайте
    ShortKedr, спасибо, буду пробовать.

    Опять столкнулся с проблемой с клонами объекта:
    Нужно по клику на объект или его клон (который создается динамически время от времени), чтобы объект перемещался к нему. С изначальным объектом работает, с клонами - нет, объект стоит на месте.
    Код

    if (hit.transform.position == transform.position)
        {
            player.transform.position = transform.position;
        }
    СталексДата: Среда, 20 Июля 2016, 12:23 | Сообщение # 7962
    был не раз
    Сейчас нет на сайте
    Список игроков храню в папке Assets формате txt. При тесте игры все идет нормально, но когда создаю exe-файл, то список игроков при выводе на экран оказывается пустым. Похоже, что не находит мой файл txt. Создал в папке Assets папку Text, положил список туда, один черт - при тесте все прекрасно, в откомпилированном файле - пусто. Причем, если при компиляции нажимаю Build&Run, то все вижу, а когда потом запускаю откомпилированный файл - то не вижу. Как будто мою текстовый файл не забирает в сборку. Почему?
    Да, путь к файлу указываю так: "Assets/Text/Ludantoj.txt". Может полное имя использовать? Сейчас попробую.

    Попробовал. Да, причина в этом была. Теперь все работает как надо. Вот пока писал вопрос, ответ и нашелся. Извиняйте, что зря место и время занял.


    Сообщение отредактировал Сталекс - Среда, 20 Июля 2016, 12:47
    ShortKedrДата: Среда, 20 Июля 2016, 13:06 | Сообщение # 7963
    Renword Studio
    Сейчас нет на сайте
    Сталекс, Тык. Это про хранение объектов, префабов и прочей ерунды в "Assets" и подгрузке в Билде. Можешь поиздеваться над эти делом, но...
    Текстовые файлы, понятное дело, лучше создавать в отдельных папках на одном уровне с "Assets" и в зашифрованном виде =)

    Добавлено (20 июля 2016, 13:06)
    ---------------------------------------------
    Цитата Sanprabhu ()
    hit.transform.position == transform.position

    Sanprabhu, писали уже выше и я писал про погрешности с позициями. Пробуй так Vector3.Distance(hit.transform.position, transform.position) <= 0.001f
    А вообще я не особо понял что ты хочешь сделать, но если всё так как я понял то у тебя какая-та неправильная фигня написана =)
    Но, я могу ошибаться, потому что не до конца понял, что ты хочешь сделать, поэтому пробуй сначала тот вариант, который я написал


    Сообщение отредактировал ShortKedr - Среда, 20 Июля 2016, 13:06
    СталексДата: Среда, 20 Июля 2016, 15:29 | Сообщение # 7964
    был не раз
    Сейчас нет на сайте
    Цитата ShortKedr ()
    Тык.

    Да тыкался я туда не раз, ни черта не понимаю - когда на русском тебе говорят, и то с трудом доходит, а уж если не по-нашему, то... crazy
    Осмелюсь на еще один вопрос.
    Вот создал я элемент dropdawn. В инспекторе заполнил строки. Все красиво - нажимается, выбирается. Но как дальше-то? Как мне в скрипте к нему обратиться и узнать, что же там выбрали? Что-то типа такого:
    ...
    if (выбрано первое значение в выпадающем списке) {n=....};
    if (выбрано второе значение в выпадающем списке) {n=....}
    ...
    EgoorДата: Среда, 20 Июля 2016, 16:14 | Сообщение # 7965
    участник
    Сейчас нет на сайте
    Сталекс, В Unity шикарные доки
    ShortKedrДата: Среда, 20 Июля 2016, 16:21 | Сообщение # 7966
    Renword Studio
    Сейчас нет на сайте
    Цитата Egoor ()
    В Unity шикарные доки

    Да, даже в MSDN или Sun они не настолько круты и продуманы, как в Unity =)
    СталексДата: Среда, 20 Июля 2016, 16:27 | Сообщение # 7967
    был не раз
    Сейчас нет на сайте
    Цитата Egoor ()
    В Unity шикарные доки

    Фигня это а не шикарные доки!!! Там не написано, как мне получить значение Value!
    Я не знаю, как мне написать вот здесь:
    if (выбрано первое значение в выпадающем списке) {n=....};

    Там должно быть что-то такое:
    if (ИмяDropdown.Value=1) {n=....};

    Каков синтаксис?
    ShortKedrДата: Среда, 20 Июля 2016, 16:32 | Сообщение # 7968
    Renword Studio
    Сейчас нет на сайте
    Цитата Сталекс ()
    Фигня это а не шикарные доки!!! Там не написано, как мне получить значение Value!

    Это уже зависит от того, какой вы программист. Не знаю, как бы вы назвали MSDN с Sun доки тогда =)

    Для справки: в VS или что ты там используешь(в большинстве), в том числе MonoDevelop есть dropdown список в редакторе кода, где ты можешь полазить, поискать.
    А вообще пробуй рассуждать логично. Куча однотипных значений - массив, значит нужно искать массив

    Добавлено (20 июля 2016, 16:32)
    ---------------------------------------------
    Сталекс, ну и что там не на писано ;) :
    Внимательней будьте, пожалуйста перед, бессмысленной клеветой...


    Если вы совсем не разбираетесь, как это использовать, то dropdown.options[dropdown.value] - текущий выбранный элемент типа OptionData


    Сообщение отредактировал ShortKedr - Среда, 20 Июля 2016, 16:47
    СталексДата: Среда, 20 Июля 2016, 16:47 | Сообщение # 7969
    был не раз
    Сейчас нет на сайте
    Программист я начинающий. Знаю только Бейсик и Паскаль.
    Был я там, где вы показываете. Я понял, что такое Value, но я не знаю, как его посмотреть в программе.
    Так, что-ли:
    if (dropdown.options[dropdown.value]=1) {n=....}; ?
    Будем пробовать.
    ShortKedrДата: Среда, 20 Июля 2016, 16:48 | Сообщение # 7970
    Renword Studio
    Сейчас нет на сайте
    Сталекс, если знаете бейскик и паскаль, то, вероятно должны быть знакомы с массивами...
    Да, кстати в C# играет значение то, в каком регистре вы пишете, поэтому value в данном классе пишется с маленькой буквы, аналогично как в Unity Docs написано


    Сообщение отредактировал ShortKedr - Среда, 20 Июля 2016, 16:50
    СталексДата: Среда, 20 Июля 2016, 17:00 | Сообщение # 7971
    был не раз
    Сейчас нет на сайте
    Спасибо, что отвечаете. Насчет регистра я в курсе, в программном тексте я написал правильно, а во фразе просто выделил с большой буквы. Но это чепуха, я вот не понимаю, если я напишу
    if (dropdown.options[dropdown.value]=1) {n=....};
    то как комп поймет о каком dropdown я спрашиваю? А если их несколько?
    На бейсике каждый имеет свое имя: ComboBox1, ComboBox2... . И там бы я написал так:
    if ComboBox1.Value=1 then n=....
    А как это написать в Unity, я не понимаю.


    Сообщение отредактировал Сталекс - Среда, 20 Июля 2016, 17:05
    EgoorДата: Среда, 20 Июля 2016, 17:22 | Сообщение # 7972
    участник
    Сейчас нет на сайте
    Сталекс, может лучше видео уроки посмотришь? Это даже не Unity, это вообще программирование.
    переменная dropdown у тебя содержит ссылку на конкретный объект, так и поймет.

    Добавлено (20 июля 2016, 17:22)
    ---------------------------------------------
    А вообще примерно так, но тебе это не поможет

    Код
    public Dropdown dropdown;


    Задаешь этот объект в редакторе. Затем

    Код
    if(dropdown.value == 1) {
      //тлен
    }


    Если это сложно понять, можешь сделать так:

    Код
    Dropdown dropdown;
    ....
    ....
    dropdown = GameObject.Find("DropDown1").GetComponent<Dropdown>();


    Сообщение отредактировал Egoor - Среда, 20 Июля 2016, 17:26
    СталексДата: Среда, 20 Июля 2016, 17:35 | Сообщение # 7973
    был не раз
    Сейчас нет на сайте
    О, спасибо! Find я знаю, даже уже пользовался.

    Количество видео-уроков приближается к бесконечности :D
    Все посмотреть - жизни не хватит.
    1. Какой смотреть?
    2. На моем древнем кинескопном мониторе там один черт ничего не разглядишь.

    20 дней с начала изучения Unity и нулевой результат!!! Блин, да за это время я пол Бейсика выучил! И вот почему его так не любят? Все логично и понятно, а тут действительно шаманство какое-то, вместо того, чтобы логикой программы заниматься, приходится выискивать магические заклинания! (Не обижайтесь, это я просто зло срываю от беспомощности).
    ShortKedrДата: Среда, 20 Июля 2016, 17:39 | Сообщение # 7974
    Renword Studio
    Сейчас нет на сайте
    Сталекс, в C# и проверка равенства пишется как "==" а не "=". "=" это присвоение.

    Цитата Сталекс ()
    Все посмотреть - жизни не хватит.

    Думаю все подряд и сначала по программированию C# а не по Unity, попробуйте консольные приложение пописать с множеством классов и тд. Прежде чем задавать глупые(потому что не нужные и не по делу, много времени лишнего так потратите) вопросы по основам языка C#, изучите сначала эти основы, ну серьёзно... Куча вопросов сразу отпадут =)


    Сообщение отредактировал ShortKedr - Среда, 20 Июля 2016, 17:40
    EgoorДата: Среда, 20 Июля 2016, 17:40 | Сообщение # 7975
    участник
    Сейчас нет на сайте
    Сталекс, я сомневаюсь, что ты знаешь бейсик и паскаль. Вот серьезно. Проблем бы не было.
    В C# все логично, все понятно и вообще писать на нем - как лежать в объятьях красивой женщины.
    Уроков полно, выбирай любой, даже в этой теме ссылки приведены, подними глазки. Или возьми исходник и изучай. Короче, делай что-нибудь уже, пока ты только ноешь.


    Сообщение отредактировал Egoor - Среда, 20 Июля 2016, 17:42
    ShortKedrДата: Среда, 20 Июля 2016, 17:44 | Сообщение # 7976
    Renword Studio
    Сейчас нет на сайте
    Цитата Egoor ()
    Сталекс, я сомневаюсь, что ты знаешь бейсик и паскаль

    Поддержу, а если и знаешь то основы основ, то есть первые пару уроков, скажем так, ну или другими словами то, чему в школе учат, а это далеко не программирование, ой как далеко =)

    Добавлено (20 июля 2016, 17:44)
    ---------------------------------------------
    Цитата Egoor ()
    В C# все логично, все понятно и вообще писать на нем - как лежать в объятьях красивой женщины.

    Какое прекрасное сравнение, мне нравится такой подход к C#, ещё бы отнёс это также к Java. Писать на Java и C# - как лежать в объятьях двух красивых женщин. Изящность, Красота, Логичность =)


    Сообщение отредактировал ShortKedr - Среда, 20 Июля 2016, 17:45
    EgoorДата: Среда, 20 Июля 2016, 17:44 | Сообщение # 7977
    участник
    Сейчас нет на сайте
    И вообще, вот я с GlScene начинал в эти дебри лезть. Раз "знаешь" паскаль, то тебе самое то. Потом уже Unity.

    ShortKedr, Java тоже люблю. Приложения под Android писать одно удовольствие. Руки бы еще выпрямить и вообще сказка)


    Сообщение отредактировал Egoor - Среда, 20 Июля 2016, 17:49
    ShortKedrДата: Среда, 20 Июля 2016, 17:47 | Сообщение # 7978
    Renword Studio
    Сейчас нет на сайте
    Цитата sfabrikan ()
    знает не значит что понимает

    Если не понимает - значит не знает, всё просто :D
    Ну собственно, из следующих его слов всё понятно:

    Цитата Сталекс ()
    На бейсике каждый имеет свое имя: ComboBox1, ComboBox2... . И там бы я написал так:
    if ComboBox1.Value=1 then n=....


    Сообщение отредактировал ShortKedr - Среда, 20 Июля 2016, 17:49
    СталексДата: Среда, 20 Июля 2016, 17:50 | Сообщение # 7979
    был не раз
    Сейчас нет на сайте
    Обиделись, все-таки!!! Даже репу мне понизили :D
    Ну назовите тогда свой форум "только для профи, новичкам не лазить" :D
    EgoorДата: Среда, 20 Июля 2016, 17:50 | Сообщение # 7980
    участник
    Сейчас нет на сайте
    Цитата sfabrikan ()
    Можно выучить весь язык, но не знать как им пользоватся и как на нем писать.

    Не соглашусь. Это как выучить все английские слова. Что-то сказать да сможешь - так и научишься говорить свободно.
    Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос-[ответ] по Unity (Задаём свои вопросы)
    Поиск:

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