Unity: Коллайдер не изменяет размеры с помощью Sprite Shape by Script - PullRequest
2 голосов
/ 08 апреля 2019

Я создал случайно сгенерированную мини-игру с префабами SpriteShape.Генератор случайных чисел перемещает и изменяет сплайн формы SpriteShape.Но Edge Collider 2D обновляет свой размер только тогда, когда я нажимаю на Intitiated Prefab на Hirarchy.

Что я могу сделать, чтобы обновить коллайдер


Это сцена, когда миртолько что сгенерированный.Все коллайдеры находятся на левой стороне.enter image description here


Это сцена после того, как я нажал на первые 2 сгенерированных слоя.2 коллайдера обновили свой размер до SpriteShape enter image description here


Это наш код:

        GameObject currentLayer;
        Spline spline;
        int lastXPos = Random.Range(1, maxXPos-2);

        currentLayer = Instantiate(layer);
        currentLayer.transform.parent = gameObject.transform;
        currentLayer.transform.localPosition = new Vector3(0,-(2+i*2));

        spline = currentLayer.GetComponent<SpriteShapeController>().spline;
        spline.SetPosition(0, new Vector3(0, 0));
        spline.SetPosition(1, new Vector3(lastXPos, 0));

1 Ответ

0 голосов
/ 21 мая 2019

В настоящее время коллайдер автоматического обновления имеет несколько ошибок здесь и там. Лучшим способом было бы вручную испечь коллайдеры в сценарии. просто вызовите метод BakeCollider (). под SpriteShapeController должен сделать работу.

...