温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

unity3d用射线检测做了一个物体的捡起功能

发布时间:2020-06-03 12:45:52 来源:网络 阅读:4454 作者:酷酷小乔 栏目:游戏开发

 今天去了下北京的虚拟现实产业园,看了下,感觉虚拟现实产业以后发展前景可能会蛮好的,回来之后想了下上次做的一个秘密潜行的游戏的时候。主角拿到钥匙的检测,我当时用的是碰撞检测,想了下。是否射线检测会更合适,就想一些RPG游戏里面的检起掉落在地上的装备那效果,就写了一个

 代码如下:


using UnityEngine;
using System.Collections;

public class RayPlayer : MonoBehaviour {

    public bool canPick;//是否可以检起
    void Update () {
      RaycastHit hitif;
      bool MyCollider = Physics.Raycast(transform.position,transform.forward,out hitif);//得到碰撞点
       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;

      }

    }

    //显示一个是否可以捡起的提升
    void OnGUI()
    {

    if(canPick)
    {
     GUI.Box(new Rect(Screen.width/2,Screen.height/2,100,60),"可以捡起");
      
     }
   } 
}

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI