Ejemplo n.º 1
0
    private Transform GetChunkByBlock(Vector3 pos)
    {
        var x        = pos.x < 0 ? ((int)pos.x - ChunkSizeX + 1) / ChunkSizeX : (int)pos.x / ChunkSizeX;
        var y        = pos.y < 0 ? ((int)pos.y - ChunkSizeY + 1) / ChunkSizeY : (int)pos.y / ChunkSizeY;
        var z        = pos.z < 0 ? ((int)pos.z - ChunkSizeZ + 1) / ChunkSizeZ : (int)pos.z / ChunkSizeZ;
        var chunkPos = new Vector3(x, y, z);

        var chunkName = ChunkController.GetChunkName(chunkPos);
        //Debug.Log(chunkName);

        var chunk = transform.FindChild(chunkName);

        if (chunk == null)
        {
            Debug.Log("Не найдена область: " + chunkName);
        }

        return(chunk);
    }
Ejemplo n.º 2
0
    private void Start()
    {
        _world = new World(ChunkSizeX * CountX, ChunkSizeZ * CountZ, 0.01F, 1F, 1, 4);

        for (var i = 0; i < CountX; i++)
        {
            for (var j = -2; j < CountY; j++)
            {
                for (var k = 0; k < CountZ; k++)
                {
                    var position = new Vector3(ChunkSizeX * i, ChunkSizeY * j, ChunkSizeZ * k);

                    var chunk = new GameObject();
                    chunk.name                    = ChunkController.GetChunkName(new Vector3(i, j, k));
                    chunk.transform.parent        = transform;
                    chunk.transform.localPosition = position;

                    var controller = chunk.AddComponent <ChunkController>();
                    controller.Player      = Player;
                    controller.World       = _world;
                    controller.MapPosition = new Vector3(i, j, k);
                }
            }
        }

        var rs = GameObject.FindGameObjectWithTag("RS_MGR");

        if (rs != null)
        {
            rs_mgr = rs.GetComponent <ResourceManager>();
        }
        else
        {
            print("RESOURCE MANAGER NOT FOUND");
        }
    }