我在使用Mapbox SDK的Unity游戏中工作。我有这个脚本在地图中只产生一个多个位置的预制件。如何在一个不同的位置产生几个不同的预制件?
rand
答案 0 :(得分:1)
我使用struct作为坐标:
public struct Point
{
/// <summary>
/// The x position
/// </summary>
public int X { get; set; }
/// <summary>
/// The y position
/// </summary>
public int Y { get; set; }
/// <summary>
/// Sets the values of the struct
/// </summary>
/// <param name="x">initial x</param>
/// <param name="y">initial y</param>
public Point(int x, int y)
{
this.X = x;
this.Y = y;
}
}
然后我从另一个类中使用了这个结构, blueSpawn和redSpawn是不同的点和 你可以像这样使用不同的预制件:
另一堂课:
private Point blueSpawn, redSpawn;
//this the method for your question
private void SpawnPortals()
{
//Spawns the blue portal
blueSpawn = new Point(0, 0);
Instantiate(bluePortalPrefab, Tiles[BlueSpawn].GetComponent<TileScript>().WorldPosition, Quaternion.identity);
//GameObject tmp = (GameObject)Instantiate(bluePortalPrefab, Tiles[BlueSpawn].GetComponent<TileScript>().WorldPosition, Quaternion.identity);
//You can save like a "tmp" if you need.
//Spawns the red portal
redSpawn = new Point(11, 6);
Instantiate(redPortalPrefab, Tiles[redSpawn].GetComponent<TileScript>().WorldPosition, Quaternion.identity);
}
TileScript和Portal是另一个类,但您可以忽略它们。顺便说一句你可以在Start()
中调用这个方法