问题描述
我在这个游戏对象上附加了 pollygon collider 2d。
这个游戏对象是另一个游戏对象的父对象(只是一个小圆圈)。
我希望那个小圆圈在多边形对撞机的某个地方随机生成。
我尝试过这样的事情:
private void GetBounds()
{
polygonCollider = transform.parent.gameObject.GetComponent<PolygonCollider2D>();
bounds = polygonCollider.bounds;
}
public void TargetSetPosition()
{
x = Random.Range(bounds.min.x,bounds.max.x);
y = Random.Range(bounds.min.y,bounds.max.y);
transform.localPosition = new Vector2(x,y);
}
private void Start()
{
GetBounds();
TargetSetPosition();
}
这个脚本附在那个小圆圈上。在 80% 的情况下是好的结果,但有时它会变得很奇怪:
有人可以帮我吗,因为我几乎什么都试过了。
解决方法
bounds = polygonCollider.bounds
正在获取 bounding box 的边界。所以在你的第二张照片中,球在界内。
要使其位于对象的碰撞器内,您需要尝试其他方法,例如 this