Среда, 25 Декабря 2024, 15:54

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • mrResidentДата: Пятница, 22 Июля 2016, 14:28 | Сообщение # 8001
    постоянный участник
    Сейчас нет на сайте
    Lertmind, спасибо, походу реально что-то со стандартными ассетами намудрили, то у меня выплыл косяк с шейдерами воды, сейчас с шейдерами для Projector

    Укроп головного мозга - болезнь тяжелая, но излечимая!
    vampir0305Дата: Пятница, 22 Июля 2016, 15:02 | Сообщение # 8002
    Unity C# Programmer
    Сейчас нет на сайте
    Создал булевую переменную в скрипте и мне надо изменять её через кнопку(UI). Скрипт с этой переменной висит на объекте. Я добавил объект в Button On Click и
    в функции когда выбираю скрипт там нету моей переменной. Что делать?


    Красочная сюжетно-ориентированная игра-головоломка
    EgoorДата: Пятница, 22 Июля 2016, 16:49 | Сообщение # 8003
    участник
    Сейчас нет на сайте
    vampir0305, public сделать ее. А лучше менять через функции.
    vampir0305Дата: Пятница, 22 Июля 2016, 20:11 | Сообщение # 8004
    Unity C# Programmer
    Сейчас нет на сайте
    Egoor, У меня она и так public.
    Код
    public bool jump;


    Красочная сюжетно-ориентированная игра-головоломка
    SanprabhuДата: Пятница, 22 Июля 2016, 23:21 | Сообщение # 8005
    частый гость
    Сейчас нет на сайте
    Цитата Lertmind ()
    Сравнивай с помощью функции Mathf.Approximately()

    Спасибо, работает ))
    Код

    Debug.Log("Player position: " + string.Format("{0:R}",transform.position.y));   // Player position: -2.7
    Debug.Log("Opponent position: " + string.Format("{0:R}",opponent.transform.position.y));   // Opponent position: -2.69999981
    Debug.Log("Mathf.Approximately: " + Mathf.Approximately(transform.position.y, opponent.transform.position.y));   // Mathf.Approximately: True
    Debug.Log("Equals: " + (transform.position.y == opponent.transform.position.y));   // Equals: False
    vampir0305Дата: Суббота, 23 Июля 2016, 13:36 | Сообщение # 8006
    Unity C# Programmer
    Сейчас нет на сайте
    Так что мне делать то? Как решить проблему?

    Красочная сюжетно-ориентированная игра-головоломка
    EchoITДата: Суббота, 23 Июля 2016, 14:18 | Сообщение # 8007
    старожил
    Сейчас нет на сайте
    vampir0305, программно меняй, говорят же.
    Код
    yourButton.onClick.AddListener(() => yourFunction());


    Долгожданный анонсик: State of War
    vampir0305Дата: Суббота, 23 Июля 2016, 16:55 | Сообщение # 8008
    Unity C# Programmer
    Сейчас нет на сайте
    EchoIT, Как это использовать? И вообще, почему мою переменную кнопка не видит?

    Красочная сюжетно-ориентированная игра-головоломка

    Сообщение отредактировал vampir0305 - Суббота, 23 Июля 2016, 16:56
    ShortKedrДата: Суббота, 23 Июля 2016, 18:32 | Сообщение # 8009
    Renword Studio
    Сейчас нет на сайте
    vampir0305, открой на ютюбе урок по делегатам в C#, посмотри, поймёшь, может быть =)

    Добавлено (23 июля 2016, 18:32)
    ---------------------------------------------
    EchoIT, второй вариант сделать функции switcher'ы, которые видит рефлексия кнопки

    LertmindДата: Суббота, 23 Июля 2016, 18:33 | Сообщение # 8010
    заслуженный участник
    Сейчас нет на сайте
    vampir0305, в инспекторе в On Click точно присвоил объект на котором скрипт с переменной? Должно отображаться, где-то твой косяк.
    ShortKedrДата: Суббота, 23 Июля 2016, 18:35 | Сообщение # 8011
    Renword Studio
    Сейчас нет на сайте
    Цитата Lertmind ()
    в инспекторе в On Click точно присвоил объект на котором скрипт с переменной? Должно отображаться, где-то твой косяк.

    Вообще все косяки, которые происходят в проекте, принадлежат разработчику =)


    Сообщение отредактировал ShortKedr - Суббота, 23 Июля 2016, 18:36
    JerichoДата: Понедельник, 25 Июля 2016, 03:05 | Сообщение # 8012
    Ubuntu 11.10 user
    Сейчас нет на сайте
    Итак товарищи игроделы, прошу вашей помощи. В общем уровень состоит из игрока в виде куба и различных стен. Игрок перемещается во все 4 стороны без остановки, скрипт перемещения игрока приложу ниже. Задача состоит в том, чтобы игрок пока "летит" от одной стены к другой не мог сменить направление.
    Скрипт движения игрока:


    Уютненькая страничка Ерихона

    xxx: Так вы представляете, у него там фрагмент кода в 15 строк повторяется 37 раз. Если вынести в функцию можно сэкономить полтыщи строк!
    yyy: это припев.
    © Антон Антоненко
    LertmindДата: Понедельник, 25 Июля 2016, 04:54 | Сообщение # 8013
    заслуженный участник
    Сейчас нет на сайте
    Jericho, кстати, у тебя игрок движется от одной клетки к другой, то есть положение при остановке всегда в центре клетки? Тогда скорее всего не было смысла использовать физику. Также зависит от того, какой будет механика игры.
    Можно проверить что объект остановился через коллизию/триггер/близкую_к_нулю_скорость и разрешить нажатия клавиш, а после нажатия блокировать ввод через булеву переменную до следующей остановки.
    FlyOfFlyДата: Понедельник, 25 Июля 2016, 07:53 | Сообщение # 8014
    заслуженный участник
    Сейчас нет на сайте
    Использую Lerp Для перемещение платформы, изменяю только X, А он перемещается в все стороны,
    Код
    transofrm.position = Vector3.Lerp(transform.Position, newposition, Time.deltatime)
    Позиция объекта = 7;-0.1;7 А, Newpositin = 12;-0.1;7, и то с плюсом, он двигается в отрицаельную стороны, а если -12, то в нужную и даже дальше
    JerichoДата: Понедельник, 25 Июля 2016, 08:29 | Сообщение # 8015
    Ubuntu 11.10 user
    Сейчас нет на сайте
    Lertmind, Спасибо, в принципе так и думал делать, просто не мог определится через что лучше проверять чтобы корректно работало.

    Уютненькая страничка Ерихона

    xxx: Так вы представляете, у него там фрагмент кода в 15 строк повторяется 37 раз. Если вынести в функцию можно сэкономить полтыщи строк!
    yyy: это припев.
    © Антон Антоненко
    LertmindДата: Понедельник, 25 Июля 2016, 08:45 | Сообщение # 8016
    заслуженный участник
    Сейчас нет на сайте
    FlyOfFly, такое может быть, если ты повесил этот скрипт на дочерний объекта, а родитель не в мировой точке (0, 0, 0). transform.position - задаётся в мировых координатах, а если хочешь перемещать относительно родителя, то используй localPosition:
    Код
    transform.localPosition = Vector3.Lerp(transform.localPosition, newPosition, Time.deltaTime);
    либо преобразуй newPosition в мировые координаты с помощью Transform.TransformPoint.
    Для равномерного движения я бы использовал Vector3.MoveTowards.


    Сообщение отредактировал Lertmind - Понедельник, 25 Июля 2016, 08:46
    EchoITДата: Понедельник, 25 Июля 2016, 12:58 | Сообщение # 8017
    старожил
    Сейчас нет на сайте
    Цитата ShortKedr
    vampir0305, открой на ютюбе урок по делегатам в C#, посмотри, поймёшь, может быть =)

    Сомневаюсь, что поймёт, если не понимает, почему его переменную не видно. :D

    Цитата ShortKedr
    EchoIT, второй вариант сделать функции switcher'ы, которые видит рефлексия кнопки

    Я, если честно, к новому UI ещё не привык, и изучаю его потихоньку. До последнего пользовался ещё guiTexture и guiText. crazy


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

    Сообщение отредактировал EchoIT - Понедельник, 25 Июля 2016, 12:59
    BarbatosДата: Понедельник, 25 Июля 2016, 13:59 | Сообщение # 8018
    3D-моделлер/Руководитель
    Сейчас нет на сайте
    Здравствуйте, мои дорогие котики, песики и енотики. Для вас у меня есть задачка. (На которую даже !Я! не знаю ответа)

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


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


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


    Еще грубее.


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

    Сообщение отредактировал Barbatos - Понедельник, 25 Июля 2016, 14:12
    ShortKedrДата: Понедельник, 25 Июля 2016, 14:32 | Сообщение # 8019
    Renword Studio
    Сейчас нет на сайте
    Делаешь отступ по ребру, ставишь условные точки, на середине линии их соединения будет центр окружности, 2/3 расстояния от центра до основной вершины - это радиус и остаётся угол расчитать тангесом, поделить его на 2, затем точки посчитать и всё =)

    Сообщение отредактировал ShortKedr - Понедельник, 25 Июля 2016, 14:34
    EchoITДата: Понедельник, 25 Июля 2016, 14:39 | Сообщение # 8020
    старожил
    Сейчас нет на сайте
    Barbatos, ShortKedr, я славлюсь упоротыми идеями, но что, если как-нибудь использовать кривые Безье? :D
    См. Верхнее правое изображение. Если я правильно понимаю, можно грамотно просчитать необходимые точки, хотя вариант выше, если он работает, наверное проще. crazy


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

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