Parallax in Unity / скроллинг заднего плана

Поділитися
Вставка
  • Опубліковано 26 січ 2025

КОМЕНТАРІ • 67

  • @bogdan9423
    @bogdan9423 5 місяців тому +1

    Спасибо огромное за туториал! Единственное нормальное видео о том как сделать параллакс эффект 🔥

  • @geanet2021
    @geanet2021 22 дні тому

    Спасибо огромное! Чудесный урок и объяснение понятное, я думала все будет сложнее чем оказалось

  • @GrandBreuil
    @GrandBreuil 4 роки тому +14

    Спасибо тебе еще раз, я благодаря тебе начинаю понимать C# и вообще механику разработки игр. Спасибо😊

  • @mrminecrafter3829
    @mrminecrafter3829 3 роки тому +1

    Спасибо большое автору !!!

  • @naukaison
    @naukaison Рік тому +1

    Задние объекты при параллаксе должны двигаться медленней, чем передние, а не наоборот, как здесь. Самый задний план (облака) буду почти неподвижны => задние объекты должны двигаться в другую сторону.

  • @sventeg5412
    @sventeg5412 2 роки тому

    А этот способ можно использовать для раннера где персонаж стоит на месте и мне надо чтобы он просто плавно переходил

  • @Shugarts
    @Shugarts 5 років тому +2

    Спасибо за урок!

  • @Veyron104
    @Veyron104 4 роки тому +4

    мне одному интересно зачем тебе
    int lastRight = rightIndex;
    int lastLeft = leftIndex;

  • @dmytrohryn8430
    @dmytrohryn8430 5 років тому +1

    Супер !!! спасибо очень позновательно

  • @uralfansoft
    @uralfansoft 4 роки тому +2

    При движении вправо в момент когда третья картинка перемещается появляется ошибка "Index was outside the bounds of the array"

  • @mrminecrafter3829
    @mrminecrafter3829 3 роки тому

    Крутое видео

  • @des1249
    @des1249 5 років тому +1

    Полезные знания, спасибо

  • @veymatcompany6959
    @veymatcompany6959 3 роки тому

    Как сделать вертикальный параллакс?

  • @tankix7975
    @tankix7975 3 роки тому

    Всем привет! У меня есть игра top down(вид сверху) и мне нужно сделать повторяющийся фон. Каким образом это можно реализовать?

  • @kalmikff
    @kalmikff 5 років тому +3

    ФИшка с гейм объектами не работает. "Земля" по игреку смещена на -2.4 вниз. Гейм объекты смещаются вверх на 2.4 при скроллинге, в итоге земля опять на отметке 0 по игреку

  • @mrminecrafter3829
    @mrminecrafter3829 3 роки тому

    Топ видео

  • @Yes.Im.Mr.Anderson
    @Yes.Im.Mr.Anderson 4 роки тому +1

    Привет, вопрос по поводу viewzone - это значение берется из системы координат мира? Тоесть: если размер спрайта в данном случае был 19, то viewzone - 10, это как бы тоже значение по x?

    • @graphicaldesign2776
      @graphicaldesign2776  4 роки тому +1

      Да.

    • @Yes.Im.Mr.Anderson
      @Yes.Im.Mr.Anderson 4 роки тому +1

      @@graphicaldesign2776 Спасибо за уточнение и за материалы. Удачи и здоровья!

  • @pokazy
    @pokazy Рік тому

    Можно полный скрипт под мой комм пожалуйста?

  • @TimonNice
    @TimonNice 4 роки тому +1

    А как контролировать z-координату ? Фон в 0 становится по Z.

  • @Black_Game
    @Black_Game 5 років тому +1

    Привет. Не так давно вы опубликовали видео "Движение по клику в 3d...". Хотелось бы увидеть такой метод в 2D, как в игре, к примеру: The Masterplan. Само движение персонажа к курсору реализовать легко, но чтобы тот обходил, допустим стены, сложнее, и пока мне не понятно как это реализовать. Стоит ли ждать такого рода видео от вас? Просто мне нравится ваша подача и "доступность объяснения", вот и решил спросить/ предложить.

    • @graphicaldesign2776
      @graphicaldesign2776  5 років тому

      Добрый вечер. Пока о таком не задумывался. А почему не сделать 3d, но с видом сверху? тогда вообще никакой проблематики.

    • @Black_Game
      @Black_Game 5 років тому +1

      @@graphicaldesign2776 Да, этот вариант я тоже рассматривал, но тогда нужно будет переделывать все материалы(скрипты, персонажей, анимацию и т.д.), да и эффект "рисовки" пропадает. В Asset Store я нашёл плагин Nav 2D, но он платный, правда и стоит копейки, но хочется в своё обучение не вкладывать лишние деньги. А другой вариант: делать скрипт самому по зарубежным урокам/видео, что меня не очень устраивает, так-как половину информации пропускаю.

    • @graphicaldesign2776
      @graphicaldesign2776  5 років тому +1

      @@Black_Game я подумаю как это правильно реализовать

    • @Black_Game
      @Black_Game 5 років тому

      @@graphicaldesign2776 Спасибо!

    • @КирЭлджернон
      @КирЭлджернон 5 років тому +1

      @@Black_Game Я скачал в Asset Store бесплатный Standard Assets (assetstore.unity.com/packages/essentials/asset-packs/standard-assets-for-unity-2017-3-32351).
      Там есть сцена CharacterThirdPersonAI. Удалил дефолтный пол с его навмешем, сделал свой пол и препятствия стандартно по урокам Navmesh 3d. Камеру направил в пол, повесил на нее 2d Pixel Perfect для корректного отображения спрайтов, добавил спрайт персонажа, повернул к камере. Потом просто в скрипте AICharacterControl.cs добавил строчку GameObject.FindWithTag("igrok").transform.position = character.transform.position;
      в функцию Update. Тегом "igrok" у меня помечен спрайт персонажа. Если отключить рендерер у тела 3д-модели, создается иллюзия пойнтклик-2д. Можно анимировать спрайт с условиями, зависящими от character.transform.rotation, то есть от угла поворота 3д-модели.

  • @Aleksandr_Mak
    @Aleksandr_Mak 3 роки тому

    Сделал всё как в уроке. Иду влево - картинки перемещаются как задумано, кроме 2, они начинают по оси з уплывать куда то. Иду на право - ничего не работает. 3 раза перепроверил код - всё равно.

    • @Aleksandr_Mak
      @Aleksandr_Mak 3 роки тому

      Отбой тревоги. Нашел ошибку. Всё работает как часы. Здвиг по оси з - фиксится большем расстоянием между слоями. Или можно засунуть в пустые объекты с нулевыми координатами картинки.

  • @МаксимЧеремных-у1ж
    @МаксимЧеремных-у1ж 4 роки тому +3

    Походу тут косяк, ругаеться на
    private void ScrollLeft()
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class NewBehaviourScript2 : MonoBehaviour
    {
    public float backgroundSize;
    public float paralaxSpeed;
    private Transform cameraTransform;
    private Transform [] layers;
    private float viewZone = 10;
    private int lefIndex;
    private int rightIdex;
    private float lastCameraX;

    private void Start()
    {
    cameraTransform = Camera.main.transform;
    lastCameraX = cameraTransform.position.x;
    layers = new Transform [transform.chikdCount];
    for (int i=0; i < transform.chikdCount; i++)
    {
    layers[i] = transform.GetChild(i);
    }
    leftIndex = 0;
    rightIndex = layers.Lenght -1;
    }

    private void Update()
    {
    float deltaX = cameraTransform.position.x - lastCameraX;
    transform.position += Vector3.right * (deltaX *paralaxSpeed);
    lastCameraX = cameraTransform.position.x;

    if (cmeraTransform.position.x < (layers[leftIndex].transform.position.x + viewZone))
    {
    ScrollLeft ();
    }

    {
    if (cmeraTransform.position.x > (layers[rightIndex].transform.position.x + viewZone))
    {
    ScrollRight ();
    }

    }
    private void ScrollLeft()
    {
    int lastRight = rightIndex;
    layers [rightIndex].position = Vector3.right = (layers[leftIndex].position.x - backgroundSize);
    leftIndex = rightIndex;
    rightIndex -;
    if (rightIndex < 0)
    {
    rightIndex = layers.Length - 1;
    }
    }
    private void ScrollRight()
    {
    int lastLeft = leftIndex;
    layers [leftIndex].position = Vector3.right = (layers[rightIndex].position.x + backgroundSize);
    rightIndex = leftIndex;
    leftIndex ++;
    if (leftIndex == layers.Length)
    {
    leftIndex = 0;
    }
    }
    }

    • @uralfansoft
      @uralfansoft 4 роки тому

      Во-первых, текст ошибки писать/гуглить не пробовали?
      Во-вторых, cmera и camera - уж определитесь

    • @stroyMelldom
      @stroyMelldom 2 роки тому

      у тебя ошибок хоть жопой жуй

  • @_of_silver5257
    @_of_silver5257 4 роки тому

    Приветствую. Спасибо за интересный и познавательный урок! Хотел бы уточнить один момент. Как настроить камеру так, чтобы не было видно нижнюю границу карты. В дополнении отмечу, что камеру привязывал к персонажу по вашему уроку.

  • @МаксимТолстобров-э9х

    Graphical Design, а как сделать вертикальный паралакс, у меня игра прыгун вверх и есть все для паралакса, но у тебя урок как сделать горизонтальный

    • @uralfansoft
      @uralfansoft 4 роки тому

      думай) мне тож нужен вертикальный паралакс, но он и до просмотра видео не составлял у меня проблем, я думал мож в юньке есть готовое решение, а всё равно придётся всё ручками делать ;)

    • @slava6105
      @slava6105 3 роки тому

      проверяй другую ось и всё

  • @temarig
    @temarig 3 роки тому

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

    • @РоманенкоПавел-д9к
      @РоманенкоПавел-д9к 3 роки тому

      повесить тот же скрипт на камеру и/или сделать фон дочерним от камеры

  • @pianistanton1
    @pianistanton1 4 роки тому

    Ori топ игра, был удивлен,что на Unity сделано

  • @ВадимВласкин-ж5к
    @ВадимВласкин-ж5к 5 років тому

    Большое спасибо)

  • @lazy60
    @lazy60 4 роки тому

    Привет написал твой код вылезла ошибка "не удалось изменить возвращаемое значение "Transform.position"т,к оно не является переменной. " Почему у тебя не было ошибки и как исправить посоветуй.

    • @dronsan-unity7302
      @dronsan-unity7302 4 роки тому

      ответов много может быть. ты лучше код кидай. скорее всего координату Х забыл после position

  • @gameover2644
    @gameover2644 4 роки тому

    А как сделать, у меня камера не движется, но надо чтоб задний фон (облака) двигались.

    • @ZipOfficial
      @ZipOfficial 4 роки тому

      В updates у облоков сделай перемещение отновитсельно их нинешеншо пересечения, напишем на 1/2 пикселя от нынешнего положения, или лучше создай класс который будет вызываться по времени, update будет зависит от кадров

  • @digger-us3nv
    @digger-us3nv 4 роки тому +1

    Что за игрулька на фоне?
    Или это не игра?

  • @shadowsscripts
    @shadowsscripts 4 роки тому +1

    0:07 ori and the will of the wisps

  • @namik_mdm
    @namik_mdm 3 роки тому

    НУ ПОЧЕМУ У МЕНЯ СРЕДНЯЯ КАРТИНКА СКРОЛЛИТСЯ ВЛЕВО КОГДА Я ИДУ ВПРАВО!!!!!!!!!!!!!!!!!!?????????????

  • @TeamSLywnow
    @TeamSLywnow 2 роки тому

    отличный урок но... Массивы в c#? List для тебя какая-то шутка? Можно было бы код сократить сильно и повысить производительность просто используй ты List, вместо массива

    • @raxtwink
      @raxtwink Рік тому

      просто используя lerp в 1 строку можно написать все это

    • @VoidShadow66
      @VoidShadow66 Рік тому

      @@raxtwink как именно подскажи?

  • @ВикторияШвыденко-ю2я

    А по вертикали как? Спасибо)

    • @graphicaldesign2776
      @graphicaldesign2776  4 роки тому

      Так же, только через Y

    • @en_li_85
      @en_li_85 4 роки тому

      @@graphicaldesign2776 а по диагонали

    • @homexp13
      @homexp13 4 роки тому

      @@en_li_85 X + Y

  • @deharchy
    @deharchy 4 роки тому

    а как сделать паралакс если у меня игра 3Д но с 2Д камерой !?

    • @АлександрНовиков-ф2к9э
      @АлександрНовиков-ф2к9э 4 роки тому +1

      Если я тебя правильно понял, то тебе просто следует переключить Camera.Projection на Perspective, а камеру закрепить по оси Z, чтобы "взглядом" не мог вертеть её и она смотрела на твоего персонажа(или место действия) сбоку. После расставь на заднем фоне разные 3D декорации и все эти махинации из видео с кодом не понадобятся.

  • @gamefox8936
    @gamefox8936 4 роки тому

    Все круто, и понятно. Но конечно же без вопроса не обойтись. А вот как сделать также, только с остравами, ну земля находится на растоянии друг от друга.

    • @graphicaldesign2776
      @graphicaldesign2776  4 роки тому

      ua-cam.com/video/ujvNGHdUbw8/v-deo.html

    • @Veyron104
      @Veyron104 4 роки тому

      @@graphicaldesign2776 мне одному интересно зачем тебе
      int lastRight = rightIndex;
      int lastLeft = leftIndex;

  • @neuroArgento
    @neuroArgento 4 роки тому +1

    Зачем ты создал int lastLeft и int lastRight если ты ни разу их не использовал?
    И второй вопрос, как сделать точно так же, только для двух картинок, а не для трёх? Ошибка вылезает IndexOutOfBound

    • @dronsan-unity7302
      @dronsan-unity7302 4 роки тому

      тоже не понял про int lastLeft и int lastRight