重庆服装网站建设费用,网站做友链盈利,网站制作里面链接怎么做,吉林省建设工程质量监督站网站文章目录 前言一、排序图层二、sorting Group的使用三、树木排序设计方法一 代码控制方法二 拆分图片方法三 透视排序1. 普通物品排序2. TileMap瓦片排序设计 完结 前言
unity的排序问题其实之前分享的项目多多少少都有提到一点#xff0c;但是没有单独拿出来说#xff0c;所… 文章目录 前言一、排序图层二、sorting Group的使用三、树木排序设计方法一 代码控制方法二 拆分图片方法三 透视排序1. 普通物品排序2. TileMap瓦片排序设计 完结 前言
unity的排序问题其实之前分享的项目多多少少都有提到一点但是没有单独拿出来说所以这次特地做一次整理
本文主要解决几个问题
排序图层的作用sorting Group排序组的使用树木排序问题我们希望实现人物走到树前人物遮挡树木当人物走到树后树又遮挡玩家
一、排序图层
排序图层应该是我们用的最多的也是最简单的了 修改对应的排序图层或者图层顺序即可图层顺序越大越靠前
二、sorting Group的使用
排序组通常用于解决一个物体由多个部分组合而成比如多部位组成的角色你可以简单的理解sorting Group就是把一个物品看作一个整体来排序无论如何修改他的内部排序都不会影响整体的sorting Group排序
比如在以下示例中按照您希望角色的不同部分的出现顺序对这些部分进行排序。 配置排序组和排序图层之后可以将角色另存为预制件并根据需要进行多次克隆。
但是预制件精灵全部具有相同的 Sorting Layer 和 Order in Layer 值并且与其他预制件一起渲染到相同图层这可能导致一个预制件角色的不同部分错误地相交和分层。 为了确保预制件的渲染顺序一致以便正确显示请将 Sorting Group 组件添加到每个预制件的根游戏对象。并配置整体的Order in Layer排序
三、树木排序设计
我们希望实现人物走到树前人物遮挡树木当人物走到树后树又遮挡玩家
如果我们直接修改图层排序方式肯定是不行的玩家要么直接被遮挡要么直接遮挡树木
方法一 代码控制
当然你可以通过代码的方式动态的修改人物图层排序值
如果我们正常直接添加一些资源物体会发现排序变得很乱 我们可以通过脚本来控制资源的排序大致逻辑就是按物体的y轴来控制排序
using UnityEngine;public class SpritePositionSortingOrder : MonoBehaviour
{[SerializeField] private bool runOnce; // 是否只运行一次[SerializeField] private float positionOffsetY; // Y轴位置偏移量private SpriteRenderer spriteRenderer;private void Awake(){spriteRenderer GetComponentSpriteRenderer(); // 获取当前对象的SpriteRenderer组件}private void LateUpdate(){float precisionMultiplier 5f; // 精度乘数可以根据需要调整// 根据当前对象的位置和Y轴偏移量计算出sortingOrder值并将其赋给SpriteRenderer组件的sortingOrder属性spriteRenderer.sortingOrder (int)(-(transform.position.y positionOffsetY) * precisionMultiplier);if (runOnce){Destroy(this); // 如果设置了只运行一次就在完成一次排序后销毁脚本组件}}
}效果 显然这太麻烦了
方法二 拆分图片
最简单的方法就是将树叶和树根分开树叶图层排序比人物高树根图层排序比人物低当然这样绘制会比较麻烦一些
效果
方法三 透视排序
使用透视排序。也就是“伪造”透视图。根据直觉玩家希望角色在立方体前面时首先绘制角色而角色在立方体后面时最后绘制角色。
如果用更技术性的语言来说你需要做的是指示 Unity 根据游戏对象的 y 坐标来绘制游戏对象。屏幕上位置较低的游戏对象y 坐标较小应在屏幕上位置较高的游戏对象y 坐标较大之后绘制。这样将使位置较低的对象显示在上层。
要指示 Unity 根据游戏对象的 y 坐标来绘制游戏对象请执行以下操作
选择 Edit Project Settings。
在左侧类别菜单中单击 Graphics
在 Camera Settings 中找到 Transparency Sort Mode 透明度排序模式字段。此字段决定了精灵的绘制顺序。使用下拉菜单将此设置从 Default 更改为 Custom Axis自定义轴修改Transparency Sort Axis透明排序轴为(0,1,0)告诉Unity y轴绘制精灵 1. 普通物品排序
找到树木的 Sprite Sort Point Sprite 排序点字段。目前此字段设置为 Center这意味着会使用精灵的中心点来决定这个游戏对象应该在另一个游戏对象的前面还是后面。将 Sprite Sort Point Sprite 排序点更改为 Pivot轴心 注意:记得树木图层排序顺序要和主角人物设置为一样
修改树木图片的轴心位置到树木根部
这样就实现了人物在树木轴心下面先绘制树木人物在轴心以上先绘制角色
2. TileMap瓦片排序设计
在最右边的Tilemap Renderer:将Mode设置为Individual 把对应图片的轴心放在底部 为了使其更加准确我们可以更改角色的轴心位置也在底部 并修改角色的精灵排序点为轴心 效果可以看到角色在栅栏上角色在后角色在栅栏前角色在前
完结
赠人玫瑰手有余香如果文章内容对你有所帮助请不要吝啬你的点赞评论和关注以便我第一时间收到反馈你的每一次支持都是我不断创作的最大动力。点赞越多更新越快哦当然如果你发现了文章中存在错误或者有更好的解决方法也欢迎评论私信告诉我哦
好了我是向宇https://xiangyu.blog.csdn.net
一位在小公司默默奋斗的开发者出于兴趣爱好于是最近才开始自习unity。如果你遇到任何问题也欢迎你评论私信找我 虽然有些问题我可能也不一定会但是我会查阅各方资料争取给出最好的建议希望可以帮助更多想学编程的人共勉~