Unity核心5——Tilemap

2023-11-18

Tilemap 一般称之为瓦片地图或者平铺地图,是 Unity2017 中新增的功能,主要用于快速编辑 2D 游戏中的场景,通过复用资源的形式提升地图多样性

​ 工作原理就是用一张张的小图排列组合为一张大地图

​ 它和 SpriteShape 的异同

  • 共同点:他们都是用于制作 2D 游戏的场景或地图的

  • 不同点:

    • SpriteShape 可以让地形有弧度,Tilemap 不行

    • Tilemap 可以快捷制作有伪“Z”轴的地图,SpriteShape 不行

​ 在 Window --> Package Manager 中搜索 2D,选择 2D Tilemap Editor,导入项目

一、瓦片资源

​ Tilemap 的最小单位:“瓦片”,其创建方式有两种:

​ 方法一:

​ 在 Assets --> Create --> Tile 中创建,或者在 Project 窗口中单击右键 --> Create --> Tile

​ 方法二:

​ 在 Tile Palette 瓦片调色板窗口创建,点击 Window --> 2D --> Tile Palette

1.首先新建一个瓦片地图编辑文件,创建时的默认参数不动

2.将图片资源拖入到窗口中选择要保存的路径

​ 参数介绍:

  1. Preview:预览图
  2. Sprite:瓦片关联的精灵纹理
  3. Color:瓦片色调颜色
  4. Collider Type:碰撞器类型
    • None:不生成碰撞器
    • Sprite:基于精灵轮廓生成碰撞器形状
    • Gird:基于瓦片单元格生成碰撞器形状

二、瓦片调色板窗口

(一)创建瓦片调色器相关参数

  1. Name:瓦片调色器的名称
  2. Grid:瓦片的网格布局
    • Rectangle:矩形瓦片
    • Hexagon:六边形瓦片
    • Isometric:等距瓦片,单元格为菱形
    • Isometric Z as Y:等距瓦片并且将单元格 Z 轴转换为局部 Y 坐标
  3. Hexagon Type:六边形瓦片地图类型,决定了六边形的旋转位置
    • Point Top:点朝顶部的六边形
    • Flat Top:面朝顶部的六边形
  4. Cell Size:瓦片绘制到单元格的大小
    • Automatic:基于瓦片资源的精灵大小自动设置
    • Manual:自定义大小

(二)瓦片调色板面板

​ 编辑的时候注意打开 Editor 开关:

  1. image-20220508082653778:选择 (S)
  2. image-20220508082829878:移动 (M)
  3. image-20220508082904393:画笔 (B),使用选取器后会自动切换到画笔工具,单个填充
  4. image-20220508082926696:框填 (U),使用选取器后再切换到框填工具,范围填充
  5. image-20220508082947015:选取器 (I),选取填充样本
  6. image-20220508083017455:橡皮擦 (D),单个擦除
  7. image-20220508083053112:填充 (G),使用选取器后再切换到填充工具,批量填充
  8. Active Tilemap:当前激活的瓦片层

(三)创建地图

  1. 将所有资源图片一起导入瓦片调色板中

  1. 在 Hierarchy 窗口中右键选择 2D Project --> Tilemap 创建,此时 Scene 窗口中将出现网格
  2. 用选取器选中调色板中的图片,直接在 Scene 窗口中单击创建即可
  3. 可以创建多个 Tilemap,将其层级排序

(四)等距瓦片地图的编辑

​ 创建模式为 Isometric Z as Y 的瓦片调色板,将资源拖入其中,会发现高度不同的图片并没有对齐

​ 原因是在调色板中默认会将图片的中心点和菱形的中心点重合,我们这里需要在 Sprite Editor 窗口中调整 Sprite 的中心点即可

​ 调整好后,方块的上表面即可与菱形平面对齐

​ 也可以开启 Tile Palette 窗口中的 Can Change Z Position,为每一张图片手动设置高度。按 “+” 和 “-” 可以快捷修改 Z 的高度

​ 但此时在 Scene 窗口中绘制不同的方块时,其渲染情况会很奇怪

​ 因为 Unity 内部设置的原因,我们需要修改 Edit --> Project Setting --> Graphics --> Camera Settings 中的 Transparency Sort Mode 为 Custom Axis,并将 X、Y、Z 设置为 0、1、-0.26。同时,将该 Tilemap 的 Tilemap Renderer 的模式切换为 individual,此时渲染情况将变得正常。


三、瓦片地图关键脚本和碰撞器

(一)Grid

  1. Cell Size:网格单元格的大小
  2. Cell Gap:网格之间的间隔大小
  3. Cell Layout:网格单元的形状和排列
    • Rectangle:矩形瓦片
    • Hexagon:六边形瓦片
    • Isometric:等距瓦片,单元格为菱形
    • Isometric Z as Y:等距瓦片并且将单元格 Z 轴转换为局部 Y 坐标
  4. Cell Swizzle:Unity 将 XYZ 单元格坐标重新排序为你选择的类型

(二)Tilemap

  1. Animation Frame Rate:播放瓦片动画的速率,相当于倍速
  2. Color:瓦片色调颜色
  3. Tile Anchor:瓦片的锚点偏移
  4. Orientation:瓦片地图上瓦片的方向,相当于 2D 平面使用的是 Unity 中的哪两个轴

(三)Tilemap Renderer

  1. Sort Order:设置所选瓦片地图上的瓦片排序方向

  2. Mode:渲染器的渲染模式

    • Chunk:按位置对瓦片进行分组,并将瓦片精灵一起批处理进行渲染,性能较好

    • Individual:单独渲染每个瓦片,会考虑他们的位置和排序顺序。会让瓦片精灵和场景中其他渲染器或自定义排序轴进行交互

      等距瓦片一般选择此项

  3. Detect Chunk Culling:渲染器如何剔除瓦片地图的边界

    • Auto:自动检测
    • Manual:手动设置拓展边界
  4. Mask Interaction:遮罩交互

    • None:不与场景中任何精灵遮罩交互
    • Visible Inside mask:精灵遮罩覆盖的地方可见,而遮罩外部不可见
    • Visible Outside mask:精灵遮罩外部的地方可见,而遮罩覆盖处不可见
  5. Material:材质,默认选择的是不受光照效果的材质

  6. Chunk Culling Bounds:当选择手动设置剔除拓展边界时,可以在这里填写自己拓展的值

  7. Sorting Layer:所在排序层

  8. Order in Layer:排序层的序号

(四)瓦片地图碰撞器

​ 为挂载 TilemapRenerer 脚本的对象添加 Tilemap Collider 2D 脚本,会自动添加碰撞器

​ 注意:想要生成碰撞器的瓦片 Collider Type 类型要进行设置,不能为 None

四、导入瓦片官方拓展包

​ 拓展包为 Tilemap 添加新的瓦片类型和笔刷类型,帮助我们更加方便的编辑 2D 场景

​ 解压后直接拖入到 Assets 文件夹中即可

​ 下载地址:https://github.com/Unity-Technologies/2d-extras

​ 注意选择对应的 Unity 版本进行下载

​ 下载好后,在 Project 窗口中右键,会发现多出来这些选项

五、新增瓦片类型

(一)规则瓦片 Rule Tile

​ 定义不同方向是否存在连接图片的规则,让我们更加快捷的进行地图编辑

  1. Default Sprite:默认图片

  2. Default GameObject:默认游戏对象,一般不关联

  3. Default Collider:默认碰撞器规则

    • None:不生成碰撞器
    • Sprite:基于精灵轮廓生成碰撞器形状
    • Gird:基于瓦片单元格生成碰撞器形状
  4. Tiling Rules:平铺规则,可以自己添加删除

    在右边的九宫格内左键单击可以选中 ✔️,表示这个九宫格位置有图片;右键单击可以选中 ❌,表示这个九宫格位置没有图片,双击可以切换选中形态

    当整个九宫格都满足自己设置的条件时,九宫格中央区域将显示最右方选择的图片

(二)动画瓦片 Animated Tile

​ 可以指定序列帧,产生可以播放序列帧动画的瓦片

  1. Number of Animated Sprites:动画有多少张图构成
  2. Minimum Speed:最小播放速度
  3. Maximum Speed:最大播放速度
  4. Start Time:开始播放的时间
  5. Start Frame:从哪一帧开始播放
  6. Collider Type:碰撞器规则
    • None:不生成碰撞器
    • Sprite:基于精灵轮廓生成碰撞器形状
    • Gird:基于瓦片单元格生成碰撞器形状

(三)管道瓦片 Pipeline Tile

​ 根据自己相邻瓦片的数量更换显示的图片

  • One —— Four:相邻 1 ~ 4 个图片时使用的图片

(四)随机瓦片 Random Tile

​ 根据你设置的图片,随机从中选一个进行绘制

  1. Number of Sprites:有多少张图构成
  2. Color:叠加的颜色
  3. Collider Type:碰撞器规则
    • None:不生成碰撞器
    • Sprite:基于精灵轮廓生成碰撞器形状
    • Gird:基于瓦片单元格生成碰撞器形状

(五)地形瓦片 Terrain Tile

​ 有点类似规则瓦片,只不过地形瓦片是帮助你定好的规则

  1. Filled:填满
  2. Three Sides:三个面
  3. Two Sides and One Corner:两面一角
  4. Two Adjacent Sides:相邻两侧
  5. Two Opposite Sides:两个相对的侧面
  6. One Side and Two Corners:一侧和两个角
  7. One Side and One Upper Corner:一边和上角
  8. One Side:一面
  9. Four Corners:四个角
  10. Three Corners:三个角
  11. Two Adjacent Corners:两个相邻角
  12. Two Opposite Corners:两个相反的角
  13. One Corner:一个角
  14. Empty:空

(六)权重随机瓦片 Weighted Random Tile

​ 可以不平均随机选择图片的瓦片

  1. Number of Sprites:有多少张图构成
  2. Weight:每种图片的权重
  3. Color:叠加的颜色
  4. Collider Type:碰撞器规则
    • None:不生成碰撞器
    • Sprite:基于精灵轮廓生成碰撞器形状
    • Gird:基于瓦片单元格生成碰撞器形状

(七)规则覆盖瓦片 Rule Override Tile

​ 在规则瓦片的基础上,改变已经设置的规则对应的图片

(八)高级规则覆盖瓦片 Advanced Rule Override Tile

​ 在规则瓦片的基础上,改变已经设置的规则与对应的图片

六、新增笔刷类型

(一)自定义笔刷

1.预设体笔刷——用于快捷刷出想要创建的精灵

可以关联预制体,用于快速创建该预制体

2.预设体随机笔刷——用于快捷随机刷出想要创建的精灵

  • Perlin Scale:柏林算法参数,一般不需要改

3.随机笔刷——可以指定瓦片进行关联,随机刷出对应瓦片

  • Random Tile Set Size:随机瓦片设置大小,每次绘制 X * Y 个瓦片
  • Random Tile Sets:随机瓦片设置
  • Pick Random Tiles:随机选择瓦片,效果不明显
  • Add To Random Tiles:添加到随机瓦片,效果不明显

(二)拓展笔刷

​ 笔刷记录了额外的信息,使用时相当于把这些信息显示出来

  1. Coordinate Brush 坐标笔刷 —— 可以实时看到格子坐标

  2. Game Object Brush 游戏对象笔刷 —— 可以在场景中选择和擦除游戏对象,仅限于选定的游戏对象的子级

  3. Group Brush 组合笔刷 —— 可以设置参数,当点击一个瓦片样式时,会自动向后选取一个范围内的瓦片

    • Gap:从笔刷向后看,遇到 Gap 个瓦片空格时停止选择
    • Limit:从笔刷向后看 Limit 个瓦片,共选择 Limit + 1 个瓦片

4.Line Brush 线性笔刷 —— 决定起点和终点画一条线出来

  • Line Start Active:起点是否激活
  • Fill Gaps:扩充线的宽度
  • Line Start:线的起点坐标

5.Random Brush 随机笔刷 —— 和之前的自定义随机画笔类似,可以随机画出瓦片

类似自定义笔刷中的 Random Brush

6.Tint Brush 着色笔刷 —— 可以给瓦片着色,瓦片的颜色锁要开启(Inspector 窗口切换 Debug 模式,修改 Flags 为 None)

7.Tint Brush(Smooth) 光滑着色笔刷 —— 可以给瓦片进行渐变着色,需要按要求改变材质

七、代码管理 Tilemap

​ Tilemap 组件:用于管理瓦片地图

​ TileBase 组件:瓦片资源对象基类

​ Grid 组件:用于坐标转换

​ 使用它们需要引用命名空间:using UnityEngine.Tilemaps;

// 瓦片地图信息 可以通过它得到瓦片格子
public Tilemap map;

// 格子位置相关控制 可以通过它 进行坐标转换
public Grid grid;

// 瓦片资源基类通过它可以得到瓦片资源
public TileBase tileBase;

// Start is called before the first frame update
void Start()
{
    // 1.清空瓦片地图
    map.ClearAllTiles();

    // 2.获取指定坐标格子
    TileBase tmp = map.GetTile(Vector3Int.zero);

    // 3.设置删除瓦片
    map.SetTile(new Vector3Int(0, 2, 0), tileBase); // 设置
    map.SetTile(new Vector3Int(1, 0, 0), null);     // 删除

    // 4.替换瓦片
    map.SwapTile(tmp, tileBase); // tmp 的所有瓦片将变成 tileBase

    // 5.世界坐标转格子坐标

    //   屏幕坐标转世界坐标
    //   世界坐标转格子坐标
    // 传入的参数是世界坐标
    grid.WorldToCell();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity核心5——Tilemap 的相关文章

  • Unity 分块延迟渲染01 (TBDR)

    现代移动端图形体系结构的概述 现代SoC通常会同时集成CPU和GPU CPU被用于处理需要低内存延迟的序列 大量分支的数据集 其晶体管用于流控制和数据缓存 GPU为处理大型 未分支的数据集 如3D渲染 晶体管专用于寄存器和算术逻辑单元 而不
  • Unity 粒子特效、材质发光 HDR ShaderGraph图文教程[完成lit发光设置]

    效果如图 准备工作 在hdr模式下 关闭Directional Light 相机设置 移动球挂一个点光源作为子节点 设置自行调节 0 创建移动球的材质及shader shader gt 在Project Create Shader Grap
  • Unity动画控制器animator.CrossFade

    需要特别注意 1 CrossFade虽然可以不用任何逻辑来链接而直接跳转 但是CrossFade只能覆盖其他动画 当当前动画播放完毕而没有跳出这个动画时再次调用CrossFade将会失败 造成动画依旧停在原位 参数animator Cros
  • Unity Shader入门精要第七章 基础纹理之遮罩纹理

    Unity系列文章目录 文章目录 Unity系列文章目录 前言 一 实践 参考 前言 遮罩纹理 mask texture 是本章要介绍的最后一种纹理 它非常有用 在很多商业游戏中 都可以见到它的身影 那么什么是遮罩呢 简单来讲 遮罩允许我们
  • Unity中按钮检测鼠标状态

    改方法主要是用于按钮检测鼠标的进入 滑出 点击 抬起 长按 长按停止 1 先将下面这个脚本挂载到需要检测鼠标状态的按钮上 using System Collections using System Collections Generic u
  • Unity动画系统详解

    目录 动画编辑器 编辑器面板 动画复用 前言 人形重定向动画 Humanoid 通用动画 Generic 旧版本动画 Legacy 动画控制器 系统状态 切换条件 状态机脚本 IK动画 反向动力学 BlendTree 混合树 Animato
  • Unity中实现倒计时的几种方式

    1 Time time using UnityEngine public class TimeTest MonoBehaviour public float secound 10 void Update Timing private flo
  • unity中创建询问弹出窗口

    在开发过程中进程会遇到需要弹出一个窗口询问用户是否进行的操作 今天就来制作一个这样弹出窗口 然后根据弹出窗口的选择内容不同进行不同的操作 本例中主要是为了删除一个数据 而在删除数据操作前需要得到用户的一个确认操作 这里面主要用到了Notif
  • unity后台加密时间锁

    前言 在做一些项目的时候 有些不良甲方在给完项目后会有不给尾款的情况 之前都是加一些水印啥的 感觉不是很方便 第一不美观 第二如果甲方给完尾款后还得重新打包去水印 然后又做过一个本地的时间锁 等到时间 程序直接退出 但是感觉还是不方便 有时
  • unity工程崩溃资源找回

    1 Unity死机未保存场景 当你在Unity中编辑场景 突然死机时 可以在项目文件目录中找到Temp文件夹 双击文件夹 找到 Backupscenes文件夹 把后缀为 backup的文件后缀改为 unity 然后拖进Unity的Proje
  • Unity 键盘控制人物移动——之输入方式代码的编写

    键盘输入 控制人物移动 在我们制作游戏中最常见的需求之一就是使用键盘移动游戏角色 那么我们首先需要获取键盘输入 以下提供两种方法获取键盘 这里尽量通过截图解释让大家理解代码的含义 GetInput void FixedUpdate Move
  • Unity打开工程时卡住的问题

    自从Unity升级了一个版本后 Unity打开工程卡住的问题越来越严重了 具体表现为 选择工程后 Unity窗口消失 但进程还在 有时候等个几分钟能出来 有时候等10分钟都不见得能出来 直观感受上看 似乎是Unity加载工程的时候某一步卡了
  • unity dots jobSystem 记录

    Looking for a way to get started writing safe multithreaded code Learn the principles behind our Job System and how it w
  • Unity万向节死锁解决方案(2023/12/4)

    1 万向节死锁无法解决 这是因为它的特性就是如此 就像玻璃杯就是玻璃 这不可否认 别钻牛角尖昂 2 大多数情况下欧拉角足够用 例如 CF 摄像机不可能绕z轴旋转 x轴旋转也不会超过九十度 因为那样人物的腰子会被扭断 塔防游戏 保卫萝卜 吃鸡
  • unity3d image组件不显示

    需要将UI组件放到画布下面
  • mixamo根动画导入UE5问题:滑铲

    最近想做一个跑酷游戏 从mixamo下载滑铲动作后 出了很多动画的问题 花了两周时间 终于是把所有的问题基本上都解决了 常见问题 1 动画序列 人物不移动 2 动画序列 人物移动朝向错误 3 蒙太奇 人物移动后会被拉回 4 蒙太奇 动画移动
  • 【Unity】运行时创建曲线(贝塞尔的运用)

    Unity 运行时创建线 贝塞尔的运用 1 实现的目标 在运行状态下创建一条可以使用贝塞尔方法实时编辑的网格曲线 2 原理介绍 2 1 曲线的创建 unity建立网格曲线可以参考 Unity程序化网格体 的实现方法 主要分为顶点 三角面 U
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • 游戏开发常见操作梳理之NPC药品商店系统(NGUI版)

    后续会出UGUI Json的版本 敬请期待 游戏开发中经常会出现药品商店 实际操作与武器商店类似 甚至根据实际情况可以简化设置 废话不多说 直接上代码 药品商店的源码 using System Collections using Syste
  • 游戏开发常见操作系列之敌人系统的开发一(U3D)

    在开发游戏的过程中 我们常常会出现一些敌人攻击我们玩家 并且实现掉血以及死亡的现象 敌人还会源源不断地生成 这是怎么制作的呢 接下来为大家提供方法 其中使用了NGUI 后续会更新其它方法 敬请期待 使用HUDText实现扣血时显示文本 直接

随机推荐

  • Java 利用hutool工具实现导出excel并合并单元格

    Java 利用hutool工具实现导出excel并合并单元格 controller层调用service 就一个核心方法 没错就下面这个代码就能实现了 前提是项目里面要引用hutool包 把我这个复制到项目里面然后改掉字段应该能直接跑起来的
  • SQL Server统计数据库表空间大小和数据量

    SQL Server统计数据库表空间大小和数据量 在大数据环境中 对于SQL Server数据库的管理和优化是非常重要的 其中一个关键任务是统计数据库中各个表的空间大小和数据量 通过了解每个表所占用的存储空间 可以进行容量规划 性能优化和资
  • 虚拟机上的Ubuntu开机显示“无法应用原保存的显示器配置”

    如图 解决方法 删除monitors xml 文件 rm config monitors xml
  • pdf模板,java替换变量

    开发十年 就只剩下这套Java开发体系了 gt gt gt 1 创建pdf 现在word中创建模板 输出为pdf文件2 pdf 2 java项目引入依赖
  • 单片机时间戳转换

    看了网上的例程 大多繁琐 直接利用time h里的库函数进行转换即可 include
  • windows上传文件到ubuntu

    进入putty目录下 运行pscp 然后pscp 目标文件 Linux用户名 IP地址 目标文件夹 输入linux的登陆密码即可 more than one remote source not supported 出现这种情况是由空格导致的
  • Linux内核的编译、安装、调试

    这里写目录标题 编译安装内核 下载内核 安装依赖 更改 config 编译内核 安装 首先安装模块 安装内核 更改引导 更改 grub 重启 其他操作 清理内核源目录 卸载安装的内核 修改内核配置菜单实现对新加入内核源码的控制 常见问题 1
  • 8-13外部排序-败者树

    败者树是树形选择排序的一种变体 可视为一棵完全二叉树 通过败者树 可以在k个归并段中选出最小关键字所需要的关键字对比次数更少 绿色为叶子结点 存放初始数据 黑色为失败结点 蓝色为胜出结点 一 基本过程 以下按从小到大的方式构建 1 从8个归
  • Nor Flash,Nand Flash

    文章目录 1 Nor Flash 使用场景 2 Nand Flash 使用场景 3 读写速度对比 4 成本与容量 1 Nor Flash 使用场景 对于大多数应用较为简单的场景 比如 MCU 其内置的 Flash 就是使用的是 Nor Fl
  • python基础开发篇3——线上环境部署Django项目

    文章目录 一 基本了解 二 打包本地项目 三 服务器环境准备 四 安装web服务 4 1 使用uwsgi代理 4 2 使用nginx代理 推荐 五 部署daphne 一 基本了解 部署思路 Nginx服务接收浏览器的动态请求 再通过uwsg
  • 前端上传图片,Python后端接收

    前端代码 h1 Image Upload h1
  • 题目:洛谷1088 火星人(排列组合问题)

    题目描述 人类终于登上了火星的土地并且见到了神秘的火星人 人类和火星人都无法理解对方的语言 但是我们的科学家发明了一种用数字交流的方法 这种交流方法是这样的 首先 火星人把一个非常大的数字告诉人类科学家 科学家破解这个数字的含义后 再把一个
  • homework03

    1 编写一个程序来读入不指定个数的整数 然后决定已经读取的整数中有多少个正数和多少个负数 并计算这些输入值 不统计0 的总和 最终得出它们的平均值 这个程序以输入值0来结束 使用浮点数显示这个平均值 a 0 b 0 sum 0 count
  • Python之ML--机器学习分类算法

    Python之ML 机器学习分类算法 介绍最早以算法方式描述的分类机器学习算法 感知器 perceptron 和自适应线性神经元 adaptive linear neuron 我们将使用python循序渐进地实现一个感知器 并且通过训练使其
  • VSCode与PyCharm提示unresolved import解决方案

    问题描述 在VScode或者pyharm中采用python import自定义模块是 有时会显示unresolved import警告并且 无法跳转到自定义模块函数定义 出现问题的原因 没有安装import对应的模块 import的文件夹没
  • 使用STM32的TIMER进行外部计数

    使用ETR引脚的输入信号作为计数时钟 本例程使用Timer 2 其ETR输入引脚为PA1 该引脚工作模式为输 入模式 Timer的工作模式为从模式 另外使用PC6输出一模拟方波时钟信号 测试时将PC6与PA1短接 用户也可另外连接一个时钟信
  • 简述反射机制

    一 什么是反射 1 1 反射 所谓框架的灵魂 框架 半成品软件 可以在框架的基础上进行软件开发 简化代码 反射 将类的各个组成部分封装为其他对象 反射机制 简单来说反射就是在程序运行期间 动态的获取类或者对象中的属性 什么是动态获取 反射的
  • Swift语法学习--类(class)

    文章目录 类 初始化及实例 类的引用 reference 特征 类和结构体比较 类属性的set和get方法解析 类属性的willSet和didSet方法解析 类的下标 类方法和静态方法 将一个类的实例作为另一个类的属性 类的继承 父类在实例
  • MATLABdiag()用法

    1 提取矩阵的对角线元素 设A为m n矩阵 diag A 函数用于提取矩阵A主对角线元素 产生一个具有min m n 个元素的列向量 diag A k 提取矩阵A第k条对角线的元素 产生一个列向量 注意 矩阵的对角线 与主对角线平行 往上为
  • Unity核心5——Tilemap

    Tilemap 一般称之为瓦片地图或者平铺地图 是 Unity2017 中新增的功能 主要用于快速编辑 2D 游戏中的场景 通过复用资源的形式提升地图多样性 工作原理就是用一张张的小图排列组合为一张大地图 它和 SpriteShape 的异