

[饥荒独立游戏制作] 13-14.生成地形贴图
CoParks
游戏开发从业人员/研究生已毕业
阅读 443
2022年8月15日
基于每一个网格的贴图数值,生成对应的网格贴图
基于每一个网格的贴图数值,生成对应的网格贴图。
/// <summary> /// 生成地图贴图 /// </summary> private Texture2D GenerateMapTexture(int[,] cellTexutreIndexMap, Texture2D groundTexture, Texture2D[] marshTextures) { //地图宽高 int mapWidth = cellTexutreIndexMap.GetLength(0); int mapHeight = cellTexutreIndexMap.GetLength(1); //贴图都是矩形,得到每个格子像素大小 int textureCellSize = groundTexture.width; //全图贴图像素大小 Texture2D mapTexture = new Texture2D(mapWidth * textureCellSize, mapHeight * textureCellSize); //遍历每一个格子 for (int y = 0; y < mapHeight; y++) { int offsetY = y * textureCellSize; for (int x = 0; x < mapWidth; x++) { int offsetX = x * textureCellSize; int textureIndex = cellTexutreIndexMap[x, y] - 1; //绘制每一个格子内的像素 for (int y1 = 0; y1 < textureCellSize; y1++) { for (int x1 = 0; x1 < textureCellSize; x1++) { //设置某个像素点的颜色 //确定是森林还是沼泽 //这个地方是森林 || 这个地方时沼泽但是透明的,需要绘制地面groundTexture同位置像素 if (textureIndex < 0) { //是森林,绘制GroundTexture Color color = groundTexture.GetPixel(x1, y1); mapTexture.SetPixel(x1 + offsetX, y1 + offsetY, color); } else { //是沼泽,绘制 marshTextures Color color = marshTextures[textureIndex].GetPixel(x1, y1); if (color.a == 0) { //沼泽是透明的,还是绘制森林 mapTexture.SetPixel(x1 + offsetX, y1 + offsetY, groundTexture.GetPixel(x1, y1)); } else { mapTexture.SetPixel(x1 + offsetX, y1 + offsetY, color); } } } } } } mapTexture.filterMode = FilterMode.Point; mapTexture.wrapMode = TextureWrapMode.Clamp; mapTexture.Apply(); return mapTexture; }
一共四层循环逻辑,外面两层遍历每个格子,里面两层循环,遍历每个格子中的每个像素点,根据当前格子的贴图索引,如果是森林则绘制默认贴图,是沼泽需要绘制经过计算后叠加的贴图,如果对应格子内的像素点是透明的,代表这个点虽然归宿沼泽类型但并没有沼泽的内容,还是绘制下层的默认贴图。
Texture2D mapTexture = GenerateMapTexture(celltexutreIndexMap, groundTexture, marshTextures); meshRenderer.sharedMaterial.mainTexture = mapTexture;
导入资源,测试贴图生成。
最终效果,后续对地图进行分割,避免生成地图过大。
发布于技术交流
推荐阅读

二次元AI文/图生图工作流(ComfyUI+SDXL+Lora+高清修复+面部重绘+手部重绘修复)
2025-08-14
阅读 1123

高度定制化图片AI生成工作流【工作环境准备】ComfyUI+SDXL+Lora训练流程(云服务器)
2025-08-14
阅读 953
[RPG战斗系统] 8~9.角色跳跃状态&空中运动
2023-04-03
阅读 1943

[独立游戏框架2.0使用手册] 8.状态机和场景系统
2023-04-11
阅读 1482

[独立游戏框架2.0使用手册] 9.Mono代理&协程工具&拓展方法
2023-04-11
阅读 777
[RPG战斗系统] 10&14.角色急停
2023-04-10
阅读 869
0条评论

问
AI
全新AI功能上线
1. 基于Unity微调:专为Unity优化,提供精准高效的支持。
2. 深度集成:内置于团结引擎,随时查阅与学习。
3. 多功能支持:全面解决技术问题与学习需求。

问
AI