Egorian
@Egorian

Как сделать двигающиеся платформы?

Делаю платформер 2D. Сделал платформу с таким скриптом
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MonsterBehaviour : MonoBehaviour {

    public float speed = 3f;

    public Transform[] waypoints;
    private int ArrayIndex;

    void Start () {
  ArrayIndex = 0;
    }
    

    void Update () {
  

  transform.position = Vector2.MoveTowards (transform.position, waypoints[ArrayIndex].transform.position, speed * Time.deltaTime);
  CheckWayPoint ();
    }

    void CheckWayPoint(){
  int test = ArrayIndex + 1;

   if (Vector2.Distance(transform.position,waypoints[ArrayIndex].transform.position)<0.1f) {
   if (test > 1) {
    ArrayIndex = 0;
   } else {
    ArrayIndex++;
   }

    }
}
}

Когда персонаж стоит на платформе и она двигается вниз, то перс как-бы отрывается от нее.
Как сделать,чтобы он не отрывался от платформы?
  • Вопрос задан
  • 2411 просмотров
Решения вопроса 2
Griboks
@Griboks Куратор тега C#
Необходимо сделать игрока потомком платформы.
Ответ написан
Комментировать
kreo_OL
@kreo_OL
Медузко -_-
например повесив на персонажа вот такой скрипт
void OnCollisionEnter2D(Collision2D col)
    {
        if (col.transform.tag == "floatPlatform") //передаем персонажу скорость движущихся платформ
            transform.parent = col.transform;
    }
    void OnCollisionExit2D(Collision2D col)
    {
        if (col.transform.tag == "floatPlatform") //убираем у персонажа скорость платформы
            transform.parent = null;
    }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы