Camera cam;
    void Start ()
{
cam =this.GetComponent<Camera>();
} void Update () {
if (Input.GetMouseButtonDown())
{
TarRaycast();
}
}
Vector3 mp ;//鼠标位置
Transform targetTransform;//点选的物体
public LayerMask targetingLayerMask;//指定射线能检测到的Layermask层
private float targetingRayLength = Mathf.Infinity;//射线的长度 public void TarRaycast()
{
targetingLayerMask.value = << ; //不懂的看最下边的几颗栗子~
mp = Input.mousePosition;
targetTransform = null;
if (cam != null)
{
RaycastHit hitInfo;
Ray ray = cam.ScreenPointToRay(new Vector3(mp.x, mp.y, 0f));
if (Physics.Raycast(ray.origin, ray.direction, out hitInfo, targetingRayLength, targetingLayerMask.value))
{
targetTransform = hitInfo.collider.transform;
}
}
//得到被点选的物体后,对其进行操作~
if (targetTransform != null)
{
Debug.Log(targetingLayerMask.value);
Debug.Log(targetTransform.name); }
}
}

关于LayerMask的使用,简单举个栗子~

:

1 << 10  打开第10层。

~(1 << 10) 打开除了第10之外的层。

~(1 << 0) 打开所有的层。

(1 << 10) | (1 << 8) 打开第10和第8的层。

<( ̄3 ̄)> 那么,说好的栗子呢!

最新文章

  1. SQL数据库索引查询
  2. 记录自己在使用Bootstrap中的心得
  3. 一、MyBatis简介与配置MyBatis+Spring+MySql
  4. EasyGUI基础教程
  5. hdu 1180 诡异的楼梯(广搜,简单)
  6. SGU 246. Black &amp; White(数论)
  7. 【LeetCode】225. Implement Stack using Queues
  8. (一一四)使用FMDB操作SQLite数据库
  9. Python Redis 的安装
  10. 既然CPU一次只能执行一个线程,那多线程存在的意义是什么?
  11. RSA算法加解密
  12. java四种权限修饰符(public &gt; protected &gt; (default) &gt; private)
  13. 开源性能测试工具Locust使用篇(三)
  14. [UE4]扔枪后捡枪:Get Overlapping Actors
  15. tp查询顺序
  16. 广州区块链系统or积分联盟
  17. 前端框架 vue 和 react 的区别
  18. python高级编程之列表推导式
  19. Anaconda快速加载opencv
  20. PAT 甲级 1063 Set Similarity

热门文章

  1. ANSYS热分析简介1
  2. vs2013设置不生成.sdf和ipch文件
  3. [理解] C++ 中的 源文件 和 头文件
  4. nginx 的磁盘IO优化
  5. nginx 的请求处理阶段
  6. Kafka-JavaAPI(Producer And Consumer)
  7. 杭电 2028 ( Lowest Common Multiple Plus )
  8. c数据结构链式存储-静态链表
  9. IIS 应用程序池回收(代码实现)
  10. 远程登陆ubantu服务器 .bashrc文件每次打开终端都需要source的问题