Unity3D材质平铺实现大地图

项目中需要制作平面地图,基础地块都是一样的,为了减少drawCall,我想使用单个对象来实现大面积的地层,即创建了一个Cube,然后拉伸再贴上图。
过程中发现贴图并不会自动平铺,需要在编辑器里修改材质的Tiling才可以,但我的图层大小是在代码里动态设置的,无法修改Tiling。谷歌搜了一下,说自定义Shader可以做到,但太麻烦了,最后发现直接修改mainTextureScale即可实现,真是太2了……

贴一下lua代码

local tp = typeof(UnityEngine.Renderer)
local m = bg:GetComponent(tp).material
m.mainTextureScale = Vector2.New(32, 32)

你可能感兴趣的:(Unity3D材质平铺实现大地图)