美文网首页
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);

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

    相关文章

      网友评论

          本文标题:Unity 3D 射线

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