unity3d用射线检测做了一个物体的捡起功能
今天去了下北京的虚拟现实产业园,看了下,感觉虚拟现实产业以后发展前景可能会蛮好的,回来之后想了下上次做的一个秘密潜行的游戏的时候。主角拿到钥匙的检测,我当时用的是碰撞检测,想了下。是否射线检测会更合适,就想一些RPG游戏里面的检起掉落在地上的装备那效果,就写了一个
代码如下:
usingUnityEngine;
usingSystem.Collections;
publicclassRayPlayer:MonoBehaviour{
publicboolcanPick;//是否可以检起
voidUpdate(){
RaycastHithitif;
boolMyCollider=Physics.Raycast(transform.position,transform.forward,outhitif);//得到碰撞点
if(MyCollider)//判断射线是否发生碰撞
{
if(hitif.distance<4&&hitif.collider.gameObject.tag=="Player")//判断在几米之内加上碰撞的物体的Tag是不是为Player(U3D里面自己设置Tag)
{
canPick=true;
//如果显示为可捡起的时候,如果按下鼠标左建,就销毁这个物体
if(Input.GetMouseButton(0))
{
Destroy(hitif.collider.gameObject,1f);
}
}
else
{
canPick=false;
}
}
else
{
canPick=false;
}
}
//显示一个是否可以捡起的提升
voidOnGUI()
{
if(canPick)
{
GUI.Box(newRect(Screen.width/2,Screen.height/2,100,60),"可以捡起");
}
}
}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。