射線: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);
(注意:以上代碼僅為部分代碼提示)