我从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);
}
}
我如何完整地绘图?
答案 0 :(得分:0)
我在documentation中找到了这个:
旧版GUI和线性创作纹理
Legacy GUI System的渲染元素始终以gamma格式完成 空间。这意味着,对于传统GUI系统,GUI纹理应该 没有删除他们的伽玛读取。这可以通过两个来实现 方法:
- 在纹理导入器中将纹理类型设置为GUI
- 检查高级纹理导入器中的“绕过sRGB采样”复选框