通常情况下,对象的网格几何形状仅给出粗略的近似形状,而大多数精细的细节由__纹理__提供。纹理就是应用于网格表面上的标准位图图像。您可以看作纹理图像好像是打印在橡胶板上,然后将橡胶板拉伸并固定在网格上的适当位置。纹理的定位是通过用于创建网格的 3D 建模软件完成的。
Unity 可从最常见的图像文件格式导入纹理。
必须使用材质将纹理应用于对象。材质使用称为着色器的专用图形程序在网格表面上渲染纹理。着色器可实现光照和着色效果,从而模拟许多其他事物的闪亮或凹凸表面。此外,它们还可一次使用两个或更多纹理,将这些纹理组合起来以获得更大的灵活性。
您应该使纹理的尺寸达到 2 的幂次方(例如 32x32、64x64、128x128、256x256 等)。只需将纹理放在项目的 Assets 文件夹中就足够了,它们将出现在 Project 视图中。
导入纹理后,应将其分配给材质。随后,可将材质应用到网格、粒子系统__或 GUI 纹理。通过使用__导入设置 (Import Settings),还可将其转换为__立方体贴图 (Cubemap)__ 或__法线贴图 (Normalmap)__,以便用于游戏中不同类型的应用。有关导入纹理的更多信息,请阅读纹理组件页面。
在 2D 游戏中,为了实现__精灵 (Sprite)__,必须将纹理应用到近似于对象形状的扁平网格。
2D 游戏中的对象可能需要一组相关的图形图像来表示动画帧或角色的不同状态。可使用特殊技术来高效设计和渲染这些图像集。请参阅有关精灵编辑器 (Sprite Editor) 的手册页以了解更多信息。
游戏的_图形用户界面_ (GUI) 包含了一些不直接在游戏场景中使用但允许玩家进行选择和查看信息的图形。例如,分数显示和选项菜单便是游戏 GUI 的典型示例。这些图形与用于表现网格表面细节的图形明显不同,但它们仍然使用标准 Unity 纹理进行处理。请参阅 GUI 脚本指南手册章节以了解有关 Unity GUI 系统的更多详细信息。
网格非常适合表示固体对象,但不太适合表现魔法留下的火焰、烟雾和火花等对象。_粒子系统__可以更好地处理这种类型的效果。粒子_是一个小型 2D 图形,用于表示一小部分基本为流体或气体的东西,例如烟幕云团。当许多这样的粒子一次性创建完成并开始运动(还可能有随机变化)时,它们可产生非常令人信服的效果。例如,可通过从中心点以极快的速度发出带有火焰纹理的粒子来表现爆炸。此外,可通过从场景中的高处加速落下水粒子来模拟瀑布。
Unity 的粒子系统有很多选项可用于创建各种流体效果。请参阅有关该主题的手册章节以了解更多信息。
纹理甚至可用于根本不会查看图像(至少不能直接查看图像)的情况。在灰度图像中,每个像素值仅仅是对应于图像中该点处的灰度的数字(比如说,此数字可以是 0..1 范围内的值,其中 0 表示黑色,而 1 表示白色)。虽然可以查看这样的图像,但其实数字像素值还可用于其他用途,这正是__地形高度贴图__的作用。
_地形_是表示地面区域的网格,而地面上的每个点距离基线都有特定的高度。地形的_高度贴图_以规则的间隔将数字高度样本存储为图像中的灰度值,其中的每个像素对应于地面上的网格坐标。这些值不会在场景中显示为图像,但会转换为用于生成地形网格的坐标。
有趣的是,即使不将高度贴图直接视为图像,仍然有一些常用的图像处理技术在应用于高度数据时非常有用。例如,向高度贴图添加噪点将产生岩石地形的效果,而模糊技术将使其平滑以便产生更柔和、绵延的景观。
在手册的本部分可找到有关 Unity 地形的更多信息。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.