【问题标题】:Set position at random position on sprite?在精灵上的随机位置设置位置?
【发布时间】:2018-11-01 22:54:39
【问题描述】:

小问题。在我的超小型 2d 游戏中,我生成了一些敌人,我想将它们放置在矩形精灵上方的随机位置。我该如何接近它?提前致谢!

【问题讨论】:

  • 提供你的代码
  • 没有代码可以审核。唯一的问题是,如果我实例化(enemyPrefab,位置),如何在某些精灵上的随机位置设置位置

标签: c# unity3d


【解决方案1】:

获取矩形精灵的原点:

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);

【讨论】:

  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多