NavMesh名字、层索引、层值之间的转换
// Nav层名字-->层的值,1、2、4、8、16
public static int AgentLayerNameToValue(string name)
{
int idx = NavMesh.GetNavMeshLayerFromName(name);
return 0x1 << idx;
} // Nav层名字-->层索引,0、1、2、3、4
public static int AgentLayerNameToIndex(string name)
{
return NavMesh.GetNavMeshLayerFromName(name);
} // 获取角色当前所在的层值,1、2、4、8、16
public static int GetAgentLayer(NavMeshAgent agent)
{
NavMeshHit hit;
// 不要使用agent.raduis为采样范围,因为当该值为0时,函数将返回0
bool reach = NavMesh.SamplePosition(agent.transform.position, out hit, 1f, -);
return hit.mask;
} public static Vector3 SampleNavMeshPosition(Vector3 logicPosition, out bool reachable)
{
NavMeshHit hit;
reachable = NavMesh.SamplePosition(logicPosition, out hit, 1f, -);
return reachable ? hit.position : logicPosition;
} // 开启导航层
public static void EnableNavMeshLayer(NavMeshAgent agent, string layerName)
{
if (agent == null)
return; int layerValue = NavMesh.GetNavMeshLayerFromName(layerName);
if (layerValue == -)
return; int mask = agent.walkableMask | 0x1 << layerValue;
WalkArbiter.SetWalkableMask(agent, mask);
} // 关闭导航层
public static void DisableNavMeshLayer(NavMeshAgent agent, string layerName)
{
if (agent == null)
return; int layerValue = NavMesh.GetNavMeshLayerFromName(layerName);
if (layerValue == -)
return; int mask = agent.walkableMask & ~(0x1 << layerValue); WalkArbiter.SetWalkableMask(agent, mask);
} // 检查某个层是否为开启
public static bool IsNavMeshLayerOpen(NavMeshAgent agent, string layerName)
{
int layerValue = NavMesh.GetNavMeshLayerFromName(layerName);
if (layerValue == -)
return true; int ret = agent.walkableMask & (0x1 << layerValue);
return ret > ? true : false;
}
NavMesh名字、层索引、层值之间的转换的更多相关文章
- 有两个地方,用到了javabean对象和属性字符串值之间的转换
1.有两个地方,用到了javabean对象和属性字符串值之间的转换 2.一个是接入层spring mvc,将json字符串参数转换为javaBean.通过@RequestBody javaBean方式 ...
- 3,bool值之间的转换,和str的各个功能属性。
bool值之间的转换 and 空字符串即为False 字符串内有内容即为True. a = 11 c = str(a) #int转换成str print(type(c)) a = ' b = in ...
- 《Python CookBook2》 第一章 文本 - 每次处理一个字符 && 字符和字符值之间的转换
文本 - 总结: 什么是文本Python 中的string 类型是不可变类型.文本,一个字符的矩阵,每一个单独的文本快可以被缩进和组织起来. 基本的文本操作①解析数据并将数据放入程序内部的结构中:②将 ...
- Python - 字符和字符值之间的转换
字符和字符值之间的转换 Python中, 字符和字符值, 直接的转换, 包含ASCII码和字母之间的转换,Unicode码和数字之间的转换; 也可以使用map, 进行批量转换, 输出为集合, 使用jo ...
- 深入剖析JavaScript中的对象与原始值之间的转换机制
我们都知道原始值之间是可以互相转换的,但是如果对象转原始值呢? 所有的对象在布尔上下文(context)中均为 true .所以对于对象,不存在 to-boolean 转换, 只有字符串和数值转换. ...
- 关于Repository、IUnitOfWork 在领域层和应用服务层之间的代码分布与实现
本来早就准备总结一下关于Repository.IUnitOfWork之间的联系以及在各层中的分布,直到看到田园里的蟋蟀发表的文章:<DDD 领域驱动设计-谈谈 Repository.IUnitO ...
- 获取layer.open弹出层的返回值
正在开发的车联网项目用到了layer API.当我在开发“新建电子围栏”的时候需要弹出地图,用户在地图中画一个区域,最后将这个弹出层的数据返回给原页面.下面是我的实现过:程: 触发弹出层的代码: la ...
- LB层到Real Server之间访问请求的响应时间及HTTP状态码监控及报警设置
为了监控到各业务的访问质量,基于LB层的Nginx日志,实现LB层到Real Server之间访问请求的响应时间(即upstream_response_time)及HTTP状态码(即upstream_ ...
- springboot 注册dao层 service 层
可以使用三种注解来引入DAO层的接口到spring容器中.1.@Mapper,写在每一个DAO层接口上,如下: 2.@MapperScan和@ComponentScan两者之一.前者的意义是将指定包中 ...
随机推荐
- 10TSQL语言概述-脚本调试-命名规范-天轰穿数据库2014
关键字:sqlserver 数据库脚本 数据库 编码规范大纲:sql概念,TSQL脚本调试,数据库编码规范 优酷超清地址 腾讯超清地址 土豆超清地址
- 通过boundingRectWithSize:options:attributes:context:计算文本尺寸
转:http://blog.csdn.net/iunion/article/details/12185077 之前用Text Kit写Reader的时候,在分页时要计算一段文本的尺寸大小,之前使用 ...
- NAS服务器局域网内IPad、手机、电视盒子等联网播放
为把各个移动硬盘和不同电脑的数据进行统一管理,入手了一台希捷 Seagate Business 无内置硬盘 商业级 2盘位 云存储网路存储,经过卖家指点和不断摸索,终于能用了,主要步骤如下: 1. 系 ...
- Linux下面使用rpm命令
RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种 ...
- DataGridView隔行显示不同的颜色
如果该dataGridView是跟数据库绑定的,则可以触发DataBindingComplete事件: 1private void dataGridView1_DataBindingCo ...
- iOS 多渠道打包 编译脚本
http://webfrogs.me/2012/09/19/buildipa/http://blog.csdn.net/baxiaxx/article/details/8267295http://ic ...
- Spectrum to XYZ to sRGB
如何将频谱响应转换为对应的RGB显示值: 首先要在频率功率分布(SPD)曲线的基础上,分别使用X/Y/Z三个频率匹配曲线(spectral matching curves,又名CIE XYZ Colo ...
- Scala 深入浅出实战经典 第43讲:主要介绍类型变量bound
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- VS常用的配置和插件
- finished with non-zero exit 添加v7包报错的问题
错误: 添加 compile 'com.android.support:appcompat-v7:22.2.0'后报错,里面有其它的jar包,但是只要添加这个v7包就报错. Error:Executi ...