1. ref 用法
SetState(ref this.CurState, AnimatorState.Other);
如果用上ref的话,操作的是同一个变量,所以会改变值,如果没用上ref的话,操作的不是同一个变量,所以值不会改变。
调用的参数要在调用前就要初始化,赋值
2. Physics2D.Linecast用法
grounded = Physics2D.Linecast(transform.position, groundCheck.position, 1 << LayerMask.NameToLayer("Ground"));
UNITY3D 的LAYER就是用的掩码,总共不超过32层,也就是正好用1个32位的Int 可以表示全部的层次,你看到的ground,12层也就是对应32位掩码 000000000001,前面全是0,然后这一句LayerMask.NameToLayer("Ground")),返回值是一个Int, ground在12所以直接返回12,然后1<<LayerMask.NameToLayer("Ground")),意思就是把1左移12位,正好得到ground的32位掩码,最后计算的线相交的层次也就是ground的层