Unity2D角色重叠时利用sortingOrder解决sprite层级问题

在这里插入图片描述
在这里插入图片描述
如上图,Unity在制作2D游戏有时可能会有需要考虑角色交互重叠的情况,而不同Gameobject的order in layer我们一般是在inspector里给定的。所以为了处理这种情况,我们可以通过代码实现方法并在update里实现:

protected void LinkYwithOrderinlayer()
    {
    
    
    	//chartransform为角色的transform组件
        float yPos = chartransform.position.y;
        //spriterenderer为角色的Sprite Renderer组件
        //通过改变sortingorder来确定gameobject在sortinglayer中的order in layer
        //因为y轴越大层级越靠后,所以给结果前加一个负数
        //scale用来扩大y轴数据映射在层级上的影响,根据游戏中实际使用的素材尺度来确定,取100 1000都可以
        spriterenderer.sortingOrder = -Mathf.RoundToInt(yPos * scale);
    }

猜你喜欢

转载自blog.csdn.net/weixin_43662405/article/details/109005995