Exemplo n.º 1
0
    void DrawWave(int ix, int iy, int iz)
    {
        var wave = _waveBuffer.GetWave(ix, iy, iz);

        if (!wave.IsObserved)
        {
            return;
        }

        var state = wave.ObservedState;
        var mesh  = _moduleSet.modules[state.Index].Mesh;

        if (mesh == null)
        {
            return;
        }

        var pos = math.float3(ix, iy, iz) - _size / 2 + 0.5f;
        var rot = state.Pose.ToRotation();

        var m1 = (float4x4)transform.localToWorldMatrix;
        var m2 = math.float4x4(rot, pos);

        Graphics.DrawMesh(mesh, math.mul(m1, m2), _material, gameObject.layer);
    }