- 博客(23)
- 资源 (6)
- 收藏
- 关注
原创 c#中结构体与有序二进制字节数组的相互转换
在一个和仿真软件进行UDP数据通信的项目中,需要接收仿真软件的数据,同时还要给软件发送数据。该软件将所有的参数数据都转成有序的二进制字节数组进行发送,同时接收数据也要这样接收。所以,我需要在我的客户端将数据处理成同样的格式。采用Marshal.PtrToStructure和 Marshal.StructureToPtr进行相互转换。2.结构体内不要使用高级数据结构参数,只使用基本数值类型参数。否则需要你自己实现转换实现。3.结构体内不要使用字符串参数。1.结构体内不支持嵌套关系。
2024-09-14 09:35:33 262
原创 UE5 自定义存取配置文件-文件操作
在项目开发过程中,有一个需求是对相机调整偏移值,并且调整后需要保存,以便下一次打开读取赋值。1.将偏移值FVector保存成字符串,以逗号分隔。2.读取的时候,将字符串读取为FVector返回。3.我将代码写在了蓝图库脚本中,以便全局调用。根据这个需求,制作一个临时的方案,在此记录。
2024-08-16 16:24:45 367
原创 UE中让文本字体大小自动随屏幕缩放
因为程序最终运行的设备不定,所以分辨率也不定。由此导致的问题就是,默认的文本组件字体大小是固定的,如果不做调整,就会引起高分辨率太小,低分辨率太大。使用组件:中文:【缩放框】,英文:【Scale Box】将需要进行自适应的组件放入缩放框组件中即可。
2024-07-30 11:16:37 429
原创 【解决方案】HTC Vivie 手柄在SteamVR中图标一直闪烁,提示不在定位范围内
一般这种都出现在在工位桌面开发或者小范围使用场景的时候出现,基站会放在桌子两侧,距离很小。所以对于这种情况,找个三脚架,把基站架起来,离手柄远一些,最好是两米外。使用线将手柄连接到电脑上,然后在SteamVR手柄图标上右键,更新固件即可。同时尽量不要用一个基站定位,用两个基站。手柄的固件和SteamVR版本不匹配。手柄距离基站太近或基站太少。
2024-06-07 10:46:34 698
原创 蓝图中定义Actor变量引用,无法在关卡中选择赋值
在蓝图中我定义了一个Actor的对象引用,想着公开到关卡中,在关卡中手动选择Actor赋值。结果到关卡中,赋值的时候,能拖动Actor放到上面,也能在属性下拉框中选择,但是就是赋值不上,怎么操作都无法赋值,也不报错。我以为是我的类型定义错了,结果更换变量类型后还是不行。
2024-05-27 15:39:59 300
原创 UE5 使用UDP时,检测端口是否被占用
在项目开发时,由于需要使用UDP同时接收多个数据来源,所以存在端口占用的可能性,因此需要在创建UDP前,先检测端口是否被占用,否则,就会引起软件功能报错或者崩溃。如果方法返回true,代表端口可用,反之则不可用。
2024-03-22 13:57:02 425
原创 UE5中简易的UI管理框架(c++版,UE5.1)
基于此需求,采用栈先进后出的数据接口,编写了一个简易的UI管理框架。1.支持UI的自动创建2.支持UI的按开启顺序关闭3.支持一件关闭所有UI4.支持开启当前UI后,禁用上一个UI的操作5.管理类继承自AActor类,所以支持在面板配置UI信息1.OpenUI:通过传入自定义的UI名来生成UI,如果hideLastUI为true,则隐藏上一个UI,否则,上一个UI继续显示2.CloseUI:关闭当前UI3.CloseAllUI:关闭生成的所有UI。
2024-03-22 09:53:03 1746
原创 unity中一种实现大量目标(1万个以上)图标跟随的解决方案
使用Mesh代替UI图标,采用GPUInstance来生成图标,使用Job进行图标位置计算,开发脚本,将Mesh图标放置到相机裁面中。在使用Unity进行Gis开发时,希望一些目标以图标的形式显示,显示效果和UI图标跟随一致,并且当目标移动时,图标也需要继续跟随。这种方案效果满足,但是因为UI图标的贴图不一致,导致无法触发合批,一旦UI数量一多,就会极大的影响性能。最终,该方案不可行。将目标的三维空间坐标转为屏幕坐标赋值给UI。即有了和UI相同的效果显示,又有了高性能。红色为UI图标,彩色为mesh图标。
2024-03-14 10:57:35 517
原创 UE5 c++自定义配置文件内容读取(c++编写、蓝图调用)
每个项目都会有一个需求,某些数据进行外部可配,基于此,在UE中用c++编写了自己常用的配置方案。
2024-02-29 10:20:32 1327 2
原创 UE5中使用反射系统进行结构体字段值的获取与设置(c++编写、蓝图调用)
但是因为字段量级太大,同时重复性工作非常多,并且这些字段可能还会随时增加,如果依旧采用传统方式,就会导致每次新增时,都要新增代码。最近在做一个数字孪生项目,需要大量的接收上游的数据显示到程序界面上,同时程序也会给上游反馈数据,比如一个按钮,按下时,给上游反馈1,松开后反馈0.这样,每次结构体有变化时,只需要修改结构体,其他字段的更新与获取无需任何改变。整体调用的方式为,c++中编写反射脚本,传入字段名可获取对应字段值与设置对应字段值,在蓝图中可调用该方法,并传入字段名。
2024-02-29 10:12:04 987
原创 Unity GPU线的绘制(当点位坐标过大时, 不存在线的抖动问题)
由于使用的地球是全尺寸地球,所以物体在地球表面时,坐标会非常大,如果在物体之间连线时,因为Unity本身的计算精度问题,会使得mesh产生渲染抖动现象。两种方式都可以解决问题,但是如果由于一些原因,导致第一种方案无法使用,则可以使用第二种方式解决。Unity原生支持GL绘线,这种绘线方式可以完美满足我的需求,基于像素绘制宽度,不基于Mesh绘制线段,不存在抖动问题。1.新建下方脚本,将脚本挂在相机上(必须挂在相机上,否则无法运行),并且调整好相机视角,保证相机能看到线。2.使用不基于Mesh的绘线方式。
2023-12-21 17:14:43 538
原创 本地局域网web容器,支持unity发布webgl运行
我们使用Unity发布的webgl文件是不能直接双击运行的,必须要部署到web容器内才可以在浏览器中打开,如果放到到服务器中,则太麻烦。还有一些好用的本地web容器,用起来也还算可以,但是还是不够简单直接。本方案使用python 创建一个简单的web容器,只需要将打包后的webgl文件放到文件夹中,就可以在浏览器中通过链接打开这个webgl。在浏览器中输入webgl地址:localhost:8000/UnityHMI,即可运行。安装时,按照如图所示选择,将python添加到环境变量中,一直点击下一步安装。
2023-12-14 09:55:17 588
原创 将在线网站打包为exe程序直接运行
在项目中遇到一个需求,客户希望在电脑上打开他们已经上线的网站不是用浏览器,而是用单独的一个程序。现将解决方案记录如下:本方案采用开源库:nativefier进行打包。当网站背景是mp4视频时,本打包方式也支持浏览。
2023-12-13 12:11:57 1598 2
原创 Unity复制功能-支持Editor-Android-IOS(已用于项目中)
傻瓜式操作不需要额外写代码一键调用注:该包是使用unity2017.2导出如果低版本打开有问题,请使用高于该版本的客户端打开导入后打开图中所示文件,内置使用方法文件下载地址:https://download.csdn.net/download/u010804261/10809702...
2018-11-27 11:40:40 276
SteamVR 离线安装版SteamVR-1.24.7-1671750570(是截止到2023年9月12日的最新版)
2023-12-13
Unity小地图插件最新版 UGUI MiniMap2.5.0
2023-02-02
Curved UI 3.3
2023-02-02
Unity-C#-通过确定随机种子,来获取相同的随机数.txt
2019-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人