今天简单跟大家介绍一下Tag,Layer跟SortingLayer
Tag:就是标签,可用于标识一个游戏物体方便查找或者用于分组
新建场景并创建Cube,新建一个Tag为Cube并赋予刚创建的Cube游戏物体
并在MainCamera附上脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class testTag : MonoBehaviour {
// Use this for initialization
void Start () {
Debug.Log(GameObject.FindGameObjectWithTag("Cube"));
}
}
运行效果:
Layer:就是层,在前几篇博文中已经有了介绍,在这里就不细说了
SortingLayer:是SpriteRenderer的一个属性,用于当两个Sprite的位置有交集的时候对Sprite的渲染顺序,同时也可以结合SpriteRenderer的Order in Layer来使用:
如图,先创建四个Sprite并指定相关图片,指定不同的颜色以及设置不同的SortingLayer,并对物体设置相关的SortingLayer:
相对位置为(红–>蓝–>绿)
此时将蓝色的物体移到红色的物体的地方时:
可发现蓝色的物体掩盖了红色的物体
此时再修改SortingLayer的相对位置为(蓝–>红–>绿):
发现结果相反,可以得知,当指定不同的SortingLayer时,渲染的顺序就不同,渲染顺序跟SortingLayer的定义界面顺序一致,第一种情况的渲染顺序为红–>蓝–>绿,第二种情况是蓝–>红–>绿,所以就产生了上面两种不同的情况。
上面的是两个不同的SortingLayer的渲染顺序的情况,那么对于处于同一个SortingLayer的不同物体的渲染顺序就用到了Order in Layer 属性。
接下在再看Order in Layer 属性,此时两个绿色的物体的Order in Layer都为0,按道理来说是同时渲染的,当将绿色的圆的Order in Layer为1时候,得出的结果为:
此时绿色圆覆盖了刚才的绿色圆角矩形,渲染顺序为圆角矩形–>圆,所以得出了这种结果。
对于处于同一个SortingLayer且拥有相同的Order in Layer的不同物体的具体渲染顺序就不太了解。
那么,这篇博文就到这里,我们下一期再见!