我想在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