最近因为项目太忙,很久没写文章了,感觉都生疏了,稍微得点闲空,研究了一下ue4得tilemap,有些收获,就记录下来了.
首先工程里要有一个papertilemap2d得actor,当然我改造了一下,使用这个基类扩展了一个自己得actor方便做一些属性得查找什么得.
然后我们在这个actor里面可以看到一个设置map得地方
额外说一下,这个convert to instance还蛮好用得,我用它把一个地图产生了两个实例,然后可以分辨关闭其中得一些层,之所以这么做,是因为,ue4的tilemap无法单独设置每个层的高度,只能均等分,像我这种需要三面几个层靠近一点,overlay需要抬高的,又希望可以一起编辑地图的,只能用这种旁门左道了.
就类似这样的效果,开两个actor,引用同一个地图,一个上面关上面一层,一个上面只开最上面一层。然后把其中一个actor拉远,大致就是这样的。
这里面都很好理解,地图的每个cell的宽和高,宽高的总数,separation 这个代表了每个层之间的间隔,中间可以放置你自己的角色的,3d,2d都可以。如果没有特别需求的就把这个数值设置大即可了.
在模式里,根据自己的需求可以设置标准的正交视角,也就是90度正方体,还有90度斜视角,就是创世纪那种(不过我估计很多人都不知道,太老了),另外标准45度斜视角,以及p棋盘格那种蜂巢形状的地图.
tilemap里没什么花头,基本上也就这些设置,碰撞么肯定使用3d physics的。碰撞的设置方法在mapset里面,也就是tile的元素里,不在地图里,这个其实有点问题的,按道理碰撞这块应该地图里可以单独设置属性,这样更直观.
mapset的里的操作我就不具体说了,这主要是美术的事情,只说一个重点,就是碰撞,在mapset里可以定义每一个tile的碰撞,但是不可以定义一块的,也就是你一个屋子6个地块组成,你需要点6个tile一个个设置.这点有点反人类的.就类似这样的。
这里面有个重点,就是在设置碰撞的时候如果我们需要具体的属性怎么办,这个你切到上面那个metadata files可以看到自己定义的数据,如果有定义的就是橘黄色的。
选择了这个标记的块后,我们可以看到右边可以设置属性了,你可以定义多个字段。比如传送啊,是否可以种植啊,踩上去什么sound啊,都可以,可以自由发挥了。
这个属性有比较麻烦的地方,就是获取不容易.我是获取了地块的tilemap再遍历获得 .
输入法出问题,就写到这里吧有空再i继续.