我只能在GUI.drawTexture(rect, pos)
阶段使用OnGUI
在图像上绘制纹理,因为在游戏过程中可能会更改纹理像素。(如果除了制作着色器之外还有其他方法)这样做,请告诉我。)
private void OnGUI()
{
GUI.DrawTexture(imageRect, image, ScaleMode.ScaleToFit);
// ^ imageRect is the red area in the demonstration.
}
图像也应该是可移动的&伸展。它也应该在禁区内显示。
如下所示:
在烦人的计算之后,我现在可以进行移动和拉伸,但是矩形将始终浮在屏幕上方,如果我将限制数学放在一起,事情将是一团糟。所以我想知道Mask
阶段绿线区域是否有OnGUI()
可用?
答案 0 :(得分:2)
为什么不使用RawImage组件(它还使用您可以在运行时处理的纹理)?
请记住,您需要在计算结束时调用YOUR_TEXTURE.Apply();
。另请注意,每个使用的RawImage意味着单独的绘图调用。
OnGUI()
应该只用于调试,而不用于最终产品,因为它的优化程度非常低(每帧可调用10次以上)。另外,使用Unity UI,您可以使用Mask组件来实现您的目标。
希望这有帮助,