- 博客(193)
- 资源 (1)
- 收藏
- 关注
原创 在react-app-rewired工程项目中,调试AntVG6库源码包。
此时要手动添加你的react-app-rewired工程项目的根目录文件夹,以及G6源码的根文件夹。此时,我们已经成功debug到antvg6的源码的render函数。如果看到这样好几个圆点,意味着可以F11直接步入进去。关闭并且新打开一个浏览器,F12进去,先打个断点。打开浏览器访问之后,F12弹出控制台。
2025-11-14 11:05:42
377
原创 打开多个Unity编辑器时使用Visual Studio调试,弹出选择Unity实例窗口,但是没有实例
当打开多个Unity编辑器的时候,打开Visual Studio ,附加到Unity,进行调试,发现。这时候,就知道Debug的是哪个Unity实例了。调试-> 附加Unity 调试程序。在这里选择Unity实例。此时,多了一个调试选项。
2025-10-13 00:24:33
418
原创 Unity中,软遮罩SoftMaskForUGUI可移动遮罩形状实现方法
看看MaskingShapeSubtract节点,查看对应的组件列表,Masking Method 选择Subtract。其中,SoftMask节点拥有Image组件,这个Image组件是一个全透明的空图片,注意Color为全透明。然后看MaskingSHapeAdditive节点的组件列表,Masking Method选择Additive。SoftMask节点还带有Soft Mask组件以及Soft Maskable组件,如下图。GameObject节点结构如下图。
2025-09-04 23:14:05
344
原创 Unity中,软遮罩SoftMaskForUGUI的使用
Mask遮罩可以理解为,我用一张五角星遮罩图,上了颜色的部分就是没有遮罩的像素点,没有上颜色的那些区域就会不会渲染。遮罩图就是用来控制哪些像素点区域我希望渲染,哪些像素点区域我不希望渲染。其中,我的遮罩图mask.png是一个柔化边缘的五角星,可以用PS软件的软画笔随便绘制,其余地方透明。然后选择文件:该github项目根目录下的Package/src/package.json。下载好之后放到Unity工程的package目录下,为了好管理。在Unity中,通过添加本地包的方法将该项目导入到工程中。
2025-09-04 22:53:49
457
原创 麒麟linux解决vnc远程桌面灰屏问题
只有mate.desktop xinit-compat.desktop桌面环境,应该如何修改xstartup文件?修改~/.vnc/xstartup。杀掉vncserver并重新运行。检查存在哪些类型的桌面会话。
2025-08-21 14:09:40
280
原创 Unity中VFX烟雾特效与场景中的碎片物体重叠时闪烁问题
那么最终的效果就是显卡先渲染碎片物体然后再渲染烟雾,所以看起来烟雾一直在碎片物体之上,从而就不会闪烁了,因为碎片物体是恰好透明的那个渲染队列,渲染队列是3000,要小于烟雾的3050。如果渲染队列都是3000,那么显卡的渲染先后顺序随机,就会出现闪烁了。点击Unity项目中vfx特效文件,看右侧的Inspector窗口。
2025-03-01 00:42:54
278
原创 Unity中Rayfire Rigid组件的Activation参数含义
其中绿色的连线是Yielding状态,红色是Unyielding状态,意思是说红色网络连线部分的碎片的粘合力很大,不容易分开的意思,绿色网络连线部分的碎片是容易分开的。Velocity:表示碎片被物体撞击以后,速度达到多少的时候会被激活物理系统,如果设置为0,表示无论速度是多少,都不会被激活,如果设置为0.5,那么速度达到0.5以上才会被激活。Offset:表示碎片偏移多少距离的时候激活物理系统,如果设置为0,表示无穷大,意思就是无论多少距离都不激活,比如设置一个0.2,那么移动0.2米会被激活。
2025-01-10 14:48:20
73
原创 Unity中,Rayfire Rigid组件的Mesh Demolition 中Fragments参数含义
Depth Fade:表示,当产生二级碎片甚至多级的时候,下一级碎片的数量是上一级碎片数量乘以Depth Fade的值,比如第2级碎片是8个碎片,第三级碎片,就是从这8个碎片中继续破碎,因为设置Amount为10,所以10*0.5=5,所以第三级碎片是从这8个碎片中每个碎片分裂5个左右。这个值越大,产生的碎片越多,越消性能。Contact Bias:表示板砖被小球撞击的时候,碎片集中到撞击点的程度,如果是0,那么就破碎的很平均,如果设置为较大的值,比如0.95,那么会有更多的碎片集中到小球的碰撞点。
2025-01-10 04:17:55
63
原创 Unity中Rayfire的Limitations参数含义
Slice By Blade勾选上的时候,当有一个平面物体拥有Rayfire Blade组件的时候,被这个平面所切过,会裂开。效果如图:板砖会裂开。如果设置为3,那么,二级碎片的大小大部分都是小于3的,那么这部分小于3的碎片就不会再次被分解了,所以看起来碎片会更少。Depth表示能破碎多少次,0表示可破碎无穷多次,表示父物体破碎产生的碎片可以继续破碎。Size表示,当Depth大于等于2的时候,二级碎片的最小的大小是多少。Time表示小球以一定的频率去反复碰撞板砖的时候,多少秒以后会破碎。
2025-01-10 03:25:33
153
原创 Unity中Rayfire Connectivity组件的坑,无缘无故自动激活碎片,或者无法激活碎片。
当然我们要把这个区域内的碎片网格设置为Unyielding=true。这些碎片设置为Unyielding=true的时候,也就是要在Rayfire Rigid组件->Activation -> Connectivity -> Unyielding勾选上,绿色部分是不勾选的。最坑的是Offset 一定要大于0,如果设置为0,碎片不会被激活,如果设置为0,并且Rayfire Connectivity组件的Initiate设置为At Start, 那么就会奇怪地自动激活碎片,哪怕没有任何物体撞击它。
2025-01-09 18:26:29
215
原创 Unity中Rayfire Rigid组件坑,Damage参数设置不起任何作用
这个是最坑的设置,默认就是0.1,这个硬度太小了,导致Damage参数无论怎么设置,板砖都被小球一击必杀。硬度必须设置大一些,比如1.0。这里有两个小球,撞击一个板砖,板砖最大损坏值为50,损坏程度大于50就会被撞碎。但是没到达20,所以不会触发物理系统,板砖不会受到重力的影响。最后一个框设置为None,意味着小球永远不会被撞碎,硬度无穷大。此时板砖扣了28滴血了,会触发物理系统,由于重力导致往下落。最终摔的一瞬间,50滴血都扣完了,所以碎了。
2025-01-09 02:02:41
177
原创 Unity的Rayfire Rigid组件坑Activation By Velocity等参数不生效问题
其中 cubeTopThinRoot就是粉色柱体本身,不仅本身,包括它的碎片的对应的velocity都要设置为5f;最大的坑在于:最后一个绿色框Demolition必须设置为None,否则Velocity参数怎么设置都没什么效果。设置velocity为0f的时候,每个碎片只需要被撞击时产生大于0的速度,就会触发物理系统,所以受到重力掉下来了。如果设置为velocity为5f,那么碎片被撞击时产生大于5的速度才会触发物理系统,那么只有少量的碎片下落。这是velocity设置为5f的效果。
2025-01-09 01:46:54
238
原创 在typescript浏览器端中调用C++编写的函数,WebAssembly传递指针类型的参数,以及处理指针类型的返回值。
最后是返回一个C++结构体指针,在TypeScript中通过DataView来获取内存中的地址偏移量来取得结构体中的数据,因为em++编译器是以32位来编译.cpp文件的,所以指针占4个字节。DataResult结构体第一个属性dArr是一个指针,那么就是地址偏移量0,然后以32位无符号整型取得dArr指针,通过这个指针去读取wasm中memoryBuffer中的数据,就可以得到dArr属性对应的值了。同理,通过地址偏移量+4来得到propCount属性,以32位整数读取数据即可。
2024-09-17 00:14:16
874
原创 typescript如何调用自己编写的C++函数
在https://blog.youkuaiyun.com/Xeon_CC/article/details/139957190这篇文章已经直到,js文件以及对应的wasm文件如何生成了。我们把生成好的文件放入到typescript项目的src/lib/wasm目录下。那么typescript怎样才能调用C++编写的函数呢?然后尝试调用useModule函数即可。这是定义的C++函数。
2024-08-30 13:36:29
949
原创 第7讲:以Point、ObservablePoint为例,添加部分功能。
其中,ObservablePoint是使用很频繁的类,Point的位置一旦发生改变,触发回调changePointCallback。ObservablePoint也是IPoint的实现,所以新增的方法与Point一样。其中,Point.prototype.add = function(other: IPoint){setInterval是常用的定时器,每隔500毫秒执行一次函数,执行超过一定次数,结束定时器。在src/lib中,创建PointUtils.ts。就是往Point类中自己添加了add方法。
2024-07-15 17:08:05
302
原创 第6讲:增修别人的函数库,以pixi.js库中的Rectangle模块为例。
修改index.html文件,修改引用为AddChangeFunction.ts文件。在src目录下新建一个AddChangFunction.ts。在src/lib目录下新建一个RecUtils.ts文件。
2024-07-14 17:31:04
271
原创 第5讲:建立自己的C函数库,js调用自己写的C/C++函数,并包含依赖C/C++第三方静态库。
在javascript中,Array有很多内置的功能,比如Array.map,Array.filter,Array.find等等,能用内置的功能就用内置的功能,最好不要自己实现一套,因为底层调用的可能压根就不是js语言本身,底层的实现可能由C/C++实现的。如果我们要做的一些功能,需要高性能密集计算,但是JavaScript内置函数无法满足我们要求的时候,这时候我们就要自己用C/C++编写一个程序,然后封装成.a静态库给JavaScript调用了。我这里导出了所有的函数,函数前面要加上下划线。
2024-06-26 01:28:07
1017
1
原创 第4讲:pixi.js绘制舞台、随窗口大小而改变画布大小和舞台位置
然后在index.html中,编辑代码,改成如下代码,现在我们引用CanvasAndStage.ts文件,而不要引用main.ts文件。基于前面写的代码,在gamelets的工程目录下新建一个CanvasAndStage.ts。随着浏览器缩放,黑色的画布会跟着缩放,容纳整个浏览器窗口。
2024-06-25 13:40:02
1192
原创 第3讲:关于Pixi的Text、Container、Sprite、Graphics组件功能作用
Container是一个容器,如果多个组件放在一个容器中,如果容器的属性发生改变则,容器里面的子控件的属性都会发生改变。Graphics组件是用来绘制图形用的,比如线条,圆形,矩形等等。下部分各种组件基于这个公用代码直接往下添加代码即可。Sprite组件非常简单,就是显示一张图片。Text组件,非常简单,就是绘制文字。
2024-06-18 00:21:28
562
原创 第2讲:pixi.js 绘制HelloWorld
基于第0讲和第1讲,我们增添了vite.config.ts文件。并配置了其他的http端口。然后在package.json中点击Debug,启动了localhost:7777。删除 conter.ts、typescript.svg。此时,我们删除掉没用的东西。
2024-06-17 21:10:32
492
2
原创 第1讲:创建vite工程,使用框架为Vanilla时,语言是typescript,修改http端口的方法
直接在项目根目录创建 vite.config.ts文件。
2024-06-16 16:58:50
461
原创 第0讲:创建一个Vite工程
接下来选择框架为: Vanilla (表示不使用框架,原生JS)然后输入项目名,这里起名为gamelets(很多小游戏的意思)选择语言为:TypeScript。
2024-06-16 13:47:32
314
原创 JS调用C语言写的代码,cmake项目生成的wasm文件
那么这时候呢,libutil.wasm 也会被重新覆盖生成,并且会得到一个libutil.js。这个命令一定要执行,才可以生成正确的libutil.asm,我们这里不使用libutil.js,仅使用libutil.wasm即可。如果找不到emcc命令,请搜索emcc.bat文件在哪里,并配置Emscripten里面的emcc.bat文件所在目录的环境变量。如下图,这个libutil.wasm文件确实变了,这是一个有效的wasm文件。这意味着我会用node main.js命令来执行这个main.js代码。
2024-04-20 16:20:59
939
原创 在debian中vcpkg install gdal报错:error: building libpq:x64-linux failed with: BUILD_FAILED
最主要原因是autoconf包没有被安装到系统中。其他依赖顺便安装一下。
2024-01-23 12:00:01
1065
原创 用虚函数的虚表调用成员函数
直接操作虚函数表是一种高度依赖于特定编译器实现的行为,它不是标准C++的一部分,因此可能在不同的编译器或平台上表现不一致,也可能引入安全和稳定性风险。在实际的应用开发中应该避免这种做法。不推荐在生产环境中写这种代码装B,行为危险,装B后果自负。
2023-11-27 18:02:51
575
原创 搭建SRS视频服务器
如果ffmpeg的路径不在/usr/local/bin/ffmpeg , 就要映射路径。在我这里,我已经把http_server 的端口改成了6930, 而不是默认的8080。注意,必须是1985端口。有时候可能默认显示别的端口。进入到srs/trunk 目录下,并执行编译命令。连接SRS就可以看到主机信息和摄像头实时动态。进入到浏览器即可访问。
2023-11-24 21:47:04
1258
原创 在linux环境下cmake中配置Qt6报错:but it set Qt6_FOUND to FALSE so package “Qt6“ is considered to be NOT FOUN
sudo apt-get install build-essential libgl1-mesa-dev
2023-10-11 10:29:50
2431
9
原创 ARM架构银河麒麟docker,源码编译安装GDAL
进入到GDAL源码目录并执行。下载GDAL3.4.3版本。以6个cpu核心编译源码。docker中安装依赖。去官网下载GDAL源码。
2023-08-09 14:02:07
1773
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅