Unity 常用资料

2023-12-17 17:39:31

1. Layer

layer本质是按序左移的一个Int32数字,int32有4个字节=》32位,故可以支持32个层级。系统自身使用了5个层,意味着用户还有27个层可以使用。

0000 0000 0000 0000 0000 0000 0000 0000
可以且只能任意位为1。

在这里插入图片描述

unity具体的0-31的层级分布可能是从头开始,也可能是从尾开始,对开发者来说没有区别

  • LayerMask.NameToLayer()
    LayerMask.NameToLayer(“Default”),意味着Unity会通过名字比较取到对应的层级返回,返回的数字是这个的层的对应位数字。比如第12位就返回12.

  • LayerMask.LayerToName
    将对应层的数字位数传入进行比较得到对应层的名称

  • LayerMask.GetMask
    此api比较特殊,传入的是多个层的名称,返回的不是位数。可以理解位一个int32.MaxValue的数,与多个层的数字进行位并,得出的一个数字。过程如下(使用8位进行演示)

	
	//A 0000 0010   层代码为:1 
	//B 0000 1000   层代码为:3 
	//C 0010 0000   层代码为:5
	byte mask= LayerMask.GetMask("A","B"); //mask => 0010 1010
	//比较  //新层
	byte newMaskCode= 16;
	if((newMaskCode & mask )>0){
		Debug.Log("新层存在");
	}else{
		Debug.Log("新层不存在");
	}
	Debug.Log("新层名称为:"+LayerMask.LayerToName(newMaskCode));

文章来源:https://blog.csdn.net/a1092484359/article/details/135046773
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。