Unity:对撞机未按脚本调整精灵形状的大小

时间:2019-04-08 18:28:54

标签: c# unity3d sprite collider

我用SpriteShape Prefabs构建了一个随机生成的迷你游戏。随机生成器移动并更改SpriteShape的样条线。但是,仅当我单击Hirarchy上的Instantized预制件时,Edge Collider 2D才刷新其大小。

我该怎么做才能刷新对撞机


这是刚生成世界时的场景。所有碰撞器都在左侧。 enter image description here


这是我单击前两个生成的图层后的场景。 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 :(得分:0)

当前,自动更新对撞机到处都有一些错误。 最好的方法是手动烘焙脚本中的碰撞器。 只需调用BakeCollider()方法即可。在SpriteShapeController下 应该做的工作。