美文网首页
Unity 3D 射线

Unity 3D 射线

作者: IT白鸽 | 来源:发表于2017-01-06 10:28 被阅读0次

射线:3D世界中一个点向一个方向发射的一天无终点的线,在发射轨迹中鱼其他物体发生碰撞时,他将停止发射。注意:这条线是逻辑上的,界面上看不到。

用途:射线应用范围比较广,多用于碰撞检测(如:子弹飞行是否击中目标)、角色的移动等。

射线从摄像机发射的

Ray ray=Camera.main.ScreenPointRay(Input.mousePosition);

RaycastHit hit;

if(Physics.Raycst(ray,out hit))

{

//hit.collder.gameObject可以获得命中的游戏对象

}

Pphysics.RaycastAll 投射一条光线并返回所有碰撞

屏幕坐标系 ScreenPoint

屏幕坐标系是以左下角(0,0),右上角为(Screen.Width,Screen.Height),向上向右正方向,鼠标的位置Input.MousePosition是屏幕坐标系

GUI则是常规的一左上角为(0,0),向下向右为正方向

Screen.Width,Screen.Height是游戏屏幕大小,不是电脑屏幕大小,Screen.fullScreen读写游戏啊是否全屏(模拟器中不起作用);ScreenshowCursor读写是否显示鼠标光标状态。

销毁游戏对象,假设离开相机视线

goBullet.AddCompontent("DestryObj");

给goBullet添加名为DestryObj的脚本

DestryObj.cs 内容

void OnBecameInvisible()

{

Destroy(this.gameObject);

}

自定义游戏光标

Start中隐藏光标 Screen.showCursor=false;声明属相public Texture CursorTexture;找一个png格式鼠标图片放到Project中,然后拖到CursorTexture属性上;

OnGUI 中:

Vector3 mousePos=Input.mouserposition;

GUI.DrawTexture(new Rect(mousePos.x,Screen.height-mouserPos.y,CursorTexture.width,CursorTexture.heght),Cursortexture);

(注意:以上代码仅为部分代码提示)

相关文章

  • UGUI射线穿透问题解决方案

    在unity项目里3D场景中如果有用到射线的,鼠标点击UI会发生UI会被穿透,导致3D场景里的射线触发。举个例子:...

  • Unity 3D 射线

    射线:3D世界中一个点向一个方向发射的一天无终点的线,在发射轨迹中鱼其他物体发生碰撞时,他将停止发射。注意:这条线...

  • Unity_拖拽|全方位拖拽物体攻略

    Unity中UGUI控件和3D物体拖拽实现 基本原理 Unity拖拽的基本原理:射线检测,鼠标位置增量转换为统一空...

  • Unity 射线

    1,摄像机射线: 2, 物体发射射线: 3, 点击发出射线:

  • Unity射线

    射线 与现实中激光手电(激光笔)类似,射线的两个要素:原点和方向。unity引擎引入了这种机制,可以通过代码在场景...

  • unity 之UGUI 屏蔽鼠标穿透

    在Unity推出UGUI后,很多人开始使用UGUI,的确使用者很方便,毕竟是亲生的。 但是有时候做3D物体射线点击...

  • Unity 3D 创建项目

    Unity 3D 下载 要安装 Unity 3D 游戏引擎的最新版,可以访问 Unity 官方网站 https:/...

  • [unity3d源码] Unity 3D 《farm busin

    Unity 3D 《farm business》农场模拟经营游戏源码下载 1、Unity 3D 《farm bus...

  • unity 射线过滤

    刚刚看了官方文档,推荐layers来做我直接翻译了一下官方文档这个是官方文档链接 https://docs.uni...

  • Unity 基础 - 射线

    Unity 中虚拟射线能够检测所碰撞到物体,使用 Physics 类的 Raycast 方法实现色心啊碰撞检测功能。

网友评论

      本文标题:Unity 3D 射线

      本文链接:https://www.haomeiwen.com/subject/fjutbttx.html