Unity中如何在立方体上按原始比例重复纹理避免拉伸 有无无需脚本方案?
Unity 非均匀缩放长方体纹理无拉伸重复方案
不需要额外编写脚本,根据你使用的Unity版本可选择以下两种主流实现方式:
方案1:使用内置三平面映射着色器(推荐,2019.3+版本全管线支持)
三平面映射会基于世界/局部空间坐标对三个轴向分别做纹理投影,自动适配模型尺寸,完全避免不同面的纹理拉伸问题,操作步骤如下:
- 选中你使用的材质,将着色器切换为对应管线的标准着色器(Built-in管线选
Standard、URP选Universal Render Pipeline/Lit、HDRP选HDRP/Lit) - 在材质设置面板找到「Triplanar」(三平面映射)选项并勾选,部分版本该选项位于「表面输入(Surface Inputs)」分类下
- 确保你的纹理导入设置中「Wrap Mode」设置为
Repeat,调整材质的Tiling值即可统一控制所有面的纹理密度,不会出现单轴拉伸
方案2:预设置模型UV(适合固定尺寸的长方体)
如果你的长方体尺寸不会再动态修改,也可以通过提前设置UV实现,完全不需要运行时计算:
- 如果你是从外部建模软件导出的模型,建模时按各面的实际尺寸比例拆分UV即可,导入Unity后直接赋值纹理就会保持原始比例重复
- 如果你使用Unity原生生成的Cube,也可以在建模软件里打开Unity默认Cube资源,按缩放比例调整UV后重新导入替换即可
补充:如果你使用的是2019之前的旧版本Unity,内置标准着色器没有三平面选项,直接在Unity Asset Store搜索免费的三平面着色器资源即可,都是开箱即用不需要写代码的。
内容的提问来源于stack exchange,提问作者Dusk
相关产品推荐
相关产品推荐

