1.物理系统(Pythsic)
Layer的设置(层 此处用于区分碰撞体)
int layer = LayerMask.NameTolayer("层的名字")
在射线检测时使用1<<layer
例如User Layer9 = test;int layer =LayerMask.NameToLayer(“test”);
那么layer=9 代表32位int类型序号9处为1,即第9层 ; 使用1<<Layer
后,
int 型 32位 每一位取 0或者1,1代表这层 (…0000 0001向前移动9)
即….0000 0010 0000 0000(其余位为0);int layer = LayerMask.GetLayer("层1","层2")
在射线检测时使用layer
public LayerMask layer;
在射线检测时使用layer
- 射线检测
Ray ray = new Ray(射线的起始位置,射线方向);
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RastCastHit hit;//碰到的碰撞体
if(Pysics.Raycast(Ray,out hit,distance,layer)){
}ifPhysics.LineCast(起点,终点,layer){有碰撞体的物体进入这个直线范围}
- 球形范围检测
Collider[] cols = Physics.SpereCast(球形的原点,球的半径,layer);
2.场景中绘制图像
void OnDrawGizmos() {
Gizmos.color = Color.Red;
Gizmos.DrawLine();
}
3.Resources资源加载
- 项目中需要有名叫 Resources 的文件夹
- 一个项目中可以有多个名叫Resources 的文件夹
GameObject obj = Resources.Load<Gameobject>("Prefabs/Enemy01");