将位置设置在Sprite上的随机位置?

时间:2018-11-01 14:37:43

标签: c# unity3d

小问题。在我的超小型2D游戏中,我产生了一些敌人,我想将它们随机放置在矩形精灵上。我该如何处理?预先感谢!

1 个答案:

答案 0 :(得分:2)

获取矩形精灵的原点:

Vector2 rectPos = myrectangle.transform.position;

获取精灵的一半宽度/高度:

float rectHeight = myrectangle.GetComponent<SpriteRenderer>().sprite.bounds.extents.y;
float rectWidth = myrectangle.GetComponent<SpriteRenderer>().sprite.bounds.extents.x;

在边界内获得随机位置;

float xpos = rectPos + Random.Range(-rectWidth, rectWidth);
float ypos = rectPos + Random.Range(-rectHeight, rectHeight);

然后使用以下组件设置实例化对象的位置:

enemyPrefab.transform.position = new Vector2(xpos, ypos);