一、碰撞发生条件:检测方必须具有刚体+碰撞器,被检测方必须具有碰撞器
二、不让物体显示的几种方式
1,Destroy(gameObject);彻底销毁了游戏对象,
2,Renderer[] allRenders = GetComponentsInChildren();

foreach (var ren in allRenders) 
 { 
  ren.enabled = false;


}只是禁用了Renderer组件,游戏物体存在,且其他组件存在
3, gameObject.SetActive(false);隐藏了游戏物体,无法在场景以及脚本中中找到,但游戏物体实际存在
三、关于LayerMask的几点认识
首先看一下官方API说明
LayerMask允许您在检查器中显示LayerMask弹出菜单。
类似于camera.CullingMask中的那些。 图层蒙版可以选择性地过滤游戏对象,例如投射射线时。
LayerMask是一个位掩码。使用LayerMask.GetMask和LayerMask.LayerToName 生成位掩码。
对说明中的几点做一下解释:
掩码:掩码是利用二进制代码对目标进行位与运算,屏蔽当前的输入位
图层蒙版:图层蒙版可以理解为在当前图层上面覆盖一层玻璃片,这种玻璃片有:透明的、半透明的、完全不透明的。然后用各种绘图工具在蒙版上(即玻璃片上)涂色(只能涂黑白灰色),涂黑色的地方蒙版变为透明的,看不见当前图层的图像。涂白色则使涂色部分变为不透明可看到当前图层上的图像,涂灰色使蒙版变为半透明,透明的程度有涂色的灰度深浅决定,是Photoshop中一项十分重要的功能。
①它是一种特殊的选区,但它的目的并不是对选区进行操作,相反,而是要保护选区的不被操作。
同时,不处于蒙版范围的地方则可以进行编辑与处理。
②蒙版虽然是种选区,但它跟常规的选区颇为不同。常规的选区表现了一种操作趋向,即将对所选区域
进行处理;而蒙版却相反,它是对所选区域进行保护,让其免于操作,而对非掩盖的地方应用操作。
Unity给出的层一共有32个,前8个是内置的不可编辑,对Layer开启或关闭的几种方式
LayerMask mask = 1 << 你需要开启的Layers层。
LayerMask mask = 0 << 你需要关闭的Layers层。
LayerMask mask = ~(1<<3|1<<7);表示关闭Layer3和Layer7。
LayerMask mask = 1<<2|0<<4;表示开启Layer2并且同时关闭Layer4.
四、创建自定义菜单
首先创建一个Editor文件夹(他是Unity里的特殊文件夹,用于创建菜单)
之后创建脚本,关键部分代码如下
using UnityEditor;

[MenuItem("Tool/Selection #q")]
   static void Method()
    {
        //方法体
    }

这里注意把脚本放在Editor文件夹中(也可以不放进)
五、yield return 0
yield return 0(或者null,或者其他整数),意思是跳过这一帧,等待下一帧继续执行