• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

游戏开发

Unity3D之点击拾取功能实现

原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2018/1107/172.html

Unity3D之点击拾取功能实现

 

游戏中经常会有鼠标移动到某个对象上来拾取它的功能,我们可以用Unity3D中的射线Ray实现这一效果。原理是在我们鼠标的位置,从屏幕射出一条射向世界空间的射线,当这条射线碰撞到我们需要拾取的对象时,我们就销毁对象,把它添加到我们的背包中。下面我们常州手机App游戏开发培训-幻天网络就给大家分享下Unity3D开发中的点击拾取功能实现。

新建一个Cube物体和一个脚本Cube,将Cube脚本挂到Cube物体上,代码如下:

using UnityEngine;  

using System.Collections;  

public class Cube : MonoBehaviour   

 

    void OnTouched()  

     

        Debug.Log("该物体被选中了!");  

     

 

新建一个空物体,命名为TouchManager,新建一个脚本TouchManager,将该脚本挂到空物体上,代码如下:

using UnityEngine;  

using System.Collections;  

public class TouchManager : MonoBehaviour   

 

    public Camera cam;  

    private float timeHit = 0f;         //用于点击的时间间隔,每次点击时间间隔应大于0.2  

    void Update()  

     

        timeHit += Time.deltaTime;  

        if (timeHit > 0.2f)  

         

            if (Input.GetMouseButton(0))  

             

                timeHit = 0f;  

                RaycastHit hit;  

                bool isHit = Physics.Raycast(cam.ScreenPointToRay(Input.mousePosition), out hit, 100f);  

                if (isHit)  

                 

                    hit.collider.gameObject.SendMessage("OnTouched", SendMessageOptions.DontRequireReceiver);  

                 

             

         

     

 



上篇:上一篇:Unity防破解 —— 加密Dll与Key保护
下篇:下一篇:Unity3D创建txt文件,管理prefab路径