Beispiel #1
0
        /*
         * @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);
        }
Beispiel #2
0
        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;
            }
        }