背包系统以及交互

  • 交互实现
  • 技术总结
  • 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场景交互系统技术总结相关推荐

  1. Unity协程实现场景中鼠标按住的物体跟随鼠标移动

    Unity协程实现场景中的鼠标按住物体跟随鼠标移动 void Awake() { StartCoroutine(OnMouseDown() as IEnumerator); } IEnumerator ...

  2. unity2d 实现物体跟随鼠标绕一个点旋转效果

    在2D游戏中,类似泡泡龙炮台发射.敌人飞机永远指向PLAYER.愤怒小鸟弹弓发射等效果,都需要用到物体跟随鼠标绕一个点旋转的效果,在unity中实现代码很简单,但是在理解上有一定障碍,因为unity是 ...

  3. threejs中坐标系转换和实现物体跟随鼠标移动

    坐标系转换 下面函数可以将鼠标所在点的屏幕坐标转化成一个Threejs三维坐标: convertTo3DCoordinate(clientX,clientY){var mv = new THREE.V ...

  4. CocosCreator2.4 物体跟随鼠标或触摸点

    CocosCreator2.4 物体跟随鼠标或触摸点 前言 效果 注意事项 源码 前言 项目需求鼠标点击要有效果,移动要跟随,但是看了文档发现坐标系转换会有问题,于是记录下. 效果 注意事项 使用cc ...

  5. Unity 基于eventTriggers的3D场景交互系统

    Unity 基于eventTriggers的3D场景交互系统 Unity里的3D项目有时候需要大量的交互,而且是无UI的交互. 这时候可以像UI系统里,使用eventTrigger去制作交互系统.但是 ...

  6. Unity让物体跟随鼠标移动

    前言 最近在学习Unity,记录下学习的成果吧.本文最终结果是要实现一个小飞机跟随鼠标移动的效果.看下图片. 向量 在Unity中,每个对象都有自己的位置属性,组件叫做Transform,通过Tran ...

  7. 物体跟随鼠标移动——图片为gif格式

    注意:大的gif图片需要隐藏滚动条. <!DOCTYPE html> <html><head><meta charset="utf-8"& ...

  8. Unity3d 物体跟随鼠标移动

    效果:当点击鼠标左键时,游戏对象会朝鼠标点击的方向移动,类似魔兽争霸一样. 思路:把鼠标的坐标转化成世界坐标(鼠标默认是屏幕坐标),然后当点击鼠标时,物体将朝着鼠标的世界坐标方向移动. 如果你看到这的 ...

  9. Unity 用鼠标拖动3D物体 跟随鼠标移动

    public class MouseMove : MonoBehaviour {//鼠标经过时改变物体颜色private Color mouseOverColor = Color.blue;//声明变 ...

最新文章

  1. git error(win下)
  2. 超微服务器 旧系统盘 新服务器,超微服务器做系统
  3. shell:多个文件按行合并
  4. php中的递归算法,PHP递归算法(四)
  5. mysql old key files_mysql出现“Incorrect key file for table”解决办法
  6. 新一代“土豪专享”机来了!三星W2020通过WiFi联盟认证
  7. JS定义数组,初始化
  8. win7下硬盘安装Windows
  9. 空间计量经济学(1)---空间计量简介与空间权重矩阵设置
  10. 什么是EJB?EJB详解
  11. php background,CSS BACKGROUND定位背景上下左右偏移
  12. Python绘图实例35:漫天雪花绘制
  13. ctDNA早期肿瘤×××基因检测
  14. AdGuard自定义拦截规则
  15. python怎么读汉字翻译拼音_Python 返回汉字的汉语拼音
  16. 码支付源码完整版-安装环境配置
  17. Hive-编写UDF函数(详细教程~~~)
  18. Review of Software Construction
  19. C语言:字符串和字符串函数
  20. 华为H3C配置单臂路由、静态默认浮动路由的配置方法

热门文章

  1. 徐无忌深入JVM虚拟机笔记:Java代码到底是如何运行起来的?
  2. 老李分享:robotium常用API 1
  3. linux下eeprom测试函数,Linux Kernel eisa_eeprom_read函数绕过安全检查漏洞
  4. 使用MVC模式实现一个超简单的网上书店系统
  5. 什么事DDoS?什么事ADS?看ADS如何治愈DDoS伤痛
  6. arrays.sort()
  7. PS的png图片锁定不能解锁时
  8. 2022技术趋势预测,Python、Java占主导,Rust、Go增长迅速,元宇宙成为关注焦点
  9. [读书笔记]Mindset
  10. android alsa 命令,[zz]Android下使用alsa-utils调试ALSA驱动