阅读(1934) (0)

OnGUI 贴图

2020-07-13 14:28:39 更新

纯色背景的界面会给人以单调的感觉,而Unity 3D 可以使用纹理贴图让游戏界面在视觉感受上更加生动。

你可以将纹理贴图想象成装修时在墙上贴壁纸,通过纹理贴图可以对界面生动性、游戏沉浸感的提升上起到画龙点睛的作用。

GUITexture 方法具体使用方法如下:

  • 将图片导入 Unity 3D 中,执行 AssetsImport PackageCustom Package 命令找到图片位置,并加载进来。

图片加载后,可以在 Project 视图中进行查看。

  • 选中图片,将 Texture type 修改成 sprit render 格式,然后将其加载到 Hierarchy 视图中。

  • Unity 3D 会自动分析图片的宽和高,然后以此规格将其加载进来。

如果此时发现图片没有全屏显示或者显示的大小不合意,可以在 Inspector 视图中进行图片大小的缩放。

你也可以使用 GUI.DrawTexture 方法绘制贴图,该方法原型如下:

  /*
     Rect position:表示图片的绘制区域
   * Texture image:表示绘制图片的对象
   * ScaleMode scaleMode:表示图片的缩放模式
   * bool alphaBlend:表示十分开启图片混合模式
   * float imageAspect:表示图片的缩放宽高比例
   */
   public static void DrawTexture(Rect position, Texture image, ScaleMode scaleMode, bool alphaBlend, float imageAspect);

注:

  • position 为纹理贴图的位置。

  • Image 为所贴纹理图片。

  • scaleMode 为纹理的缩放模式。

  • alphaBlend 为图片的混合模式。

  • imageAspect 为图片缩放的宽高比例。

&加载图片资源放置在根目录 Assets 中的 Resource 文件夹下,载入资源时,将整个图片文件夹载入即可。

使用案例

  1. 创建项目,将其命名为 texture,保存场景。

  1. 执行 AssetsCreateJavaScript 命令,创建一个新的脚本文件。

  1. 在 Project 视图中打开脚本编辑器,输入下列语句:

    var aTexture:Texture;
    function OnGUI(){
        if(!aTexture){
            Debug.LogError("Assign a Texture in the inspector.");
            return;
        }
        GUI.DrawTexture(Rect(100, 10, 200, 200), aTexture);
    }

  1. Ctrl+S 键保存脚本。

  1. 在 Project 视图中选择脚本,并将其拖曳到 Hierarchy 视图中的 Main Camera 上,使脚本和摄像机产生关联。

  1. 在 Inspector 视图中添加纹理资源。

  1. 进行测试,效果如下图所示。