如何解决在 Unity 中的多边形对撞机 2d 上随机生成预制件
我在这个游戏对象上附加了 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。