unity3d点击屏幕选中物体
前些天接触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点击屏幕选中物体相关推荐
- 【Unity开发】随手记:点击屏幕选中物体
写在前面 本系列为笔者实在是不想写作业,来通过写博客勉励自己一下.参考教程为<Unity 3D游戏开发>(中国工信出版集团),大部分代码和注释来源于这个博主,姐妹万岁哈哈哈哈
- unity3d点击屏幕判断是否击中场景中物体
问题: 现在要做点击屏幕,然后判断是否击中了3d场景中的一个物体.(就像子弹发射出去,打击目标一样) 思路: 一开始我想的是,我点击屏幕,那么拥有点击处的坐标,然后从点击处创建一个gameobject ...
- Unity3d鼠标点击屏幕来控制人物的走动
今天呢,我们来一起实现一个在RPG中游戏中十分常见的功能,通过鼠标点击屏幕来控制人物的走动.首先来说一下原理,当我们点击屏幕时,我们按照一定的方法,将屏幕上的二维坐标转化为三维坐标,然后我们从摄像机位 ...
- 【Unity3D】选中物体描边特效
1 前言 描边的难点在于如何检测和识别边缘,当前实现描边特效的方法主要有以下几种: 1)基于顶点膨胀的描边方法 在 SubShader 中开 2 个 Pass 渲染通道,第一个 Pass 通道渲染膨胀 ...
- unity3d中点击一个物体控制另一个物体的消失与显现
unity3d中点击一个物体控制另一个物体的消失与显现 实现效果如下,可以设置被控制物体的初始状态. 实现步骤如下: 1.在Hierarchy建立两个物体,一个是控制物体,一个是被控制物体,可以自由命 ...
- 学习记录:Unity点击屏幕生成随机UI花朵
1 效果展示 点击屏幕的位置生成花朵,生成的花朵等5秒后自动销毁. 2 代码展示 1 生成花朵的代码 using System.Collections; using System.Collection ...
- 使用ThreeJs从零开始构建3D智能仓库——第三章(选中物体与特效)
使用ThreeJs从零开始构建3D智能仓库--第三章 写在前面--目录结构 如何选中物体 选中物体的原理 选中物体的实现 添加选中后的发光特效 HTML更新如下 结束语 写在前面--目录结构 这一章我 ...
- 【Unity3D】调整屏幕亮度、饱和度、对比度
1 屏幕后处理流程 调整屏幕亮度.饱和度.对比度,需要使用到屏幕后处理技术.因此,本文将先介绍屏幕后处理流程,再介绍调整屏幕亮度.饱和度.对比度的实现. 本文完整资源见→Unity3D调整屏幕亮度.饱 ...
- 选中物体高亮显示(MR开发日志)
业务逻辑:屏幕中央扫到物体,点亮该物体,离开物体,取消高亮 程序逻辑:射线选中物体+配合Outline Effect高亮显示物体 场景设置:下载插件Outline Effect 1.摄像机设置添加Ou ...
- Unity-点击屏幕进行移动
Unity中实现点击屏幕进行移动 1,首先获取点击事件 是在void Update里每帧都要监测 Input.GetMouseButton(0) 是输入鼠标抬起事件 0鼠标左键 1鼠标右键 ...
最新文章
- 【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具
- thinkphp5.0 cache数据缓存机制
- android app复制,手机屏幕文字复制App(Text on sreen)
- 「单点登录与权限管理」系列概述
- 正则表达式提取器_C++11新特性7 - 正则表达式
- php员工积分绩效,详解绩效积分奖励制
- MySQL 创建触发器
- java小项目图书管理系统_Java小项目迷你图书管理系统
- SQL2008数据库的备份与还原
- springboot1.5 和 2.0 引入 redis 并封装工具类
- Bootstrap模态框中再嵌套模态框导致第一个模态框的滚动条消失
- vue 原生js写车牌号键盘
- 嵌入式入门必去的网站 —— 介绍的非常详细
- java 重写泛型方法_java – 泛型方法重写8
- 隔离电源模块的5个作用
- 关于Qt的无边框窗口移动
- [KALI系列第四章]进行ARP断网攻击,包含安装方法
- 再见python你好julia_再见 Python,你好 Julia!
- Spring boot 2 雷神
- Cloudera简介和安装部署概述
热门文章
- mysql最长字段_在mysql中使用GROUP BY时,如何选择最长的文本字段?
- updateStateByKey算子入门案例之wordCount
- 第95天:CSS3 边框、背景和文字效果
- Windows Mobile Sensors API库的设计
- Spring Annotation是怎么工作的?
- Linux网络编程基础
- 2015 UESTC 数据结构专题N题 秋实大哥搞算数 表达式求值/栈
- 深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete
- 多图片的合并(2种方式,可以设置间距)
- UNIX高手的10个习惯之一