Я использую структуру для координат:
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 ()