原创内容,转载请注明原文网址: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路径