private void DrawSelectedLayer()
    {
        var layers = World.Active.EntityManager.GetBuffer <Layers>(mBoundsEntities[0]);
        var colors = World.Active.EntityManager.GetBuffer <Colors>(mBoundsEntities[0]);
        var idx    = System.Math.Max(0, System.Math.Min(Globals.Instance.data.BoundsLayer, layers.Length - 1));
        var voxels = World.Active.EntityManager.GetBuffer <VoxelAABB>(layers[idx].Value);

        for (int j = 0; j < voxels.Length; j++)
        {
            BoundsDrawer.Draw(voxels[j].Value, colors[idx].Value);
        }
    }
예제 #2
0
    private void Awake()
    {
        if (Instance != null)
        {
            Debug.LogWarning("Attempting to dupplicate singleton");
            Destroy(this);
            return;
        }

        Instance = this;
        DontDestroyOnLoad(this);
    }
    private void DrawOutermostLayers()
    {
        var layers = World.Active.EntityManager.GetBuffer <Layers>(mBoundsEntities[0]);
        var colors = World.Active.EntityManager.GetBuffer <Colors>(mBoundsEntities[0]);
        var outer  = World.Active.EntityManager.GetBuffer <VoxelAABB>(layers[1].Value).Reinterpret <Unity.Mathematics.AABB>();
        var inner  = World.Active.EntityManager.GetBuffer <VoxelAABB>(layers[2].Value).Reinterpret <Unity.Mathematics.AABB>();

        for (int i = 0; i < inner.Length; i++)
        {
            BoundsDrawer.Draw(inner[i], colors[1].Value);
            //Handles.Label(inner[i].Center, $"{i}");
        }

        for (int i = 0; i < outer.Length; i++)
        {
            var pos = outer[i].Center;
            pos.x -= outer[i].Extents.x;
            pos.y -= outer[i].Extents.y;
            pos.z -= outer[i].Extents.z;
            BoundsDrawer.Draw(outer[i], colors[2].Value);
            //Handles.Label(pos, $"{i}");
        }
    }