问题 最近遇到一个奇葩问题,使用QImage::save保存图片文件,debug模式下一点问题都没有,结果程序发布了之后,调用save()就会返回false,导致文件保存失败。 解决过程 开始猜测是可能是文件格式的问题,因为我在保存的时候没有识别文件之前的格式,一律按照jpg格式保存的。然后手动将格式调整成为对应的格式,可以保存成功。 于是开始寻找能识别图片格式的方法,因为我的文件数据是直接通过某个api获得得源数据(应用场景所致),没办法用后缀名来判断,寻找了一些方法都无果。 在StackOverflow上找到答…

2022年6月23日 1条评论 5901点热度 5人点赞 大脸猫 阅读全文

前言 最近为便利贴小工具新增点击链接,然后自动在浏览器中打开,这样一个功能。最开始想的是只要在输入内容时自动识别链接,然后在fromat中将其设置为链接格式,QTextEdit应该会自动处理。而事实是QT并没有做到这一点所以只能自己实现这么一个功能。 功能 简单的实现鼠标点击QTextEdit中的链接,系统上的浏览器会自动访问。但是这里的点击会与QTextEdit中的插入冲突,所以要修改链接时,只能通过键盘的上下左右键,将光标移动到链接中需要修改的位置(这个似乎没有更好的解决办法)。 实现思路 在QTextEdit…

2022年6月2日 0条评论 3731点热度 3人点赞 大脸猫 阅读全文

前言 Qt 提供了QShortcut来实现快捷键的功能,不过它的响应范围只局限于窗口内。如果脱离了进程窗口,如在桌面,或者正在使用其他软件,是无法响应的。 要解决这样的问题可以使用Windows 提供的API再结合qt的一些功能来实现一个全局可响应的快捷键。 需要用到的技术 RegisterHotKey() 这是是一个winAPI函数,它的作用是像系统注册一个快捷键,注册成功后系统会根据全局的键盘输入来判断快捷键是否被触发,触发之后通过WinMessage的方式来通知注册者。 BOOL WINAPI Registe…

2022年6月2日 2条评论 6500点热度 5人点赞 大脸猫 阅读全文

前言 使用ScriptableObejct时,需要在脚本中继承它,这个类有一个特殊的地方,他生成的实例对象可以以文件(.asset)的形式存储在项目中,在游戏运行中修改对象的数据也会及时保存到文件中。也就是说希望保留下来的游戏运行数据都可以继承这个数据容器生成游戏对象来存储。 使用ScriptableObject 使用时,只需要在脚本中继承它就可以了 using System.Collections; using System.Collections.Generic; using UnityEngine; [Cre…

2022年5月8日 0条评论 3115点热度 1人点赞 大脸猫 阅读全文

前言 Unity 专为GUI对象建立了一个事件系统,用于游戏场景中的UI响应系统的一些事件。起初读到文档的时候我还是比较疑惑的,因为大多数事件和MonoBehaviour提供的事件回调都是相同的,那么为啥还要单独出一套呢?之后我又读了了下关于MonoBehaviour的文档, 原来一些回调事件需要对象有collider对象才能被触发,所以总不能为了触发回调事件也给UI对象也添加一个Collider吧。 支持哪些事件 这些接口都定义在UnityEngine.EventSystems命名空间中,但是在API文档中却没有…

2022年5月8日 0条评论 2541点热度 1人点赞 大脸猫 阅读全文

前言 为了博客文章能长期保存,并且方便切换平台,最近转为使用Markdown来编写博客。我用到的插件是WP Githuber MD,但是在使用过程中遇到一些问题。 问题 不能高亮C++ 和C#代码,只要代码块的语言类型是这两种,均无法正常高亮。 经过一些测试,得出以下结论: 不是wordpress 版本问题,切换版本依然无法解决问题。 不是插件冲突问题,单独使用该插件也无法避免这个问题 然后在GitHub 上也看到一些小伙伴关于代码高亮有些许奇奇怪怪的问题,所以只能自己解决。 解决方案 我的解决思路是,不使用WP …

2022年5月7日 5条评论 4545点热度 4人点赞 大脸猫 阅读全文

前言 Unity 除了可以使用帧动画外,还提供了制作骨骼动画的工具,工具包应该是2018左右的版本加入的,目前我使用的2020.3版本已经可以直接使用了,老一点的版本需要在package manager 中下载相应的包才行。 本文参考:https://www.bilibili.com/video/BV1vt411i7p3 准备 在建立骨骼动画之前,最好先准备一张资源图片。 如上图,我将一个火柴人肢解了,这样将四肢分解之后做骨骼动画效果相对会好一些。当然直接使用一整张图也是可以的,但是经过测试,像是手臂和大腿这种需要…

2022年5月7日 4条评论 11153点热度 6人点赞 大脸猫 阅读全文

前言 Unity 提供了 Input 类作为获取用户输入的一个工具,它可以直接获取键鼠以及一些移动设备的输入信号,包括陀螺仪、加速度传感器之类的,当然触摸信号也是支持的。 还有一种方式是通过虚拟标识来获取信号,可以由开发者将虚拟标识映射到输入涉设备上。 注意:本文只记录关于键鼠信号的输入 Input Input类提供了一些函数来获取按钮的状态: GetAccelerationEvent 返回上一帧期间进行的特定加速度测量。(不分配临时变量)。 GetAxis 返回由 axisName 标识的虚拟轴的值。 GetAx…

2022年5月5日 0条评论 4814点热度 6人点赞 大脸猫 阅读全文

前言 场效应器用于模拟一些特殊物理区域或者表面 区域效应器(Area Effector 2D) 当2D碰撞器和效应器区域接触时,可以根据设定给物体增加不同方向的力。 属性: 功能: Use Collider Mask 选中此选项可启用 Collider Mask 属性。如果未启用此选项,则所有 2D 碰撞体都将默认采用全局碰撞矩阵 (Global Collision Matrix)。 Collider Mask 此遮罩用于选择允许与 2D 区域效应器进行交互的特定层。 Use Global Angle 选中此选项可…

2022年5月5日 0条评论 3805点热度 0人点赞 大脸猫 阅读全文

前言 Unity 物理引擎中有几种关节可以使用,主要用于实现类似绳索、弹簧、车轴等效果。 关节类型 2D 关节包括不同类型。请参阅每个关节参考页面以了解有关各自属性的详细信息: 2D 距离关节 (Distance Joint 2D) - 连接由刚体物理组件控制的两个游戏对象,使这两个对象保持一定距离。 2D 固定关节 (Fixed Joint 2D) - 将两个对象保持在相对于彼此的位置,确保对象始终以给定位置和角度偏移。例如,对象好像是采用刚性连接方式相连一样:对象不能彼此远离,不能相互靠近,也不能相对于彼此旋转…

2022年5月5日 2条评论 6088点热度 1人点赞 大脸猫 阅读全文
123458