Пятница, 22 Ноября 2024, 18:16

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • bovalexДата: Пятница, 20 Апреля 2018, 11:26 | Сообщение # 8501
    частый гость
    Сейчас нет на сайте
    Корутины:
    Код
    function Timer()
    {
        yield WaitForSeconds(секунды);
    }


    Добавлено (20 Апреля 2018, 11:26)
    ---------------------------------------------
    Если по-крутому, то есть Time.deltaTime.
    Код

    var timer = 10*Time.deltaTime;
    if(timer>0)
       timer -=Time.deltaTime;
    else
       DoSomething();


    Я ненавижу, когда лама по имени Карл бьет меня 37 раз и ест мои руки

    Сообщение отредактировал bovalex - Пятница, 20 Апреля 2018, 11:27
    BassPiraT92Дата: Пятница, 20 Апреля 2018, 11:46 | Сообщение # 8502
    участник
    Сейчас нет на сайте
    bovalex, Я тут ещё надумал кое что другое, правда не знаю получится ли:

    Код
        public int MainTime;
       
        private void Start()
        {
          
            InvokeRepeating("RunTimer", 1, 1);
        }
        void RunTimer()
        {
            MainTime++;
        }


    Потом при нажатии на кнопку я в новую переменную добавляю текущее время и заданное число, после чего проверяю каждый кадр и вычитаю из общего числа получившегося из сложения, текущее время. И получается вроде как в виде таймера с обратным отсчетом.

    Как считаете, так норм или не оч?
    bovalexДата: Пятница, 20 Апреля 2018, 11:59 | Сообщение # 8503
    частый гость
    Сейчас нет на сайте
    Так не получиться. Фпс в игре все время не стабильно, это покадровый таймер, а не посекундный.

    Я ненавижу, когда лама по имени Карл бьет меня 37 раз и ест мои руки
    BassPiraT92Дата: Пятница, 20 Апреля 2018, 12:10 | Сообщение # 8504
    участник
    Сейчас нет на сайте
    bovalex,ну дак игрушка лёгкая 2D, тем более так показуалить.

    Сообщение отредактировал BassPiraT92 - Пятница, 20 Апреля 2018, 13:11
    drcrackДата: Пятница, 20 Апреля 2018, 18:38 | Сообщение # 8505
    старожил
    Сейчас нет на сайте
    корутиной
    BassPiraT92Дата: Суббота, 21 Апреля 2018, 08:32 | Сообщение # 8506
    участник
    Сейчас нет на сайте
    drcrack, уже)))
    drcrackДата: Суббота, 21 Апреля 2018, 08:38 | Сообщение # 8507
    старожил
    Сейчас нет на сайте
    форум лаганул, с новых сообщений кинул на предыдущую страницу, я ответов не видел)

    Сообщение отредактировал drcrack - Суббота, 21 Апреля 2018, 08:39
    absolute_nullДата: Воскресенье, 22 Апреля 2018, 19:29 | Сообщение # 8508
    был не раз
    Сейчас нет на сайте
    Всем добрый вечер. Столкнулся с такой проблемой: пытаюсь рисовать динамически линию от одной точки на экране к другой. Механика: Пальцем нажимаю на экран, и веду по нему, и, от точки нажатия, до места, куда я повёл, рисуется линия, которая может увеличиваться, или, если я поведу обратно, уменьшаться. Так же эта линия прямая, и вращается за движением пальца. Ну т.е. рисуется на апдейте от точки нажатия до точки, куда я повёл палец.

    Я дошёл до динамического измерения расстояния, между двумя точками. Вот код:

    Код
    public Vector2 mousePos1;
        public Vector2 mousePos2;

        public LineRenderer lineRenderer;

        private void Start()
        {
            lineRenderer = GetComponent<LineRenderer>();
            mousePos1 = new Vector2(0, 0);
        }

        private void OnMouseDown()
        {
            mousePos2 = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        }

        private void OnMouseDrag()
        {
            if (mousePos2 != new Vector2(0, 0))
            {
                mousePos1 = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                Debug.Log(mousePos1);
                Debug.Log(Vector2.Distance(mousePos2, mousePos1));

                lineRenderer.SetPosition(1, new Vector3( mousePos2.x, 0, 0));
               
            }
        }


    Т.е. у меня получилось определять точку нажатия, и следить за второй точкой. Но я не могу разобраться с самой отрисовкой линии. С LineRenderer проблемы, и походу, он не подойдёт для такой вещи.
    drcrackДата: Воскресенье, 22 Апреля 2018, 20:03 | Сообщение # 8509
    старожил
    Сейчас нет на сайте
    Код
    lineRenderer.SetPosition(1, new Vector3( mousePos2.x, 0, 0));

    что это и как оно должно работать? почему только 1 позиция? почему только x? попробуй так:
    Код

    lineRenderer.SetPosition(0, mousePos2);
    lineRenderer.SetPosition(1, mousePos1);

    ну и придумай как ее выключать
    xayc73Дата: Понедельник, 23 Апреля 2018, 17:31 | Сообщение # 8510
    уже был
    Сейчас нет на сайте
    Всем привет!
    Передо мною стоит следующая задача:
    Сделать возможность вывода куска карты мира по координатам
    Т.е. ввел две координаты, чтобы получился квадрат, и подгрузился новый кусок
    Участок где-то 1000х1000 км. Сам из себя представляет высотную карту (скачал fbx модели каждого квадрата), поверх текстуры и населенные пункты. На высотные модели добавляются мешколлайдеры. Все файлы лежат в ресурсах. При вводе координат, по имени файлов собирает нужные ресурсы и добавляет на сцену
    Есть некоторый проблемы:
    1. Нельзя ли каким то образом сохранять высотную модель уже с наложенной текстурой и коллайдером? Типа может кэша какого, а то иначе эта операция занимает большое количество времени
    2. Проект не компилируется с таким количеством файлов, лежащих в ресурсах (почти 160Гб). По хорошему, куда то их надо вынести, но вопрос куда? В ассеты?
    3. Если выносить в ассеты, то как это лучше их разбить? По одной моделе в ассете и подгружать потом сколько надо? Либо всё же объединять по много и не беспокоиться, что лоад такого ассета будет очень затратен?
    4. Ну и при загрузке из ресурсов у меня пока на продолжительное время всё остальной виснет. Смогу ли я распараллелить процессы? либо лезть в Unity бесполезно и он сам всё умеет?
    Очень прошу вашей помощи :)


    Сообщение отредактировал xayc73 - Понедельник, 23 Апреля 2018, 17:34
    MajardДата: Понедельник, 23 Апреля 2018, 18:08 | Сообщение # 8511
    уже был
    Сейчас нет на сайте
    Здравствуйте, ребята.

    После установки VPN у меня происходят чудеса с Unity. Если VPN включен, Unity пишет "No network connection". Если VPN выключен, Unity просит войти, но после ввода почты с паролем просто обновляется форма ввода и ничего не происходит.

    Помогите, пожалуйста!!!
    Pihtovyy-yozhegДата: Четверг, 26 Апреля 2018, 04:46 | Сообщение # 8512
    уже был
    Сейчас нет на сайте
    Помогите, очень глупый вопрос. Нигде не нашёл ответ, наверное потому, что это очень просто.
    Как сделать ортографическую камеру, которая видит в изометрической проекции и центрируется на персонаже? Т.е. совсем не нужно, чтобы камера поворачивалась вместе с персонажем (вот таких примеров сколько угодно). Ну вообщем, я думаю, понятно, какая камера. Типа как в Диабло.
    drcrackДата: Четверг, 26 Апреля 2018, 05:22 | Сообщение # 8513
    старожил
    Сейчас нет на сайте
    Код
    void LateUpdate(){
      Camera.main.transform.position = playerObject.transform.position + new Vector3(-5, 5, -5);
      Camera.main.transform.LookAt(playerObject.transform.position);
    }


    Сообщение отредактировал drcrack - Четверг, 26 Апреля 2018, 05:26
    Pihtovyy-yozhegДата: Четверг, 26 Апреля 2018, 07:21 | Сообщение # 8514
    уже был
    Сейчас нет на сайте
    Спасибо, разбираюсь потихоньку. Переделываю стандартную камеру от 3 лица.
    STRATEG766Дата: Пятница, 27 Апреля 2018, 00:38 | Сообщение # 8515
    частый гость
    Сейчас нет на сайте
    А что если я в Particle повешу звук? То есть При стрельбе появляется Particle взрыва и естессна сразу же в след за ним запустится звук взрыва. Или лучше в коде это делать?!
    drcrackДата: Пятница, 27 Апреля 2018, 03:13 | Сообщение # 8516
    старожил
    Сейчас нет на сайте
    Цитата
    А что если я в Particle повешу звук?

    так обычно и делают
    только лучше все-таки не на один обьект все вешать, а организованную иерархию сделать
    Код
    Explosion
      Core Particles
      Trail Particles
      Audio 1
      Audio 2
      Light


    Сообщение отредактировал drcrack - Пятница, 27 Апреля 2018, 03:14
    STRATEG766Дата: Суббота, 28 Апреля 2018, 18:28 | Сообщение # 8517
    частый гость
    Сейчас нет на сайте
    Цитата drcrack ()
    только лучше все-таки не на один обьект все вешать, а организованную иерархию сделать

    Понятно. Просто мне показалось,что звук взрыва немного отстает .. Сначала появляся дым, только потом через 40 мл. сек звук. Думал из-за этого.


    Сообщение отредактировал STRATEG766 - Суббота, 28 Апреля 2018, 18:29
    alex9999Дата: Воскресенье, 29 Апреля 2018, 18:32 | Сообщение # 8518
    был не раз
    Сейчас нет на сайте
    Всем привет, помогите доработать скрипт пожалуйста, в этом скрипте враг находит игрока и двигается в его сторону но после смерти игрока враг замирает на месте, как сделать чтобы враг продолжал движение по инерции когда не на кого ориентироваться?
    вот скрипт:



    Unity the best

    Сообщение отредактировал alex9999 - Воскресенье, 29 Апреля 2018, 20:41
    drcrackДата: Воскресенье, 29 Апреля 2018, 22:31 | Сообщение # 8519
    старожил
    Сейчас нет на сайте
    сделать delta полем класса и не менять ее, если игрок мертв
    alex9999Дата: Воскресенье, 29 Апреля 2018, 23:11 | Сообщение # 8520
    был не раз
    Сейчас нет на сайте
    Цитата drcrack ()
    сделать delta полем класса и не менять ее, если игрок мертв

    а поподробнее можно?


    Unity the best
    Поиск:

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