Debug.DrawLine(transform.position, transform.position + transform.forward, Color.red);//绘制一条红色的射线 ?起点-终点
Debug.DrawRay(transform.position, transform.forward, Color.green);//绘制一条绿色的射线 ?起点-方向
?从原点发射一条射线 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //原点 ? ? ? ?//自身坐标 ? ? ? ? Ray ray = new Ray(Vector3.zero, transform.position);//从原点创建一条射线 ray射线 ? ? ? ? RaycastHit hit;//射线碰撞信息:RaycastHit ? 物理射线 ?? ? ? ? ? Physics.Raycast(ray, out hit, 100);//是否能产生最长距离100米的射线 ? Physics.Raycast:物理射线.信息方法 out hit:输出射线信息? ? ? ? ? Debug.DrawRay(ray.origin, hit.point);//从原点绘制一条射线,终点是点击的位置 //ray.origin:原点位置 ? hit.point:射线点击位置
public GameObject qiu;
?// ? ? ?//点击鼠标左键克隆一个球体 ? ? ? ? if (Input.GetMouseButton(0)) ? ? ? ? { ? ? ? ? ? ? //Input.mousePosition:鼠标点击的位置 ? ? ? ? ? ? Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//鼠标点击屏幕产生一条射线 ?Camera.main.ScreenPointToRay:摄像机射向屏幕 ? ? ? ? ? ? RaycastHit hit;//射线信息 ? ? ? ? ? ? if (Physics.Raycast(ray, out hit, 100))//是否能产生最长距离100米的射线 ?out hit ? ? ? ? ? ? { ? ? ? ? ? ? ? ? Instantiate(qiu, hit.point, Quaternion.identity);//在鼠标点击的位置上克隆一个球体 ? ? ? ? ? ? } ? ? ? ? }
?//点击鼠标左键,点到谁让谁消失 ? ? ? ? if (Input.GetMouseButton(0)) ? ? ? ? { ? ? ? ? ? ? //Input.mousePosition:鼠标点击的位置 ? ? ? ? ? ? Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//鼠标点击屏幕产生一条射线 ? ? ? ? ? ? RaycastHit hit;//射线信息 ? ? ? ? ? ? if (Physics.Raycast(ray, out hit, 100))//是否能产生最长距离100米的射线 ?out hit ? ? ? ? ? ? { ? ? ? ? ? ? ? ? //判断碰到谁 ? ? ? ? ? ? ? ? if (hit.collider.gameObject.name.Equals("Cube"))//通过名称查找对象 射线里面的碰撞器 ? ? ? ? ? ? ? ?//if (hit.collider.gameObject.CompareTag("Enemy"))//通过标签查找对象 ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? //让谁消失 ? ? ? ? ? ? ? ? ? ? Destroy(hit.collider.gameObject); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? }
|