Комментарии:
Гораздо круче и универсальнее сделать массив объектов или трансформов, в которые кидать пустышки с нужными координатами и использовать moveTorwads в замкнутом цикле к каждому элементу из массива.
Таким образом можно сделать универсальный скрипт для всех платформ и только лишь указывать им эти вэйпоинты. Причем их может быть сколько угодно и они могут располагаться вообще в разных координатах по осям и их удобно выставлять прямо в юнити наглядно.
А чтобы персонаж двигался с платформой, за это спасибо, долго не мог сообразить как это реализовать. Думал про указанный тобой способ, но почему-то не делал.
А вот кстати вопрос. Если мой способ управления реализован не через трансформ, а через ригидбади2д, то персонаж не может ходить по платформе. Как тогда сделать?
Вопрос.
Я меняю значение в право + 16f
А в лево + 5f.
То почему-то он не двигается по этим каардинатам, а уходить хер знает куда в -
Я долго следил и он просто ухадил в лево в - значение.
НЕ ПОДСКАЖИТЕ ВЧЁМ МОЖЕТ БЫТЬ ПРОБЛЕМА?
И спасибо за уроки тебе.
Очень сильно помогаю.
Попробовал метод. Но не хочет персонаж реагировать на условия. Плеер контроллер у меня правда другой немного. и платформа двигается между двумя пустыми гейм обжектами. Ошибок никаких код не выдает.
Ответитьплатформа только в право едет что не так?
void Update()
{
if (transform.position.x >10f)
{
moveingRight = false;
}
else if (transform.position.x <-5f)
{
moveingRight = true;
}
if (moveingRight)
{
transform.position = new Vector2(transform.position.x + speed * Time.deltaTime, transform.position.y);
}
else if (moveingRight)
{
transform.position = new Vector2(transform.position.x - speed * Time.deltaTime, transform.position.y);
}
А нафига вы используете лишние переменные, если можно было и без них обойтись? Просто лишний блок кода с копипасты?
ОтветитьНу что-то такое себе. Не универсально каждому физичному объекту писать
ОтветитьКАК ПРОПИСАТЬ ЧЕРЕЗ ТЕГ?
ОтветитьЛучшие уроки по юнити!
Ответитьзачем такие сложности делать, если там есть специальный компонент для движения платформ , и кучу путей можно задавать и тд
ОтветитьА есть видео, где платформа перемещается верх вниз?
Ответитьтак ты сделал её, чтобы она в начале двигалась. У меня она летит в начало и там двигается
ОтветитьПереношу скрипт на платформу выходит ошибка "Невозможно добавить компонент сценария, потому что класс сценария не может быть найден, убедитесь, что нет ошибок компиляции и что имя файла и имя класса совпадают" Что делать
ОтветитьКак легко и просто ты все показываешь)) кстати а для 3д платформы что надо писать?
Ответитьна самой платформе игрок замедляется. Как это исправить?
Ответитькак насчет нескольких платформ в одной сцене?
ОтветитьМОЖНО ГОТОВЫЙ КОД
ОтветитьА если 3d обект?
ОтветитьСпасибо!) Самый простой и быстрый способ. Невероятно помог!
ОтветитьОчень полезное видео, особенно для новичков)
ОтветитьMoving right без e пишется
ОтветитьСпасибо большое автору !!!
ОтветитьТы сохранил мне 10 лет моей жизни, за это я на тебя и подписался
ОтветитьПОдскажите пожалуйста! У меня платформа только вправо движется и потом останавливается, где может быть ошибка???
ОтветитьСпасибо за ролик!
А почему физический движок не обрабатывает сам эту ситуацию? Там же трение есть. Пусть он тянет за собой объекты сверху. Не?
Привет. Чел, я перерыл весь интернет, но не нашел решения. Все эти transform работают только с объектами, на которых нет физики RB. Если повесить RB на платформы и реализовать движение непосредственно через RB, а не через transform, то все это не станет работать. Персонаж все-равно сползёт. Объясни, как сделать то же самое при заданном движении с RB в самом коде?
Ответитьспиздил код
ОтветитьНу и нах*я нам переменную dirX ? если мы ее не используем....
Ответитьстолкнулся со странным багом. Платформа по какой-то причине после запуска игры направляется к зоне камеры. Не могу понять с чем это связанно
ОтветитьНе работает, помогите пожалуйста
ОтветитьХтось знає як таке реалізувати для 3д, я коли роблю так для 3д в мене змінюється форма гравця вона витягується в ту кординату в яку рухається платформа. Допоможіть
ОтветитьСпасибо большое, это было так просто... как я только не извращался))
ОтветитьЕсли у кого-то проблемы с движением вверх вниз то вот все работает:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MovingPlatform : MonoBehaviour
{
public float dir;
private float dirX;
private float speed = 3f;
private bool movingRight = true;
public bool IsHorizontal;
void Update()
{
MovingPlatforms();
}
private void MovingPlatforms()
{
if (IsHorizontal)
{
if (transform.position.x > dir)
{
movingRight = false;
}
else if (transform.position.x < -dir)
{
movingRight = true;
}
if (movingRight)
{
transform.position = new Vector2(transform.position.x + speed * Time.deltaTime, transform.position.y);
}
else
{
transform.position = new Vector2(transform.position.x - speed * Time.deltaTime, transform.position.y);
}
}
else
{
if (transform.position.y > dir)
{
movingRight = false;
}
else if (transform.position.y < -dir)
{
movingRight = true;
}
if (movingRight)
{
transform.position = new Vector2( transform.position.x ,transform.position.y + speed * Time.deltaTime);
}
else
{
transform.position = new Vector2(transform.position.x, transform.position.y - speed * Time.deltaTime);
}
}
}
}
Ребят помогите исправить проблему, у меня персонаж прыгая с движущихся платформы на обычную телепортируется куда то в начало уровня, с чем это связано и что с этим делать?((
ОтветитьЯ один столкнулся с проблемой что не могу прыгать на платформе, может кто помочь?
ОтветитьВы всегда делаете хорошие уроки, но всё усложняете
можно так
using UnityEngine;
public class PlatformMove : MonoBehaviour {
[SerializeField] private float speed;
[SerializeField] private float startingPosition;
[SerializeField] private float endPosition;
private bool upMove = true;
private Vector3 pos;
void Update () {
transform.position += transform.up * speed * Time.deltaTime;
if (pos.y > endPosition && upMove) {
upMove = false;
speed *= -1f;
}
if (pos.y < startingPosition && !upMove) {
upMove = true;
speed *= -1f;
}
pos = transform.position;
}
void OnCollisionEnter (Collision col) {
col.gameObject.transform.parent = transform;
}
void OnCollisionExit (Collision col) {
col.gameObject.transform.parent = null;
}
}
платформа будет двигаться в верх, в низ, если нужно в право, в лево замените в условиях pos.y на pos.x и transform.up на transform.right
И что для каждой платформы свой участок писать?)
ОтветитьПиздец
ОтветитьПочему когда я прыгаю на платформу, мой персонаж начинает дёргаться как сумасшедший и меняет свою форму?
ОтветитьВсё работает,но платформа ,куда бы её не разместили всё время едет в "начальную точку", хотя по идее должна сместится на 4 юнита
ОтветитьЗдравствуйте, помогите пожалуйста. Все запускается, но платформа делает одно движение туда и обратно и замирает... в чем может быть проблема?
Ответитьребят , вот норм код , можно точки старта и конца самому регулировать
Vector3 _targetPoint;
Vector3 _targetPoint1;
//Создаем переменную для обозначения скорости движения
float _speed;
public GameObject finihPoint;
public GameObject startPoint;
bool finih = true;
bool start = false;
void Start()
{
_targetPoint = finihPoint.transform.position;
_targetPoint1 = startPoint.transform.position;// Указываешь нужные координаты
_speed = 0.115f; // указываем скорость
}
void FixedUpdate(){
MoveObj(); // Вызываем метод для движения, вызов происходит каждый фрейм или что то вроде того
}
void MoveObj(){
if ( finih == true)
{
transform.position = Vector2.MoveTowards(transform.position, _targetPoint, _speed);
}
if (transform.position == _targetPoint)
{
finih = false;
start = true;
}
if (start == true)
{
transform.position = Vector2.MoveTowards(transform.position, _targetPoint1, _speed);
}
if (transform.position == _targetPoint1)
{
finih = true;
start = false;
}
}
}
если работает в 3д поставлю лайк и подпишусь если нет поищу ещё
ОтветитьКод как у ЯндереДева: Гайд
ОтветитьОфициально заявляю что твои гайды одни из самых лучших и подробных на всем ютубе
ОтветитьОгромное спасибо, отличный туториал. Все обЪяснили и показали.
ОтветитьСПАСИБО!!!
ОтветитьСпасибо, это было полезное видео👍
ОтветитьА вы не знаете как исправить проблему в 2д, что персонаж трясется/подпрыгивает, когда платформа, которая двигается по координате "y" вверх вниз, движется вниз?
ОтветитьНи у кого не возникло проблемы в том, что камера слетает, когда встоёшь на платформу?
Ответить