Rule Tile使用
发表于|更新于
|总字数:82|阅读时长:1分钟|浏览量:
作用:在画地图的时候可以按照预设的规则自动调节所画的tile,不用花费多余的时间去切换各种tile
- 在project settings-Package Manager中打开Enable Preview Packages
- 在Package Manager中搜索2D TileMAP Extras安装
- 在tilemap中创建一个Rule Tile
- 根据规则将tile填入Rule Tile 的Tiling Rules中
文章作者: 丨小小丶
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hexo!
相关推荐
2022-01-14
u3d基础学习
Sorting Layers 排序越靠下,越在镜头前面显示,越在上面,越在镜头后面显示。在其中还能设置Order in Layer,相同的图层,Order in Layer的值越大,越会显示在镜头前面。 Tilemap Collider 使用Tilemap Collider时会出现每格都是一个方块Collider的情况,可以创建一个Composite Collider 2D来合并Tilemap的Collider。在创建Composite Collider 2D时会附带一个Rigidbody 2D,需要将Body Type修改为static,否则地图会受到重力影响而从屏幕掉落。
2022-02-14
Unity API之Physics2D.Raycast
Unity API之Physics2D.Raycast 描述 射线可以用于角色的环境检测,使用射线检测,首先要给被检测的物体挂上Collider。 从概念上说,射线投射类似于从空间的某个点朝特定方向发射一条光束,在该过程中,可以检测并报告与光束接触的任何对象。 参数解释 origin:射线投射的原点 direction:射线投射的方向 distance:射线的最大长度 layerMask:射线只会投射到layerMask层的碰撞体 contactFilter:接触筛选器,用于不同方式筛选结果,例如按照遮罩层、Z轴深度或者法线角度 minDepth:仅包括Z轴坐标大于等于该值的对象 maxDepth:仅包括Z轴坐标小于等于该值的对象 result:用于接收结果的数组。该数组的大小决定可返回的结果的最大数量 返回值 函数会返回一个RaycastHit2D对象,该对象引用了射线命中的碰撞体,如果射线未命中任何对象,则结果的属性将为NULL。 函数也可以返回一个bool型的值,如果射线碰撞到了物体,则返回true,否则返回false。 如...
2022-02-13
2D游戏GroundCheck
采用三射线的方法,即在角色的左右和中间添加三个射线,判断是否接触到地面 三条射线只要有一条返回true即isGround = true public Transform[] groundChecks = new Transform[3]; private void GroundCheck() { for (int i = 0; i < 3; ++i) { RaycastHit2D checkResult = Physics2D.Linecast(transform.position, groundChecks[i].position , groundLayer); isOnGround = checkResult; if (isOnGround) break; } } 需要在player上添加三个空object以获取射线的终点,接着分别判断从transform.posi...
2022-03-09
Cinemachine使用
在package manager中找到Cinemachine安装 在unity上方选项中会出现Cinemachine选项,在其中选择创建一个2D相机 将相机属性中的Follow修改为需要跟随的物体,即player 设置相机的边界: 在相机中添加一个Cinemachine Confiner组件,这个组件中的Bounding Shape 2D需要填写的就是限制相机边界的collider,一般可以创建一个空物体并添加一个Polygon Collider,勾选上Is Trigger,接着将collider调整至想要的大小,填写至Confiner组件中,即可让相机只能在固定的范围内移动。
2022-05-11
unityAndroid如何判断点击到的是UI界面
if (Input.GetMouseButtonDown(0)) { if (EventSystem.current.IsPointerOverGameObject()) { Debug.Log("点击到UGUI的UI界面,会返回true"); } else { Debug.Log("如果没点击到UGUI上的任何东西,就会返回false"); } }
2022-05-11
unity线程与协程
为什么在unity中一般不考虑多线程 在Unity中,使用多线程有较大的限制: UnityEngine中的API对象不能在子线程中使用 UnityEngine中定义的基本数据类型可以使用(如float、int、struct)。但是texture2D不能使用,因为其父类是UnityEngine.Object 多线程的常见使用场景一般只在于: 网络通信 需要处理复杂算法的计算 复杂密集的I/O操作 线程与协程的区别 对于协程而言,同一时间只能执行一个协程,而线程是并发的,可以同时有多个线程在运行 两者在内存上的使用是相通的,共享堆,不共享栈 最关键的也最简单的区别在于在微观上线程是并行的,而协程是串行的,协程的本质还是单线程,依旧是在主线程中进行。 协程的原理协程是通过迭代器来实现功能 ,通过关键字IEnumerator来定义一个迭代方法。注意这里使用的是IEnumerator,而不是IEnumerable 这二者间的区别: IEnumerator:非泛型的,也是协程认可的参数 IEnumerable:通过泛型实现的迭代器,协程不使用该迭代器 在迭代器...
