使用Unity Mapbox SDK在一个不同的位置生成几个不同的预制件

时间:2018-05-01 11:11:03

标签: c# unity3d mapbox

我在使用Mapbox SDK的Unity游戏中工作。我有这个脚本在地图中只产生一个多个位置的预制件。如何在一个不同的位置产生几个不同的预制件?

rand

1 个答案:

答案 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()

中调用这个方法