zoukankan      html  css  js  c++  java
  • Unity 中层的运用

     LayerMask.NameToLayer("UI") ,这是直接获取场景里面已有的层,

    1<<LayerMask.NameToLayer("UI"),这是在发出射线的时候只开启这一个层,

    0<<LayerMask.NameToLayer("UI"),这是在发出射线的时候关闭之一层,

    也可以直接把要关闭或者开启的那一层写出来比如:LayerMask mask = 0 << 3 | 0 << 7;关闭第三和第七层;

    还有这种写法:

    mask = (1 << 5);
    mask = ~mask;

    这个意思是开启所有层只关闭第五层

    在做项目的时候经常会运用到射线检测但是值得注意的是射线检测分为2D和3D,

      void CheckClick()
        {
            if (Input.GetMouseButtonDown(0))
            {
                //mask = (1 << 5);
                //mask = ~mask; 
                //Ray ray = UICamera.currentCamera.ScreenPointToRay(Input.mousePosition);//2D射线检测
                mask = ((0 << 5) | (1<< 9));
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//3D射线检测
                RaycastHit hitInfo;
                if (Physics.Raycast(ray, out hitInfo, Mathf.Infinity, mask))
                {
                    string goname = hitInfo.collider.gameObject.name;
                    int layer = hitInfo.collider.gameObject.layer;
                    BwTrace.LogError("已点中了" + goname + ",layer:" + layer + "层....mask.value:" + FormatToBinary(mask.value));
                }
                else
                {
                    BwTrace.LogError("没点中 mask 层....mask.value:" + FormatToBinary(mask.value));
                }
            }
        }
  • 相关阅读:
    多级别过滤器
    MongoDBAppender
    org.slf4j.impl.SimpleLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext
    简单引入logback
    Logback configuration
    PatternLayoutEncoder 输出格式
    ConsoleAppender
    FileAppender
    Linux学习笔记
    GitLab CI/CD 学习记录
  • 原文地址:https://www.cnblogs.com/WindMan/p/9202790.html
Copyright © 2011-2022 走看看