我想在Unity中开发一款游戏,你从2D星球跳到2D星球,每个星球都有自己的引力(技术上游戏是2.5D,但所有运动都沿着X和Y轴)。我想使用参数公式将地雷放置在这些行星的随机点上;这是我开发的将它们附加到父Planet对象的脚本。然而,地雷并未像预期的那样出现在圆圈的表面,而是呈现出非常扭曲的形状。我可能会做错什么?Circle上的随机点
public class LandMine : MonoBehaviour
{
public GameObject mine;
private GameObject landmine;
private System.Random rand;
private Vector3 pos;
List<GameObject> mines;
public void Start()
{
mines = new List<GameObject>();
LevelStart();
}
public Vector3 ran()
{
rand = new System.Random(359);
float angle = rand.Next();
float value = angle * (Mathf.PI/180f);
float x = (float) (0.5000001 * Mathf.Cos(value)) + 6;
float y = (float) (0.5000001 * Mathf.Sin(value)) - 9;
return new Vector3(x,y,0);
}
void LevelStart()
{
for (int i = 0; i < 5; i++)
{
pos = ran;
mine = Instantiate(mine, pos,Quaternion.identity) as GameObject;
mines.Add(mines);
}
foreach (GameObject m in mines)
{
m.transform.parent = this.transform;
}
}
}
不幸的是,在这些变化之后,矿山仍然在互相之上产生扭曲的形式。 – 2012-01-28 19:14:41
'Instantiate'如何工作? – 2012-01-28 19:37:19
是什么让我怀疑'Instantiate'是,来自前一个循环的矿被作为第一个参数传递给它。它是否需要从中获得新矿的坐标?如果你通过'null'会发生什么? – 2012-02-02 17:48:02