Unity 3D 射線

射線:3D世界中一個點向一個方向發(fā)射的一天無終點的線,在發(fā)射軌跡中魚其他物體發(fā)生碰撞時,他將停止發(fā)射。注意:這條線是邏輯上的,界面上看不到。

用途:射線應用范圍比較廣,多用于碰撞檢測(如:子彈飛行是否擊中目標)、角色的移動等。

射線從攝像機發(fā)射的

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則是常規(guī)的一左上角為(0,0),向下向右為正方向

Screen.Width,Screen.Height是游戲屏幕大小,不是電腦屏幕大小,Screen.fullScreen讀寫游戲啊是否全屏(模擬器中不起作用);ScreenshowCursor讀寫是否顯示鼠標光標狀態(tài)。

銷毀游戲對象,假設離開相機視線

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);

(注意:以上代碼僅為部分代碼提示)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 在我們的游戲開發(fā)過程中,有一個很重要的工作就是進行碰撞檢測。例如在射擊游戲中子彈是否擊中敵人,在RPG游戲中是否撿...
    壹米玖坤閱讀 24,617評論 0 17
  • 設置Android開發(fā)環(huán)境 安裝jdk. 安裝android-sdk-windows.(https://docs....
    GreatSun閱讀 1,939評論 0 5
  • 本文來源于兩年前我的一篇CSDN博客。CSDN博客本來就沒寫多少,現(xiàn)在也基本是到簡書上混了。所以各位大大請自覺繞過...
    曉夢蟬君閱讀 42,690評論 5 12
  • 如果事與愿違,就相信上天一定另有安排;所有失去的,都會以另外一種方式歸來。相信自己,相信時間不會虧待你。 對自己生...
    春風十里難如你閱讀 1,306評論 1 2
  • 其實開始有個賬號,但沒用心,現(xiàn)在也記不得號碼了。剛才看謝霆鋒的十二道鋒味,為什么那么多人欣賞謝霆鋒和蔡依林,因為他...
    H藍O尾N狐Ey閱讀 172評論 0 0