Этажная платформа (или платформа из Starbound) 2D

Общие вопросы о Unity3D

Этажная платформа (или платформа из Starbound) 2D

Сообщение castratikron 03 ноя 2019, 13:04

Для того чтобы вы поняли что это за платформа (я просто не знаю как она называется), я залил видео на ютуб (https://youtu.be/Zdg7q5gsHis), там я ее сделал, но способ довольно херовый т.к. работает только если игрок один, а мобы тогда так прыгать не смогут (потому что там исчезают коллайдеры платформ а не коллайдер игрока, код ниже)
Синтаксис:
Используется csharp
public class box : MonoBehaviour
{
    public GameObject player;
    private BoxCollider2D b;

    private void Start()
    {
        b = GetComponent<BoxCollider2D>();
    }
    private void FixedUpdate()
    {
        if (Input.GetAxis("Vertical") < 0 && Input.GetAxis("Jump") > 0) b.enabled = false;
        else Check();
    }
    private void Check()
    {
        if (player.transform.position.y < transform.position.y) b.enabled = false;
        else if (player.transform.position.y > transform.position.y) b.enabled = true;
    }
}

Следовательно, чтобы туда смогли запрыгнуть и мобы, надо сделать что бы их коллайдер исчезал когда они запрыгивали на нее с низу, тогда я сделал все примерно так:
Синтаксис:
Используется csharp
private void Down()
    {
        if (Input.GetAxis("Vertical") < 0) bc.enabled = false; //я в курсе что это строка так себе, я просто не придумал
                                                     // как они будут на нее нормально
                                                     //запрыгивать, а про вопрос спуска я и не думал еще
    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "Finish") bc.enabled = false;//финиш это тег платформы
    }
    private void OnTriggerExit2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "Finish") bc.enabled = true; //я раньше вместо этого изменял IsTrigger но это приводит к багам
    }

Изображение
Но проблема в том, что чтобы это работало надо ставить в Rigigbody collision detection равным continuous, а это для устройства напряжно, тем более если так поставить на 20 с лишним мобов. И вот собственно все...
castratikron
UNец
 
Сообщения: 1
Зарегистрирован: 03 ноя 2019, 11:58

Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 13