在unity3d

时间:2017-04-28 13:43:16

标签: c# unity3d rect

我只能在GUI.drawTexture(rect, pos)阶段使用OnGUI在图像上绘制纹理,因为在游戏过程中可能会更改纹理像素。(如果除了制作着色器之外还有其他方法)这样做,请告诉我。)

private void OnGUI()
{
    GUI.DrawTexture(imageRect, image, ScaleMode.ScaleToFit);
                   // ^ imageRect is the red area in the demonstration.

}

图像也应该是可移动的&伸展。它也应该在禁区内显示。

如下所示: enter image description here 在烦人的计算之后,我现在可以进行移动和拉伸,但是矩形将始终浮在屏幕上方,如果我将限制数学放在一起,事情将是一团糟。所以我想知道Mask阶段绿线区域是否有OnGUI()可用?

1 个答案:

答案 0 :(得分:2)

为什么不使用RawImage组件(它还使用您可以在运行时处理的纹理)?

请记住,您需要在计算结束时调用YOUR_TEXTURE.Apply();。另请注意,每个使用的RawImage意味着单独的绘图调用。

OnGUI()应该只用于调试,而不用于最终产品,因为它的优化程度非常低(每帧可调用10次以上)。另外,使用Unity UI,您可以使用Mask组件来实现您的目标。

希望这有帮助,