Unity 3D 射线

射线: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);

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在我们的游戏开发过程中,有一个很重要的工作就是进行碰撞检测。例如在射击游戏中子弹是否击中敌人,在RPG游戏中是否捡...
    壹米玖坤阅读 24,770评论 0 17
  • 设置Android开发环境 安装jdk. 安装android-sdk-windows.(https://docs....
    GreatSun阅读 6,057评论 0 5
  • 本文来源于两年前我的一篇CSDN博客。CSDN博客本来就没写多少,现在也基本是到简书上混了。所以各位大大请自觉绕过...
    晓梦蝉君阅读 42,896评论 5 12
  • 如果事与愿违,就相信上天一定另有安排;所有失去的,都会以另外一种方式归来。相信自己,相信时间不会亏待你。 对自己生...
    春风十里难如你阅读 5,335评论 1 2
  • 其实开始有个账号,但没用心,现在也记不得号码了。刚才看谢霆锋的十二道锋味,为什么那么多人欣赏谢霆锋和蔡依林,因为他...
    H蓝O尾N狐Ey阅读 1,351评论 0 0

友情链接更多精彩内容