【Unity】OnTriggerStay2D无法触发问题,物体跟随鼠标等背包系统以及UI场景交互系统技术总结
背包系统以及交互
- 交互实现
- 技术总结
- OnTriggerStay2D无法碰撞
- 检测跟随鼠标移动
跟着麦扣老师学习的背包系统之后,因为参加GameJam后现在码了背包和场景交互,但是都有些bug,最近重新改了一下。
主要功能:
1.通过点击获取UI上的物品,点击场景也可以。下图就是点击场景在背包中生成物品
2.通过拖拽UI中的item来进行场景之间的交互
(下图中的功能:放入指定的物品:树枝和废纸,可以让这个壁炉可以被点燃,放入打火机进行点燃){因为没有图所以随便找了点就当作状态的替换}
实现过程:
通过点击UI/对象,在对应的assets++;并刷新PlayerInventory
拖拽UI时在鼠标下生成对应的GameObject用于与交互点检测碰撞。
交互实现
在最初的交互中,我选择了使用Button来进行生成检测Gameobject,因为UI的拖拽检测PointerEventData.pointerCurrentRaycast只能检测UI画布上的物体,不能托出去交互。
而现在的版本中,我将PlayerInventory下方放置了一个透明度为0的Panel来为了让UI进行全图的检测。这样就不需要Button这个繁琐的设定,直接从Inventory中拖拽UI了
技术总结
OnTriggerStay2D无法碰撞
OnTriggerStay2D会有出现无法碰撞的问题,是因为他在没有移动时,进入睡眠,如果要解决它,首先你需要关闭刚体的睡眠
并且依然会出现无法碰撞的问题,暂未解决(我估计是刷新率跟不上的问题),后因为让UI可以出现在整个屏幕,换回了OntriggerEnter2d又可以经行最丝滑的交互了。
检测跟随鼠标移动
public void MoveByMouse(){if (isMove){//首先获取到当前物体的屏幕坐标Vector3 pos = Camera.main.WorldToScreenPoint(transform.position);//让鼠标的屏幕坐标的Z轴等于当前物体的屏幕坐标的Z轴,也就是相隔的距离Vector3 m_MousePos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, pos.z);//将正确的鼠标屏幕坐标换成世界坐标交给物体transform.position = Camera.main.ScreenToWorldPoint(m_MousePos);}}
【Unity】OnTriggerStay2D无法触发问题,物体跟随鼠标等背包系统以及UI场景交互系统技术总结相关推荐
- Unity协程实现场景中鼠标按住的物体跟随鼠标移动
Unity协程实现场景中的鼠标按住物体跟随鼠标移动 void Awake() { StartCoroutine(OnMouseDown() as IEnumerator); } IEnumerator ...
- unity2d 实现物体跟随鼠标绕一个点旋转效果
在2D游戏中,类似泡泡龙炮台发射.敌人飞机永远指向PLAYER.愤怒小鸟弹弓发射等效果,都需要用到物体跟随鼠标绕一个点旋转的效果,在unity中实现代码很简单,但是在理解上有一定障碍,因为unity是 ...
- threejs中坐标系转换和实现物体跟随鼠标移动
坐标系转换 下面函数可以将鼠标所在点的屏幕坐标转化成一个Threejs三维坐标: convertTo3DCoordinate(clientX,clientY){var mv = new THREE.V ...
- CocosCreator2.4 物体跟随鼠标或触摸点
CocosCreator2.4 物体跟随鼠标或触摸点 前言 效果 注意事项 源码 前言 项目需求鼠标点击要有效果,移动要跟随,但是看了文档发现坐标系转换会有问题,于是记录下. 效果 注意事项 使用cc ...
- Unity 基于eventTriggers的3D场景交互系统
Unity 基于eventTriggers的3D场景交互系统 Unity里的3D项目有时候需要大量的交互,而且是无UI的交互. 这时候可以像UI系统里,使用eventTrigger去制作交互系统.但是 ...
- Unity让物体跟随鼠标移动
前言 最近在学习Unity,记录下学习的成果吧.本文最终结果是要实现一个小飞机跟随鼠标移动的效果.看下图片. 向量 在Unity中,每个对象都有自己的位置属性,组件叫做Transform,通过Tran ...
- 物体跟随鼠标移动——图片为gif格式
注意:大的gif图片需要隐藏滚动条. <!DOCTYPE html> <html><head><meta charset="utf-8"& ...
- Unity3d 物体跟随鼠标移动
效果:当点击鼠标左键时,游戏对象会朝鼠标点击的方向移动,类似魔兽争霸一样. 思路:把鼠标的坐标转化成世界坐标(鼠标默认是屏幕坐标),然后当点击鼠标时,物体将朝着鼠标的世界坐标方向移动. 如果你看到这的 ...
- Unity 用鼠标拖动3D物体 跟随鼠标移动
public class MouseMove : MonoBehaviour {//鼠标经过时改变物体颜色private Color mouseOverColor = Color.blue;//声明变 ...
最新文章
- git error(win下)
- 超微服务器 旧系统盘 新服务器,超微服务器做系统
- shell:多个文件按行合并
- php中的递归算法,PHP递归算法(四)
- mysql old key files_mysql出现“Incorrect key file for table”解决办法
- 新一代“土豪专享”机来了!三星W2020通过WiFi联盟认证
- JS定义数组,初始化
- win7下硬盘安装Windows
- 空间计量经济学(1)---空间计量简介与空间权重矩阵设置
- 什么是EJB?EJB详解
- php background,CSS BACKGROUND定位背景上下左右偏移
- Python绘图实例35:漫天雪花绘制
- ctDNA早期肿瘤×××基因检测
- AdGuard自定义拦截规则
- python怎么读汉字翻译拼音_Python 返回汉字的汉语拼音
- 码支付源码完整版-安装环境配置
- Hive-编写UDF函数(详细教程~~~)
- Review of Software Construction
- C语言:字符串和字符串函数
- 华为H3C配置单臂路由、静态默认浮动路由的配置方法
热门文章
- 徐无忌深入JVM虚拟机笔记:Java代码到底是如何运行起来的?
- 老李分享:robotium常用API 1
- linux下eeprom测试函数,Linux Kernel eisa_eeprom_read函数绕过安全检查漏洞
- 使用MVC模式实现一个超简单的网上书店系统
- 什么事DDoS?什么事ADS?看ADS如何治愈DDoS伤痛
- arrays.sort()
- PS的png图片锁定不能解锁时
- 2022技术趋势预测,Python、Java占主导,Rust、Go增长迅速,元宇宙成为关注焦点
- [读书笔记]Mindset
- android alsa 命令,[zz]Android下使用alsa-utils调试ALSA驱动