unity3d碰撞与射线

unity3d碰撞与射线

ID:11236967

大小:23.00 KB

页数:4页

时间:2018-07-10

unity3d碰撞与射线_第1页
unity3d碰撞与射线_第2页
unity3d碰撞与射线_第3页
unity3d碰撞与射线_第4页
资源描述:

《unity3d碰撞与射线》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Unity3D碰撞与射线忽略碰撞有些时候我们不想让指定的两对象发生碰撞,即要忽略他们的碰撞。忽略碰撞情况下的限制:1.保存场景时忽略状态不能保存。2.只能在活动的对象物体上应用。如果用在失效的物体上,必须要调用一次physics.IgnoreCollision.例如:定义一个球ball,当鼠标点击时,小球向前移动穿过墙publicGameObjectball;voidStart(){Physics.IgnoreCollision(ball.collider,this.collider);}voidUpdat

2、e(){if(Input.GetButtonDown("Fire1")){ball.rigidbody.AddForce(0,0,100);}}射线射线是3D世界中一个点向一个方向发射无终点的线。在unity3d中我们发射的射线一旦与其他的碰撞器发生碰撞,射线将停止发射。在游戏制作过程中我们可以通过判断射线是否发生了碰撞,并且可以判断射线和谁发生了碰撞。应用范围非常广泛,如射击类游戏中用它来判断是否射中目标。我们要想在游戏中发射一条射线,必须要有两个元素,一个起始点,一个方向。Ray.origin:射线起点

3、Ray.direction:射线的方向创建一条射线的方法Ray(origin:Vector3,direction:Vector3)Origin是射线的起点,direction是射线的方向。首先在场景中创建一个CUBE,创建一个c#文件,并输入如下代码:voidUpdate(){//定义一条射线,起点为Vector3.zero终点为物体坐标Rayray=newRay(Vector3.zero,transform.position);//定义一个光线投射碰撞RaycastHithit;//发射射线长度为100P

4、hysics.Raycast(ray,outhit,100);//在Scene中生成这条射线,起点为射线的起点,终点为射线与物体的碰撞点Debug.DrawLine(ray.origin,hit.point);}Debug.DrawLine()方法只在Scene视图中才可以看到下面利用射线技术做的一个种豆游戏当我们用鼠标点击地面,在我们点击地面的位置生成Prefab的实例,就像种豆子一样。代码如下:voidUpdate(){//当鼠标点击时发生if(Input.GetMouseButtonDown(0)){

5、//获取鼠标的位置Rayray=Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHithit;//定义一个射线//判断是否发生碰撞if(Physics.Raycast(ray,outhit,100))//克隆一个方块并旋转Instantiate(cube,hit.point,transform.rotation);}}}狗刨学习网unity学习、unity技术、unity视频、unity3D免费资源下载

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。