Unity LayerMask】的更多相关文章

Unity的Layer Unity是用 int32来表示32个Layer层,int32用二进制来表示一共有32位. 0000 0000 0000 0000 0000 0000 0000 0000 31                                                                 0 看几个例子 开启layer 2 LayerMask mask = 1<<2; 其中 <<左边的 1表示有[开启],0表示没有该layer[忽略] .右边…
Unity用int32的每一位表示32个层,int32用二进制有32位,Layers通常被摄像机用来渲染部分场景,和灯光照射部分场景使用.但是它们也可以用来做射线检测时忽略一些collder或Collision使用. LayerMask mask = 1 << 你需要开启的Layers层. LayerMask mask = 0 << 你需要关闭的Layers层. 例如: 开启layer0和layer2:LayerMask mask = 1 << 0 | 1 <&l…
Unity的Layer Unity是用 int32来表示32个Layer层,int32用二进制来表示一共有32位. 0000 0000 0000 0000 0000 0000 0000 0000 31                                                                 0 看几个例子 开启layer 2 LayerMask mask = <<; 其中 <<左边的 1表示有[开启],0表示没有该layer[忽略] .右边的2…
本文简述了LayerMask的定义,后通过项目实战充分解析 LayerMask中的GetMask.LayerToName.NameToLayer 等函数的使用方法及其注意事项. 项目地址:3D坦克大战 - SouthBegonia LayerMask 定义 用来表示32个Layer层级的位掩码,类型为Int32,.前面8个是引擎使用的,后面24个供开发人员使用的.通过LayerMask我们可以实现诸多类似 层判定.层限制.层检测 的方法.的我们可以在Edit->Project Setting->…
1.       [C#语言基础]请简述拆箱和装箱. 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何接口类型的过程. 1.在堆中开辟内存空间. 2.将值类型的数据复制到堆中. 3.返回堆中新分配对象的地址. 拆箱操作: object类型显示转换为值类型或从接口类型到实现该接口值类型的过程. 1.判断给定类型是否是装箱时的类型. 2.返回已装箱实例中属于原值类型字段的地址. 2.        [.NET(C#)] attribute,property,markup,ta…
射线在unity中是个很方便的东西,对对象查找.多用于碰撞检测(如:子弹飞行是否击中目标).角色移动等提供了很大的帮助,在此做个总结与大家分享下 ,若有不足欢迎吐槽 好了,话补多说啦,直接进入主题: 射线:在unity中射线是由一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 . 相关API: 1.Ray Camera.main.ScreenPointToRay(Vector3 pos) 返回一条射线Ray从摄像机到屏幕指定一个点2.Ray Camera.ma…
用Unity制作小游戏 - 暗影惊吓 最近玩了一个小游戏,叫做暗影惊吓,虽然是一个十分简单的小游戏,但是感觉还是十分有趣的.这里就用Unity来实现一个类似的游戏. 项目源码:DarkFollow 主要工作分析 主角的控制(重点):左右移动.跳跃.动画播放等 场景的设计:地板.空中平台.背景等 影子跟随(重点):跟随着主角的有害影子 奖励:可以加分,部分奖励会导致产生影子 震动:主角根据降落高度,碰到地面会使界面有一个震动效果 主角控制 左右移动 根据键盘输入,来为刚体设置速度即可,同时设置Sp…
1,object Instantiate(object original,Vector3 position,Quaternion rotation)       克隆原始物体,并返回克隆物体.      例如:Instantiate(prefab,new Vector3(1,1,1),Qutaternion.identity);克隆一个prefab物体. 2,InputManager,输入管理器,用于配置自定义按键. 3,Mathf结构体:风装了常见数学计算方法的结构体.      结构体成员:…
原文地址:http://demo.netfoucs.com/u011707076/article/details/44036839 前言 寒假回家到现在已经有十多天了,这些天回家不是睡就是吃....哎╮(╯▽╰)╭,今天早上一觉醒来,突然得知,UE4免费了,这绝对是个好消息,前不久我还在纠结怎么申请校园账号呢o(╯□╰)o.迫不及待打开电脑下载了UE引擎的一个类似管理的客户端,在里面最醒目的一栏,看到一个令人哭笑不得的导航,如下图: EPIC这是要逆天的节奏吗?不过不管他了,接下来,我们便一同学…
一个比较简单的需求,不过遇到些坑,记录下. 房间有多个模型,每个模型可能多个SubMesh,点击后,需要能具体到是那个SubMesh,并且在这个SubMesh上显示边缘高光,以及能个性这单个SubMesh对应的Material.如一个桌子的Mesh,其实有二个材质,分别对应二个SubMesh,一个桌面和一个桌脚,点击桌面后,只有这个桌面高光,而不是整个桌子,并且能单独更换这个桌面的Material. 我们知道Unity中,Mesh和Ogre一样,也是可以有多个SubMesh,每个SubMesh有…
凝视是HoloLens首要输入方式,形式功能类似于桌面系统的光标,用于选择操作全息对象.然而在Unity中并没有明确的Gaze API或者组件. 实现Gaze Implementing Gaze 概念上来说,Gaze是通过用户头部两眼之间发出一条向前方的射线来实现的,射线可以识别它所碰撞的物体.在Unity中,使用Main Camera来表示用户头部的位置和朝向.准确的说,是指 UnityEngine.Camera.main.transform.forward 和 UnityEngine.Cam…
http://blog.csdn.net/yupu56/article/details/50441151 Unity中是用int32来表示32个Layer层.int32表示二进制一共有32位(0-31).在Unity中可编辑的Layer如下图所示:   在Unity中每个GameObject都有Layer属性,默认的Layer都是Default.在Unity中可编辑的Layer共有24个(8-31层),官方已使用的是0-7层,默认不可编辑! LayerMask实际上是一个位码操作,在Unity3…
(一)适用情况 当游戏主角进入特定的场景或者关卡,每个关卡需要加载不同位置的模型,道具等.这些信息需要先在unity编辑器里面配置好,一般由策划干这事,然后把这些位置道具信息保存在文件,当游戏主角进入后根据保存的文件信息加载模型道具.如 跑酷场景的金币 赛车赛道的道具 (二)实例文件格式 Json 需要导入SimpleJson 具体使用方法可以看我另外一篇<Unity游戏数据用Json保存>,有详细介绍 http://www.cnblogs.com/July7th/p/4808095.html…
第一次看到LayerMask根本不知道是什么东东,后来问问度娘,看了几篇文章,终于看明白一点点,在网上看到各路大神的解释,终于明白了,LayerMask实际上是一个位码操作,在Unity3d中Layers一共有32层,这个是不能增加或者减少的,中文名字叫层蒙版 LayerMask允许你在检视面板中显示LayerMask弹出菜单,类似与camera.cullingmask.LayerMask可以选择性地过滤物体,例如当投射射线时 摘自官网:Layers are used throughout Un…
Unity3D塔防开发流程 配置环境及场景搭建编程语言:C#,略懂些许设计模式,如果不了解设计模式,BUG More开发工具:Unity3D编辑器.Visual Studio编译器开发建议:了解Unity3D灯光,音频,物理,粒子特效,动画,NGUI,UGUI模块参数了解Unity3D Network网络模块参数了解Unity3D原生GUI地形创建鼠标左键单机Hierarchy面板中的Create鼠标移动触摸3D Object鼠标左键单机Cube浏览Scene视图中的Cube对象鼠标左键单机Cu…
上次讲解了FairyGUI的最简单的热更新办法,并对其中一个Demo进行了修改并做成了热更新的方式. 这次我们来一个更加复杂一些的情况:Emoji. FairyGUI的   Example 04 - Emoji 场景是一个聊天对话框.玩家可以输入文本和表情,对面的机器人还会回复一句话.回复的对话中还附带一个表情. Demo分析 FairyGUI的这个Demo展示了如下技巧: 继承UBBParser ,在Demo中使用自定义的表情. 编写了一个MonoBehaviour,管理所有的逻辑. 动态添加…
Unity 个人用过的地面检测方案总结 1.普通射线 在角色坐标(一般是脚底),发射一根向下的射线,长度大约为0.2, 只适用于简单地形,实际使用中常常遇到以下问题 用的collider去碰撞地面时,某些时候会有一定的穿插,于是角色的最低点就可能穿透地面,你发射射线的点可能就到了地面以下,射线一直检测不到真正的地面,于是角色就一直悬空. 角色是走斜坡的时候,角色中点可能会离开地面一小段距离,这一小段距离往往就足够让判断机制误以为角色已经离地了.如果你增加射线的长度,那么一定程度上能缓解斜坡问题,…
Unity中是用int32来表示32个Layer层.int32表示二进制一共有32位(0—31).在Unity中可编辑的Layer如下图所示:   在Unity中每个GameObject都有Layer属性,默认的Layer都是Default.在Unity中可编辑的Layer共有24个(8—31层),官方已使用的是0—7层,默认不可编辑! LayerMask实际上是一个位码操作,在Unity3D中一共有32个Layer层,并且不可增加. 位运算符 按位运算符:~.|.&.^.位运算符主要用来对二进…
转 https://willweissman.wordpress.com/tutorials/shaders/unity-shaderlab-object-outlines/ Unity Shaderlab: Object Outlines One of the simplest and most useful effects that isn’t already present in Unity is object outlines. Screenshot from Left 4 Dead.…
按位运算符:与(&).非(~).或(|).异或(^).<<(左移).>>(右移).位运算符主要用来对二进制位进行操作. 逻辑运算符:&&.||.!.逻辑运算符把语句连接成更复杂的复杂语句.   与运算符:只有两个位都是1,结果才是1: 或运算符:只要两个位有一个是1,结果就是1: 非运算符:如果位为0,结果是1,如果位为1,结果是0: 异或运算符:两个操作数的位中,相同则结果为0,不同则结果为1: 左移运算符<<:左移表示乘以2,左移多少位表示乘…
Unity5.3更新了assetbundle的打包和加载api,下面简单介绍使用方法及示例代码. 在Unity中选中一个prefab查看Inspector窗口,有两个位置可以进行assetbundle的标记. 第一个为assetBundleName,如果这里不是None,则这个资源会记录到AssetDatabase里,使用BuildAssetBundles打包时,会自动将AssetBundleName一致的资源打到一个包中. 第二个为Variant,可用于区分不同分辨率的资源.如果在abName…
8 子弹碰撞处理 为了处理子弹打到坦克的伤害我们在这里新建一个Shell.cs 子弹有两种情况,碰到坦克炸开,没有碰到坦克则过2s子弹销毁. void Start () { Destroy (gameObject, 2); // 过2秒子弹销毁 } 碰到子弹我们这里使用OnTriggerEnter,要想这个发生首先要确保Shell预设体里面Collider的Is Trigger已经被选中了.   image 然后在OnTriggerEnter里面我们检测在一定范围之内的坦克有哪些. privat…
----更新(2015-7-1): 也可以用itween来移动跳台. ---- 例如人物跳到往复运动的移动跳台上后应随跳台运动. 要实现这个效果有两个思路,一是用运动学一是用动力学. 用动力学实现就是通过设置人物collider和跳台collider摩擦属性(使用自已创建的physic material替换collider中原来的material,然后设置摩擦属性).这个方法我没试出来,下面只说使用运动学方法实现: 1,创建一个box作为移动跳台,用unity里内置的Animation Curv…
计算过程如下: 1,通过由主角中心raycast一条竖直射线获得主角所在处地面法线,用作主角的newUp. 注:一定要从主角中心raycast,而不要从player.transform.position,因为如果player的模型原点在脚上,则player.transform.position可能就在地面以下了,向下raycast得不到与地面的交点了就. 2,根据主角forward和newUp计算newForward. 3,使用Quaternion.LookRotation (newForwar…
unity初探之黑暗之光(2) 一.设置角色跟随鼠标点击移动 思路:使用charactercollider的SimpleMove方法来控制角色的移动.通过摄像机的射线投射到地面,通过屏幕上的一个点也就是鼠标单击的点.该射线与地面发生碰撞返回发生碰撞的点,然后让角色转向该点,开始移动.当移动到一定范围时停止移动. 使用到的方法: Camera.ScreenPointToRay 屏幕位置转射线 function ScreenPointToRay (position : Vector3) : Ray…
http://gad.qq.com/article/detail/28346 描边效果是游戏里面非常常用的一种效果,一般是为了凸显游戏中的某个对象,会给对象增加一个描边效果.本篇文章和大家介绍下利用Shader实现描边效果,一起来看看吧. 最近又跑回去玩了玩<剑灵>,虽然出了三年了,感觉在现在的网游里面画面仍然算很好的了,剑灵里面走近或者选中NPC的一瞬间,NPC就会出现描边效果,不过这个描边效果是渐变的,会很快减弱最后消失(抓了好久才抓住一张图....) 还有就是最常见的LOL中的塔,我们把…
UnityEngine; using System.Collections; public class PlayerControl : MonoBehaviour { [HideInInspector] public bool facingRight = true; // 为了确定玩家正在面临哪种途径 [HideInInspector] public bool jump = false; // 判断玩家是否该跳 public float moveForce = 365f; // Amount o…
http://www.cnblogs.com/yangrouchuan/p/6366629.html 先说说什么是Linf of Sight.在很多RTS游戏中,单位与单位之间的视野关系经常会受到障碍物遮挡.Line of Sight指的就是两个物体之间是否没有障碍物遮挡. 比如在dota中,玩家的视野会被树挡住.此时树后面的区域对该玩家是不可见的. 如何确定两个单位是否有Line of sight是一个非常大的话题.在这方面有非常多的论文研究.但是事实上LOS的检测和绘制的关系并不是很大.我们…
GrabPass GrabPass是Unity为我们提供的一个很方便的功能,可以直接将当前屏幕内容渲染到一张贴图上,我们可以直接在shader中使用这张贴图而不用自己去实现渲染到贴图这样的一个过程,大大的方便了我们的shader编写.GrabPass的使用非常简单,我们在写vertex fragment shader的时候都需要写一个pass,GrabPass也是一个pass,只不过是Unity为我们实现好的一个pass.我们只需要在我们正常的Pass前面加一个GrabPass{}就可以了.官方…
版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top 优梦创客的游戏讲堂:https://91make.ke.qq.com 『优梦创客』的微信公众号:umaketop 您可以自由转载,但必须加入完整的版权声明! 万物起源:Init.cs 打开范例场景init.unity,可以发现其场景层级如下: 其中唯一重要的就是Global对象上挂在的init.cs…