Layers层:

从Layers设置看来,最多支持32层.  图层的值开始依次 0^2,1^2, 2^2, 3^3 依次增加.

当摄像机Culling Mask属性

Nothing= –1

Evening = 全部图层之和, 项目开始默认设置了7个图层. 值就是0^2,1^2, 2^2, 3^3 .. 6^2  = 279

如果我们选择Defulat图层,所在第0位置值 0^2 = 1

如果我们选择Defualt,Transparent,图层位置0,1 = 0^2+1^2 = 3

组合:

假设在游戏中出现这种情况: A,B,C 我们需要通过设计一个数字来表示 [A,B,C,AB,AC,BC] 这6中组合,  我们只需要把A=0,B=1,C=2. 根据数字的^2方

A = 0 ,B = 1, C = 2,AB = 3,AC = 5,BC = 6

这样我们就可以通过一个数值来知道,角色有哪些权限.

向屏幕发射一条射线,检测是否碰撞到物体:

RaycastHit 获取到碰物体的信息

Ray 定义射线的规则

向屏幕发射一条射线

bool Physics.Raycast(Ray ray,out RaycastHit  hit, float distance, int layerMask)

代码:

using UnityEngine;
using System.Collections; public class Test : MonoBehaviour { private int index = 0; // Use this for initialization
void Start () {
int index = LayerMask.NameToLayer("UIMode"); } // Update is called once per frame
void Update () {
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //以鼠标为原点,向世界发射一条长度100f的射线,只有UIMode图层的物体进行碰撞
if (Physics.Raycast(ray, out hit, 100f, index))
{
Debug.Log("碰撞到UIMode的物体: " + hit.collider.gameObject.name);
} }
}

Unity屏幕射线碰撞的更多相关文章

  1. Unity - Raycast 射线检测

    本文简要分析了Unity中射线检测的基本原理及用法,包括: Ray 射线 RaycastHit 光线投射碰撞信息 Raycast 光线投射 SphereCast 球体投射 OverlapSphere ...

  2. Unity Ugui射线坐标转换总结

    世界空间中的点坐标转换到屏幕坐标: screenPos = RectTransformUtility.WorldToScreenPoint(cam, worldPos.transform.positi ...

  3. unity触发器和碰撞器

    Unity中检测碰撞的方法有两种,一种是触发器一种是碰撞器,现在我来解释一下两种的区别. 触发器:有三种方法,分别是OnTriggerEnter,OnTriggerStay,OnTriggerExit ...

  4. Unity3D总结:关于射线碰撞

    方法一:Physics.Raycast 光线投射 1.static function Raycast (origin : Vector3, direction : Vector3, distance  ...

  5. three.js raycaster射线碰撞的坑 (当canvas大小 不是屏幕大小是解决拾取物体的办法)

    这里只是记录一下坑,方便查阅,内容主要援引自:three.js Raycaster 射线拾取 canvas不占满整屏时射线拾取存在偏差 1. 世界坐标系: 世界坐标系位于屏幕的中心(0,0,0),往右 ...

  6. Unity之CharacterController 碰撞问题总结

    CharacterController 不会受到scene的重力影响,自带物理碰撞检测,在脱离导航网格的应用场景下(比如飞行),是很有优势的Unity原生工具组件.如果在复杂的应用场景里,会有多种CC ...

  7. Unity3D笔记 英保通十 射线碰撞器检测

    射线碰撞检测可以用来检测方向和距离: 通过Physics.RayCast光线投射来实现:常用于射击利用发射的射线来判断.还有对战中刀剑交战中.. 一.要涉及到RayCast和RayCastHit 1. ...

  8. 【Unity】物理碰撞实验

    http://www.cnblogs.com/javawebsoa/archive/2013/05/18/3085818.html 这几天为了准备面试,所以决定对平时学习中的盲点扫盲一下,首先想到的就 ...

  9. Unity Ray 射线

    射线:射线是3D世界一个向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射. 用途:射线范围比较广,多用于碰撞检测(如:子弹飞行是否击中目标).角色移动等. Ray是一个结 ...

随机推荐

  1. qt简单界面更新代码(菜鸟级)(部分代码)

    qt简单界面更新代码(菜鸟级)(部分代码)self.timers_1=QtCore.QTimer(self)self.timers_1.timeout.connect(self.min_1)self. ...

  2. drwtsn32.exe 遇到问题须要关闭。我们对此引起的不便表示抱歉

    我的机器老是这样.启动起来就有这个... 那位高手能告诉我这是怎么会事.故障的原因以及解决的办法. 最佳答案 drwtsn32.exe是windows的一项磁盘检查程序,同一时候也是鸡肋程序,最好的办 ...

  3. Android窗口管理服务WindowManagerService对壁纸窗口(Wallpaper Window)的管理分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8550820 Android系统中,壁纸窗口和输 ...

  4. 89c52串口发送接收小示例

    //串口发送 void sendChar(char *p)//调用前关中断,调用完成后关中断 { while(*p != '\0') { SBUF = *P while(!TI); TI = 0; p ...

  5. Oracle安装基本步骤

    安装数据库 .建立用户组及用户 groupadd oinstall groupadd dba groupadd oper useradd -g oinstall -G dba oracle passw ...

  6. bad interpreter: No such file or directory

    经常会遇到这种情况,在windows下写的脚本,代码会在linux下无法执行,错误就是: bad interpreter: No such file or directory 1.原因 这通常都是由于 ...

  7. MySql命令——show,分页,正则表达式

    先要安装MySql,过程见 MySql5.1在Win7下的安装与重装问题的解决 不是教程,还没有写教程的资格,只是为了自己查阅而已!   show show databases; //显示所有数据库 ...

  8. javascript 多图无缝切换

    思路只要是ul移动前,首先将当前显示的li克隆岛ul最后,当每次运动执行完毕后,再将前面的li删除,如此循环. <!DOCTYPE html> <html> <head& ...

  9. js获取url参数的方法

    js获取url参数的方法有很多. 1.正则分析 function getQueryString(name) { var reg = new RegExp("(^|&)" + ...

  10. IE下使用jquery ajax失效

    ie是根据请求的url是不是一样来是否发送请求,对于同一请求,ie只发送一次http请求,得到缓存之后就不再请求,所以同一请求发送多次,但ie实际是不会发送的 在你的第二次请求之前 使用 $.ajax ...