using UnityEngine;
using System.Collections;
public class Lu : MonoBehaviour
{
public Camera cam;
// We need to actually hit an object
RaycastHit hitt = new RaycastHit();
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
Ray ray = cam.ScreenPointToRay(Input.mousePosition);
Physics.Raycast(ray, out hitt, 100);
// Debug.DrawLine(cam.transform.position, ray.direction,Color.red);
if (null != hitt.transform)
{
print(hitt.point);//鼠标点击的坐标
}
}
}
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
必须给物体添加碰撞器,比如Box Collider
然后在Update中检测手势,此处假设为手指在屏幕上移动
主相机的视角(Camera.main)从手指移动处(Input.GetTouch(0).position)发射射线,设置射线发射距离。
当射线碰撞到了带有碰撞器的物体,就会存储该物体的信息。
- void Update(){
- if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved){
- Ray ray = Camera.main.ScreenPointToRay (Input.GetTouch(0).position);
- //hit用来存储碰撞物体的信息
- RaycastHit hit;
- //ray表示射线,hit存储物体的信息,1000为设定射线发射的距离
- if(Physics.Raycast (ray, out hit, 1000)){
- print(hit.transform.name.ToString());
- }
- }
- }