コード例 #1
0
        public bool GenerateWorldGrid(WorldGridGenerator generator)
        {
            Debug.Assert(m_GridModel == null, "World Grid already generated", this);

            if (AreReferencesAssigned == true && generator != null)
            {
                m_GridModel = generator.GenerateWorldGridModel(transform);
            }

            return(m_GridModel != null);
        }
コード例 #2
0
        public override WorldGridModel GenerateWorldGridModel(Transform gridRoot)
        {
            int nodeCount = m_GridSize * m_GridSize * m_GridSize;

            Node[] gridNodes = new Node[nodeCount];

            for (int i = 0; i < nodeCount; ++i)
            {
                Vector3Int nodeCoordinates = WorldGridUtil.ConvertNodeIndexToCoordinates(i, m_GridSize);
                gridNodes[i] = CreateGridNode(nodeCoordinates, m_GridSize, gridRoot);
            }

            NodeWalkable playerStartNode = GetPlayerStartNode(gridNodes, m_GridSize);

            if (m_ObstacleDensity > 0)
            {
                AddObstacles(gridNodes, playerStartNode, m_ObstacleDensity, m_ObstaclePattern, m_MinimumPlayerStartClearance);
            }

            WorldGridModel gridModel = new WorldGridModel(gridNodes, m_GridSize, playerStartNode);

            return(gridModel);
        }