Exemplo n.º 1
0
        public void Draw(IBitmap canvas)
        {
            for (var x = 0; x < canvas.Width; x++)
            {
                for (var y = 0; y < canvas.Height; y++)
                {
                    var position = _coordinateConverter.Convert(new Vector2Int(x, y));

                    if (!Physics.Raycast(position, Vector3.down, out var hit, RAYCAST_DISTANCE, _raycastMask,
                                         QueryTriggerInteraction.Ignore))
                    {
                        continue;
                    }

                    var materialBitmap = _materialSource.GetTexture(hit.collider.gameObject.name.ToLower());
                    if (materialBitmap == null)
                    {
                        continue;
                    }

                    canvas.SetPixel(x, y,
                                    NormalColorBlending.Instance.Blend(canvas.GetPixel(x, y), materialBitmap.GetPixel(x, y)));
                }
            }
        }