最近想自己做个2.5D像素小游戏,因为没有接触2.5D这类游戏的开发,所以只能自己慢慢摸索。按照我自己本来的想法,直接在画布上实例化Image应该就能初步创建出游戏的地形(不考虑细节),但实际上创建出来的地形只能是一个个纯色单调的色块。

后来想起一款以前在steam下载的游戏——《Forager》(浮岛物语),这个游戏的各方面正是我所需要的,所以我就先从地形构造开始观察。当然这样观察肯定不行,因为参考性太过单一,无法获得更多信息。所以后来我又继续参考了几款相似的游戏风格,后来总结了一些简单的规律。

总结有3点:

1.地形板块的黑色描边(凸显板块整体性)

2.地形板块的材质高亮描边(地形颜色强化)

3.地形板块的类型颜色(花纹装饰、丰富度提升)

游戏参考图
设计参考图(颜色分布)
描边构造所需图(共14种)

经过一段时间的尝试,将像素图全部导入后,然后使用大量代码实现了功能。大量的代码实现的仅仅只是随机创建地形后,每个方块以九宫格方式判断周围面片是否存在,然后根据判定对面片进行旋转这样,毕竟不用代码控制旋转只用14张图是不可能把所有地形成功合成起来。

当功能实现后,给我自己感觉就是,真的是糟糕透了,太烂了。不是画面表现不好看,而是对于要用一大串代码控制这么简单的东西实在是忍受不了。所以我就上网查阅了很多资料,发现unity的tilemap功能对于做2D/2.5D游戏有很大的作用,二话不说立刻学。当然了,其实unity自带的tilemap功能是不太够的,所以按照别人说的那样去下载了扩展包,里面有个rule tile功能确实比较好用。

对于rule tile的普通操作功能啥的我就不细说了,毕竟网上一搜一大把,花个5.6分钟就会了。这里我就说一下我踩坑的地方以及解决的方法吧,毕竟我踩的坑比较特别,网上也没人说。

第一个问题:为什么画上去的图和格子的位置不一样?

答:因为Tilemap物体中的Tilemap组件的Tile Anchor的参数改变了。

正确来说默认是(0.5,0.5,0)

第二个问题:为什么导入的像素图模糊

答:因为Unity导入图片后线性过渡导致图片模糊

所以要选择Point!!!

第三个问题:为什么可以只用14张图解决方向,tile如何旋转?

答:普通使用tilemap的话按“ ] ”右方括号键可以旋转,如果用rule tile的话就无效,不过rule tile中有一个rule的参数可以调节。就是Rule-Rotated,该怎么使用呢,网上找了很久都没找到,那我只能自己踩坑了(因为太烂不想出太多图),操作如下,一张图说明:

当Rule参数选择Rotated选项的时候,只需创建一个Rules,不需要像平常那样对应四个方向创建四个,同时针对这个图片进行障碍物的判断即可。然后画出来的效果是

这个功能或许对于大部分开发者来说都应该用不上,毕竟大部分都是创建静态场景,而不像我这种动态生成场景。最后说一下,对于Rule中的另外两个MirrorX和MirrorY选项我的理解是这样的,Mirror顾名思义是镜像,所以这个功能也是按照rule选项一样创建单个即可,测试的时候发现,生成出来的tile判定跟设置的是相反,即假如判定该位置为障碍物,实际上是没有障碍物,反则同理,详细可以自己测试一下。

接下来的开发是完善随机地形的创建,等代码写完再说说随机地形的创建。

unity图片变成马赛克如何取像素并改变颜色_Unity3D-2.5D像素游戏随机地形构造tilemap(rule tile)...相关推荐

  1. unity图片变成马赛克如何取像素并改变颜色_聊聊 2D 游戏的像素化中的问题

    来indienova官网,挖掘独立游戏的更多乐趣 引言 既然我是在做像素游戏,这次就聊一聊在对 2D 游戏像素化的过程中都会碰到的问题吧. 1. 照相机的投影 对于引擎来说,其实不管是 2D 游戏还是 ...

  2. unity图片变成马赛克如何取像素并改变颜色_像素和分辨率到底是什么?它们之间的关系是什么?| 手机相机的像素越高越好吗?...

    本/文主要内容 1像素" 百度百科对于"像素"的定义: 像素是指组成图像的小方格,可以将像素视为整个图像中不可分割的单位或者是元素. " 从这段话很容易就能看出 ...

  3. unity图片变成马赛克如何取像素并改变颜色_爬取微信好友头像完成马赛克拼图!千张头像拼成海贼王!...

    马赛克拼图 何谓马赛克拼图(千图成像),简单来说就是将若干小图片平凑成为一张大图,如下图路飞一样,如果放大看你会发现里面都是一些海贼王里面的图片. Our Tragets 爬取所有微信好友的头像 将所 ...

  4. opencv cv2.imwrite() 写入后像素值改变 jpg写入写出像素值变化

    opencv的cv2.imwrite() 写入后像素值发生改变 jpg的问题 在做图像分割的时候,我代码里明明只有8种颜色,但是生成的图片用PS打开后,添加了许多和8种颜色相近的颜色 于是我怀疑是读写 ...

  5. 用MATLAB给图片打马赛克

    用MATLAB给图片打马赛克 我之前学了图像处理这门课,感觉里面学的一些小程序还是很好玩的就想分享给大家!这是我的第一篇文章,希望大家多多支持!! 话不多说开始吧哈哈哈! 一用getPosition获 ...

  6. layui图片src 指定后没显示_2种方法用python调用cv2模块给图片打马赛克

    1 说明: ===== 1.1 因各种需要,给图片打马赛克,当然本人着重介绍python用cv2的方法,主要讲解python和cv2的相关编程知识. 1.2 cv2模块:是OpenCV的python调 ...

  7. unity中单位是米还是厘米_2019-08-22Unity中的单位长度与像素之间的关系

    一:什么是像素? 像素是由很多个小方格组成,每一个小方格上都存储了位置信息和色彩信息.像素是图像的最小单位 分享一个知识点:图像分为两类,位图和矢量图 位图(点阵图):由多个像素组成,当放大时被分为多 ...

  8. cv2 python 多线程调用摄像头_2种方法用python调用cv2模块给图片打马赛克

    1 说明: ===== 1.1 因各种需要,给图片打马赛克,当然本人着重介绍python用cv2的方法,主要讲解python和cv2的相关编程知识. 1.2 cv2模块:是OpenCV的python调 ...

  9. java图片增加马赛克

    java图片增加马赛克 粘贴即用 具体需要根据项目情况进行调整 粘贴即用 具体需要根据项目情况进行调整 借鉴了许多代码粘贴的 不是原创 只是代码的拼凑师 package com.ruoyi.hfive ...

最新文章

  1. SQL Server 下的 获取当月最后一天
  2. 解决阿里云postfix无法发送邮件问题
  3. 微软dns能做cname吗_为什么域的根不能是CNAME以及有关DNS的其他花絮
  4. 取消Win7关机时的补丁更新
  5. 【C语言】无参函数调用实例
  6. 拥有触觉分析能力,上交MIT获IROS 2020最佳论文奖
  7. Spring-Data-JPA--增删改查2——自定义接口查询
  8. web Api 返回json 的两种方式
  9. Citrix XenApp6.5的安装
  10. awk入门-保护SSHD
  11. 离职因多写3个字被索赔2.9万,这家公司的操作让网友直呼拳头摁了......
  12. LOG. Supervisor基本使用
  13. IntelliJ IDEA 中 右键新建时,选项没有Java class
  14. 电子密码锁设计(附源码和原理图)
  15. 测试绝地求生显卡使用率软件,《绝地求生:大逃杀》全系主流显卡大型评测之显卡需求测试...
  16. IDEA报错:Lombok Requires Annotation Processing, Annotation processing seems to be disabled
  17. (排序5)快速排序(Hoare,选key的随机数与三数取中优化,挖坑法与前后指针法等)
  18. 攻防世界MISC之掀桌子
  19. 中国福利彩票,牛B,开奖和数据传输有什么关系?
  20. vue+elementui封装下载base64文件流,下载模板。

热门文章

  1. 什么是Thymeleaf?
  2. Vue学习笔记之01-Vue的特点
  3. Eclipse安装Egit插件,egit安装特别缓慢
  4. 敏感词过滤算法:前缀树算法
  5. 【Teradata】tdlocaledef修改默认日期配置
  6. 《Java编程思想》笔记14.类型信息
  7. 【bzoj5071】[Lydsy十月月赛]小A的数字 乱搞
  8. Mosquitto搭建Android推送服务番外篇一:各种报错解决
  9. NRF52832学习笔记
  10. css字体转换程序(Node.js)