欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。
忽视碰撞:
作用:
使碰撞体1和碰撞体2的碰撞侦测无效。
忽略碰撞情况下的限制:
1. 保存场景时忽略状态不能保存。
2. 只能在活动的对象物体上应用。如果用在失效的物体上,必须要调用一次
格式:
Physics.IgnoreCollision(bullet(除去挂脚本的物体,另一个要忽视碰撞的物体).collider, this.collider);
E.g
public GameObject culb;
Void Start(){
Physics.IgnoreCollision(culb.collider, this.collider);
}
射线:
定义:
射线是一个无穷的线
创建射线:
Raycast (origin : Vector3, direction : Vector3, distance : float = Mathf.Infinity, layerMask : int = kDefaultRaycastLayers)
参数解释:
origin:射线起始点
direction:射线方向
distance:射线长度
LayerMask:只选定Layermask层内的碰撞器,其它层内碰撞器忽略。
代码中的应用:
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
//定义一条从摄像机指向鼠标的位置
Ray hit : RaycastHit;
//定义一个碰撞
if (Physics.Raycast (Ray, hit, 100)) {
//判断在100的距离内是否有碰撞
Debug.DrawLine (ray.origin, hit.point);
//绘制两点的线
}