Unity Tilemap позволяет создавать индивидуальные времена падения - PullRequest
0 голосов
/ 22 февраля 2019

Проблема заключается в падении отдельных платформ при использовании карт Tile.В настоящее время, когда игрок сталкивается, каждая платформа падает, а не отдельные платформы.

Используя функцию Tilemap, я создал несколько «падающих платформ».Слой называется Falling Platform (FP).Первая платформа создается на другом слое как точка возрождения.Платформы 2,3 и 4 находятся на FP.

"Падающие платформы 2,3,4" / Все 3 платформы падают вместе

Внутри Инспектора для этого слоя я добавил RigidBody2D Компонент и Композитный Коллайдер 2D.Tilemap Collider 2D был установлен на , используемый Composite .

RigidBody 2D изначально установлен на Kinematic, однако, триггер установлен на Dynamic, когда Player сталкивается с объектом, в результате чего блокпадать.

Падающие компоненты платформы

В FP был добавлен скрипт.Скрипт работает, заставляя платформу падать, когда игрок сталкивается с ней, однако, он применяет ее к каждой платформе, в отличие от установки скрипта на каждой отдельной платформе.

Возможно ли запустить скрипт на каждой отдельной платформе или мне нужно будет создать отдельный слой для каждой отдельной платформы?Я подозреваю, что тогда было бы проще превратить 2D-спрайт в сборный и отказаться от карты тайлов.

public class FallingPlatform : MonoBehaviour
{
    Rigidbody2D rb;

    void Start(){
        rb = GetComponent<Rigidbody2D>();
           }

    void OnCollisionEnter2D(Collision2D col){
        if (col.gameObject.name.Equals ("whiteTile")) {

            Invoke("DropPlatform", 0.2f);
            Destroy(gameObject, 2f);
        }
    }

    void DropPlatform(){
        rb.isKinematic = false;
    }

1 Ответ

0 голосов
/ 22 февраля 2019

Ну, к сожалению, то, что вы делаете, не сработает.Tilemap - это one gameObject , поэтому падение одной плитки приведет к падению всего этого.Что я делал в прошлом, так это перетаскивал плитку, которую вы хотите упасть как отдельный игровой объект, а затем применил к ней мою логику падения.

Другая альтернатива - вы можете иметь отдельные карты плиток для каждого падающего объекта, нов этот момент вы можете также сделать их отдельным объектом в игре.

Вот пример его использования в игре.

...