/* * @function 创建地图中的障碍物数据 */ public List <Vector3> CreateObstacleData(int num, int space) { List <int> obslist = new List <int>(); for (int i = 0, lenI = num; i < num;) { int _reIdx = Random.Range(0, _Tile.Count()); if (!UtilityHelpTool.isInList(obslist, _reIdx)) { obslist.Add(_reIdx); i++; } } foreach (Vector3 vector in _Tile) { foreach (int i in obslist) { if (_Tile[i] == vector) { _Obstruct.Add(vector); } } } return(_Obstruct); }
public void Create(List <Vector3> _listT, List <Vector3> _listObs, GameObject gameObject, GameObject parentObject) { _gameObject = gameObject; foreach (Vector3 vector in _listT) { GameObject Grid; Grid = Instantiate(gameObject, CalcTilePos(vector), Quaternion.identity); //把复制体都放到地图节点下 //todo 这里得思考重新编写,如何编写可以不用查找GridObject,就把生成的地图挂到节点上 Grid.transform.SetParent(parentObject.transform); Grid.name = UtilityHelpTool.RemoveNameClone(Grid.name); Grid.name = UtilityHelpTool.ResetName(Grid.name, vector); GameObject GridPosData = Grid.transform.Find("GridInfo").gameObject; GridPosData.GetComponent <TextMesh>().text = UtilityHelpTool.SetGridPos(vector); Color ObGrid = SetColor("1"); foreach (Vector3 vectorObs in _listObs) { if (vector == vectorObs) { ObGrid = SetColor("2"); } } GameObject GridColorData = Grid.transform.Find("Tile").gameObject; GridColorData.GetComponent <SpriteRenderer>().color = ObGrid; } }