射线: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);
(注意:以上代码仅为部分代码提示)
网友评论