找回密码
 立即注册
查看: 256|回复: 0

unity Tilemap随笔

[复制链接]
发表于 2022-7-6 16:26 | 显示全部楼层 |阅读模式
Tilemap随笔

1、暂未处理多层情况,不过官方示例有例子可以参考。
2、画板上资源处理:两种方式拖入资源;
-sprite拖入画板,会提示保存Tile文件,Tile文件上有较少的设置(图1-1)。
-rule文件拖入画板,直接可使用。

图1-1

3、稍微说一下tilemap的rule文件怎么创建的。
导入官方的一个tilemap的扩展包,放到Assets下直接可使用;
扩展包内容和功能直接看github上的讲解就很清楚了。

4、识别点击位置的图片并更改
public void OnSendRay()    {        if (Input.GetMouseButton(0))        {            Ray ray = scenesCamera.ScreenPointToRay(Input.mousePosition);            RaycastHit2D hit = Physics2D.Raycast(new Vector2(ray.origin.x, ray.origin.y), ray.direction);            //Debug.Log("down");            if (hit.collider != null)            {                var tilePos = map.WorldToCell(hit.point);                if (isClear)                {                    map.SetColor(tilePos, new Color(1, 1, 1, 0));                }                else                {                    map.SetTile(tilePos, rule);                    map.SetColor(tilePos, new Color(1, 1, 1, 1));                }            }        }    }
用一下上面的点换算功能,应该能直接通过点获取地图坐标值,这样就不用射线检测碰撞了。

5、有的时候点击到地图的坐标,需要将物体移动到地图对应的坐标上,就需要反向转化坐标。
private void GetBuildPos(Vector3Int inPos)    {        Vector3 worldPos = buildMap.CellToWorld(inPos);        Debug.Log("worldPos=" + worldPos);    }
6、画笔tile翻转:画笔在屏幕时按键:“【”,“】”,shift+“【”,“】”
TileData内的transform,有矩阵数据来判断是否被旋转过。

7、设置颜色时无效的情况,移除掉锁定标记就好了。
BuildMap.RemoveTileFlags(newStartPos, TileFlags.LockColor);                            BuildMap.SetColor(newStartPos,                                new Color(1, 0.3f, 0.3f, 0.6f));
参考网站:
-官方案例:(unity官方地址)
-扩展包:(github tilemap-extras)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-6-2 12:10 , Processed in 0.093017 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表