コード例 #1
0
        private static bool OnMapGenerateSuccess(uint terrain, uint width, Vector4 location)
        {
            Debug.LogFormat("OnMapGenerateSuccess {0} {1},exist {2}", terrain, location, UnityCppBindings.GetTerrain(terrain) != null);
            var terr = UnityCppBindings.GetTerrain(terrain);

            if (null != terr)
            {
                return(false);
            }
            else
            {
                terr = new TerrainPiece(terrain, (int)width);
                return(terr.TerrainInitilizer(width, location));
            }
        }
コード例 #2
0
ファイル: TerrainPiece.cs プロジェクト: DrYaling/PCGForUnity
 private void SetNeighbors(TerrainNeighbor ignoreNeighbor = TerrainNeighbor.neighborTotal)
 {
     for (TerrainNeighbor n = TerrainNeighbor.neighborPositionLeft; n <= TerrainNeighbor.neighborPositionTop; n++)
     {
         uint terr = WorldMapBindings_GetNeighbor(instaneId, (int)n);
         var  t    = UnityCppBindings.GetTerrain(terr);
         SetNeighbor(t, n);
         //prevent dead loop
         if (null != t && n != ignoreNeighbor)
         {
             t.SetNeighbors((TerrainNeighbor)((int)(n + 2) % (int)TerrainNeighbor.neighborTotal));
         }
     }
     terrain.SetNeighbors(GetNeighbor(TerrainNeighbor.neighborPositionLeft),
                          GetNeighbor(TerrainNeighbor.neighborPositionTop),
                          GetNeighbor(TerrainNeighbor.neighborPositionRight),
                          GetNeighbor(TerrainNeighbor.neighborPositionBottom));
     terrain.Flush();
 }