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两者之一.前者的意义是将指定包中 ...
随机推荐
- Hadoop MapReduce例子-新版API多表连接Join之模仿订单配货
文章为作者原创,未经许可,禁止转载. -Sun Yat-sen University 冯兴伟 一. 项目简介: 电子商务的发展以及电商平台的多样化,类似于京东和天猫这种拥有过亿用户的在线购 ...
- python中os和sys模块的详解
平时在工作中经常会用到os模块和sys模块的一些特性,下面是这些特性的一些相关解释,希望对大家有所帮助 os模块 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os. ...
- python判断文件和目录是否存在
#Python的os.path模块提供了 isdir() 和 isfile()函数,请导入该模块,并调用函数判断指定的目录和文件是否存在. import os print os.path.isdir( ...
- Unity3D编程学习分享
学习地址:http://www.ixueyun.com/lessons/detail-lessonId-692.html 一.课程概述: 以前大部分3D游戏出现在pc和ps.XBox等专业游戏主机上, ...
- 吐槽C++:C++ 类成员变量初始化 之 初始化带有参数的构造函数 的类成员变量。
本来我想写这样的代码: class MatchManager{ public: MatchManager() { } class OnTimerRunFuncHelper{ public: OnTim ...
- django 注册、登录及第三方接口程序(4):扩展邮箱注册,登录,微博登录
1.邮箱注册 这里需要扩展User,两种解决办法,1,注册时将email字段内容赋给username,这种瞒天过海型的,另一种就是扩展user,这里介绍django1.5的扩展方法. 1.settin ...
- Build Slic3r on Windows // 如何在Windows上编译Slic3r
下载Strawberry Perl 5.22 64bit绿色版,解压缩到某个地方,比如C盘根目录,比如 C:\strawbrry-perl-5.22.2.1-64bit-portable 下载Boos ...
- LogViewer - 方便的日志查看工具
一个完整的程序日志记录功能是必不可少的,通过日志我们可以了解程序运行详情.错误信息等,以便更好的发现及解决问题. 日志可以记录到数据库.日志服务器.文件等地方,本文主要介绍文件日志. 文件日志通常是一 ...
- 免安装版MySQL安装步骤
http://downloads.mysql.com/archives/community/ 1:添加环境变量把MySQL解压后的bin目录添加到path环境变量中 2:修改或者添加my-defaul ...
- Web - 客户端存储的几种方式
客户端存储主要方便一些APP离线使用.今天就来说说客户端存储的方法有多少? 说在最前面的一句:所有的客户端存储都有一个原则:读写的数据必须要同域 1 Cookie Cookie是一项很老的技术的,就是 ...