我用SpriteShape Prefabs构建了一个随机生成的迷你游戏。随机生成器移动并更改SpriteShape的样条线。但是,仅当我单击Hirarchy上的Instantized预制件时,Edge Collider 2D才刷新其大小。
我该怎么做才能刷新对撞机
这是世界刚生成时的场景。所有碰撞器都在左侧。
这是我单击前两个生成的图层后的场景。 2个碰撞器将其大小刷新为SpriteShape
这是我们的代码:
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));
最佳答案
当前,自动更新对撞机到处都有一些错误。
最好的方法是手动烘焙脚本中的碰撞器。
只需调用BakeCollider()方法即可。在SpriteShapeController下
应该做的工作。