Платформа Unity Falling с возвратом - PullRequest
0 голосов
/ 11 июня 2018

Мой код, почему это его Падающая платформа с возвратом

public class Falling : MonoBehaviour {

    Rigidbody2D rb;
    Vector2 initialPosition;
    bool platformMovingBack;

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
        initialPosition = transform.position;
    }

    void Update()
    {
        if (platformMovingBack)
            transform.position = Vector2.MoveTowards(transform.position, initialPosition, 20f * Time.deltaTime);

        if (transform.position.y == initialPosition.y)
            platformMovingBack = false;
    }

    void OnCollisionEnter2D(Collision2D col)
    {
        if (col.gameObject.name.Equals("Personage_0") && !platformMovingBack)
        {
            Invoke("DropPlatform", 0.5f);
        }
    }

    void DropPlatform()
    {
        rb.isKinematic = false;
        Invoke("GetPlatformBack", 1f);
    }

    void GetPlatformBack()
    {
        rb.velocity = Vector2.zero;
        rb.isKinematic = true;
        platformMovingBack = true;
    }
}

Через пару секунд платформа возвращается в исходное положение, но затем она удаляется, и я не знаю, как это исправить.

1 Ответ

0 голосов
/ 11 июня 2018

Ваш platformMovingBack не будет установлен на false в каждом случае.Измените это:

void Update()
    {
        if (platformMovingBack)
            transform.position = Vector2.MoveTowards(transform.position, initialPosition, 20f * Time.deltaTime);

        if (transform.position.y == initialPosition.y)
            platformMovingBack = false;
    }

на:

void Update()
    {
        if (platformMovingBack)
            transform.position = Vector2.MoveTowards(transform.position, initialPosition, 20f * Time.deltaTime);

        if (Mathf.Abs(transform.position.y - initialPosition.y) < (Time.deltaTime *2.0f)){
            platformMovingBack = false;
            transform.position = initialPosition;
        }
    }

например ...

Как уже упоминалось Себастьяном Килбом в комментариях;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...