Unity GUI.Label / GUI.Box中断图像

时间:2015-11-28 17:50:02

标签: c# unity3d

我从GUI.Label / GUI.Box中绘制图像,但Unity在使用渲染图像之前使用了“遮光”(或“红色滤镜”)。 https://i.gyazo.com/255e4947a7ca95f835104a1f8ffa2e61.png

在屏幕右侧原始苹果 - 明亮。在左边的苹果被统一,但这是黑暗的。

我使用了 GUI.Color = new Color(1f,1f,1f,1f),但它没有帮助我

接下来,写一个编辑器(编辑器窗口)并绘制这个:

https://i.gyazo.com/06908720a2b00c538558c61092a98329.png

苹果很黑。这是我的ItemDrawService:

public class ItemDrawService {

    private GUIStyle labelStyle = null;

        public ItemDrawService(GUIStyle labelStyle){
            this.labelStyle=labelStyle;
        }

    /// <summary>
    /// Отрисовка предмета в инвентаре
    /// </summary>
    /// <param name="item">Рисуемый предмет</param>
    /// <param name="offsetX">Смещение (позиция) инвентаря по x</param>
    /// <param name="offsetY">Смещение (позиция) инвентаря по y</param>
    /// <param name="fixWebPosition">при fixWebPosition=true предмет рисуется "в сетке"</param>
    /// <param name="drawIcon">при drawIcon=false, предмет рисуется без иконки</param>
    public void DrawItem(ItemSlot item, float offsetX, float offsetY, bool fixWebPosition = true, bool drawIcon = true){

        Rect cellRectangle;

        if (fixWebPosition) {

            cellRectangle = new Rect(offsetX + CellSettings.cellPaddingX + (item.position.X - 1) * CellSettings.cellWidth,
                                     offsetY + CellSettings.cellPaddingY + (item.position.Y - 1) * CellSettings.cellHeight,
                                     CellSettings.cellWidth,
                                     CellSettings.cellHeight);

        } else {

            cellRectangle = new Rect(offsetX,
                                     offsetY,
                                     CellSettings.cellWidth,
                                     CellSettings.cellHeight);

        }

        if (drawIcon)
            labelStyle.normal.background = item.item.resource.icon;

        string description = item.item.getCount()>1? item.item.getCount().ToString()+CLang.getInstance().get(Dictionary.K_COUNT) : "";

        GUI.color = new Color(1f,1f,1f,1f);
        GUI.Label(cellRectangle, description, labelStyle);

    }


}

我如何完整地绘图?

1 个答案:

答案 0 :(得分:0)

我在documentation中找到了这个:

  

旧版GUI和线性创作纹理

     

Legacy GUI System的渲染元素始终以gamma格式完成   空间。这意味着,对于传统GUI系统,GUI纹理应该   没有删除他们的伽玛读取。这可以通过两个来实现   方法:

     
      
  • 在纹理导入器中将纹理类型设置为GUI
  •   
  • 检查高级纹理导入器中的“绕过sRGB采样”复选框
  •