原文  http://blog.csdn.net/mycwq/article/details/19906335

前些天接触unity3d,想实现点击屏幕选中物体的功能。后来研究了下,实现原理就是检测从屏幕发出的射线与物体发生碰撞,而这个发生碰撞的物体就是你选中的物体。

void MobilePick()
{
  if (Input.touchCount != 1 )
   return;  if (Input.GetTouch(0).phase == TouchPhase.Began)  {   RaycastHit hit;   Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);   if (Physics.Raycast(ray, out hit))   {    Debug.Log(hit.transform.name);    //Debug.Log(hit.transform.tag);   }  } } void MousePick() {  if(Input.GetMouseButtonUp(0))  {   Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);   RaycastHit hit;   if (Physics.Raycast(ray, out hit))   {    Debug.Log(hit.transform.name);    //Debug.Log(hit.transform.tag);   }  } }

在unity3d中,选中物体还有一个条件,就是物体能发生碰撞。这个参数就是碰撞器Collider,Collider是发生物理碰撞的基本条件。

所以如果无法选中物体时,要检查是否物体加了碰撞器。

方法如下:

GameObject gameObject = (GameObject)Instantiate(...);gameObject.name = "game_object";
gameObject.AddComponent<MeshCollider>();

转载于:https://www.cnblogs.com/czaoth/p/5594759.html

unity3d点击屏幕选中物体相关推荐

  1. 【Unity开发】随手记:点击屏幕选中物体

    写在前面 本系列为笔者实在是不想写作业,来通过写博客勉励自己一下.参考教程为<Unity 3D游戏开发>(中国工信出版集团),大部分代码和注释来源于这个博主,姐妹万岁哈哈哈哈

  2. unity3d点击屏幕判断是否击中场景中物体

    问题: 现在要做点击屏幕,然后判断是否击中了3d场景中的一个物体.(就像子弹发射出去,打击目标一样) 思路: 一开始我想的是,我点击屏幕,那么拥有点击处的坐标,然后从点击处创建一个gameobject ...

  3. Unity3d鼠标点击屏幕来控制人物的走动

    今天呢,我们来一起实现一个在RPG中游戏中十分常见的功能,通过鼠标点击屏幕来控制人物的走动.首先来说一下原理,当我们点击屏幕时,我们按照一定的方法,将屏幕上的二维坐标转化为三维坐标,然后我们从摄像机位 ...

  4. 【Unity3D】选中物体描边特效

    1 前言 描边的难点在于如何检测和识别边缘,当前实现描边特效的方法主要有以下几种: 1)基于顶点膨胀的描边方法 在 SubShader 中开 2 个 Pass 渲染通道,第一个 Pass 通道渲染膨胀 ...

  5. unity3d中点击一个物体控制另一个物体的消失与显现

    unity3d中点击一个物体控制另一个物体的消失与显现 实现效果如下,可以设置被控制物体的初始状态. 实现步骤如下: 1.在Hierarchy建立两个物体,一个是控制物体,一个是被控制物体,可以自由命 ...

  6. 学习记录:Unity点击屏幕生成随机UI花朵

    1 效果展示 点击屏幕的位置生成花朵,生成的花朵等5秒后自动销毁. 2 代码展示 1 生成花朵的代码 using System.Collections; using System.Collection ...

  7. 使用ThreeJs从零开始构建3D智能仓库——第三章(选中物体与特效)

    使用ThreeJs从零开始构建3D智能仓库--第三章 写在前面--目录结构 如何选中物体 选中物体的原理 选中物体的实现 添加选中后的发光特效 HTML更新如下 结束语 写在前面--目录结构 这一章我 ...

  8. 【Unity3D】调整屏幕亮度、饱和度、对比度

    1 屏幕后处理流程 调整屏幕亮度.饱和度.对比度,需要使用到屏幕后处理技术.因此,本文将先介绍屏幕后处理流程,再介绍调整屏幕亮度.饱和度.对比度的实现. 本文完整资源见→Unity3D调整屏幕亮度.饱 ...

  9. 选中物体高亮显示(MR开发日志)

    业务逻辑:屏幕中央扫到物体,点亮该物体,离开物体,取消高亮 程序逻辑:射线选中物体+配合Outline Effect高亮显示物体 场景设置:下载插件Outline Effect 1.摄像机设置添加Ou ...

  10. Unity-点击屏幕进行移动

    Unity中实现点击屏幕进行移动 1,首先获取点击事件   是在void Update里每帧都要监测 Input.GetMouseButton(0) 是输入鼠标抬起事件  0鼠标左键  1鼠标右键   ...

最新文章

  1. 【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具
  2. thinkphp5.0 cache数据缓存机制
  3. android app复制,手机屏幕文字复制App(Text on sreen)
  4. 「单点登录与权限管理」系列概述
  5. 正则表达式提取器_C++11新特性7 - 正则表达式
  6. php员工积分绩效,详解绩效积分奖励制
  7. MySQL 创建触发器
  8. java小项目图书管理系统_Java小项目迷你图书管理系统
  9. SQL2008数据库的备份与还原
  10. springboot1.5 和 2.0 引入 redis 并封装工具类
  11. Bootstrap模态框中再嵌套模态框导致第一个模态框的滚动条消失
  12. vue 原生js写车牌号键盘
  13. 嵌入式入门必去的网站 —— 介绍的非常详细
  14. java 重写泛型方法_java – 泛型方法重写8
  15. 隔离电源模块的5个作用
  16. 关于Qt的无边框窗口移动
  17. [KALI系列第四章]进行ARP断网攻击,包含安装方法
  18. 再见python你好julia_再见 Python,你好 Julia!
  19. Spring boot 2 雷神
  20. Cloudera简介和安装部署概述

热门文章

  1. mysql最长字段_在mysql中使用GROUP BY时,如何选择最长的文本字段?
  2. updateStateByKey算子入门案例之wordCount
  3. 第95天:CSS3 边框、背景和文字效果
  4. Windows Mobile Sensors API库的设计
  5. Spring Annotation是怎么工作的?
  6. Linux网络编程基础
  7. 2015 UESTC 数据结构专题N题 秋实大哥搞算数 表达式求值/栈
  8. 深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete
  9. 多图片的合并(2种方式,可以设置间距)
  10. UNIX高手的10个习惯之一