
Unity 3D
文章平均质量分 63
以实际项目为线索,主要记录项目中遇到的有趣问题,以及冷门的技术实现。
辰似五味
信众人则泯然众人,疑众人则孑然一身
展开
-
Unity3D模型 | SolidWorks建模导入Unity
SolidWorks建模导入Unity前言使用的版本SolidWorks导入3DMax3DMax导入Unity结尾前言本篇主要作为个人经验记录,因项目需要将SW的模型导入Unity中使用,但SW中建模为实体而Unity多为面,以及在Unity支持的模型文件格式文档中并不支持SW的文件格式。所以需要先将模型导入3DMax中由其转换为.FBX或.3ds文件,其中二者的区别为FBX文件可以对源模型改动并同步至Unity中,但同时这样的方式很占空间。使用的版本SolidWorks 20193DMax 2原创 2022-02-12 15:18:48 · 13467 阅读 · 0 评论 -
Unity3D组件 | Excel导出
Unity3D导出Excel表格前言代码部分结论前言这篇文章实现的是根据一个Excel模板让软件自动导出表格。本次使用EPPlus.dll这个动态链接库,这个库中有OfficeOpenXml类库,使用其中函数即可实现从Unity3D中调用Excel。代码部分using OfficeOpenXml;//添加这两个类库using OfficeOpenXml.Style;public void Set_Up_Report(DateTime dt, DateTime dt1) {原创 2022-01-30 16:14:01 · 3154 阅读 · 0 评论 -
Unity 导出的EXE文件关闭时卡死崩溃
Unity 导出的EXE文件关闭时崩溃前言项目分析情况解决方法一结论前言这个问题出现在Unity导出的可执行文件发生在需要关闭应用程序时无法正常关闭,只能从任务管理器中直接杀死进程,虽然这一步的目的是关闭程序但无法走正常途径就很奇怪。期间的Bug表现为使用Profile分析并没有内存爆满的情况,使用WinDbg分析后发现报错为0xC000005(这个的形成原因很复杂)所以本人这里并无法判断错误出现在哪里。项目分析情况这个项目是在Unity使用海康威视的SDK,当应用程序调用过实时预览再关闭就会出现无原创 2022-01-21 20:36:02 · 4509 阅读 · 0 评论 -
Unity3D组件 | 绘制比较柱状图
在Unity3D中绘制柱状图前言前期准备脚本代码修改定义对list进行填充填充结语前言上篇是绘制静态柱状图,这篇是将柱状图中最大值作为1。其他值根据与最大值的比例进行绘制。前期准备同Unity3D组件 | 绘制静态柱状图,这篇是从下向上填充柱状图。如果柱状图方向为从左向右,则需将锚点预设在左侧。右侧的99.99|99.99将最大值和当前设备实际值进行显示。脚本代码修改定义//在脚本开头使用gameobject定义//或者可以通过Using UnityEngine.UI;定义image类型原创 2022-01-16 15:05:46 · 2547 阅读 · 0 评论 -
Unity3D组件 | 绘制静态柱状图
在Unity3D中绘制柱状图前言准备工作脚本代码修改定义类型初始化及填充循环方式结语前言Unity中并没有直接的柱状图绘制方式,但我们可以用改变图像的矩阵变换中参数的值来达到一种静态柱状图的效果。准备工作首先将柱状图能显示的最大值放置在Canvas中。我这里做的是两值的比较,红色柱为速度,蓝色柱为压力,横轴是时间。柱的高度为80对应速度最大值为10m/s,压力最大值为4000N。首先,为了之后方便计算,将柱(image)的矩阵变换参数中的锚点设为下。如下图这样之后,可以通过代码修改Imag原创 2022-01-16 14:38:05 · 2467 阅读 · 2 评论 -
西门子PLC与Unity3D通讯丨串口通讯
串口通讯前言通讯协议代码部分引用文件的准备数据类型的声明写接收数据函数DataReceiveFunction()写打开串口函数OpenPort()关闭串口ClosePort()发送数据WriteData(byte[] bys)对于PLC端参考自由口协议向上方式即可,未来遇到什么古怪问题会持续更新。前言U3D和plc或者是单片机等其他软件的串口通讯脚本就是需要在上位机写一个串口服务程序,可以实现开启串口、关闭串口、接收、发送这四块基本内容即可,对于有数据处理的朋友可以再开一个线程专门用来数据处理。这篇原创 2021-12-30 20:17:34 · 7297 阅读 · 3 评论 -
西门子PLC与Unity3D通讯丨PROFINET通讯
Unity 与西门子PLC通讯前言通讯协议通讯建立的细节期间遇到的两个主要问题总结前言想做这样的通讯太久了,从21年二月份陆陆续续到十一月份才正式做好,最开始想西门子1200系列与unity如果可以进行通讯,那么很多实验都可以做到虚拟仿真,未来做上位机的界面也会比传统的更丰富些。如今工控行业与IT行业密不可分,相似度也越来越高,零零散散试了几个通讯方式,最后还是在老师的帮助下找到了最为妥帖的通讯方式。== 特别要说明的一点是,下文所介绍的通讯方式仅在本人的计算机上调试成功,如果遇到特殊情况请特殊处理,原创 2021-11-04 14:37:55 · 19160 阅读 · 35 评论 -
Unity 串口接收的报文不完整?处理方式在这
Unity 串口通讯接收完整报文并处理串口通讯Read()函数的处理解决问题的过程对Read()函数的应用弊端结束串口通讯Unity 中的串口通讯和C#的处理方式基本一致,Serial.Read(); 可以读取缓存区中的十六进制数Serial.ReadLine();可以以字符串的方式读取Read()函数的处理但是Read()函数有一个大坑,就是他不是一次性全读取,而是将缓存区中的数据分多次(一般是两次)读取,这个情况的产生不是因为对方以两次发送过来,而是一次发送过来会放在缓存区,通过R原创 2021-10-26 14:30:32 · 2451 阅读 · 0 评论 -
Unity 对GPU的基础性能优化
Unity GPU 性能优化遇到的问题分析工具解决方法1.不在代码层面的优化方法2.部分在代码层面进行优化特别说明遇到的问题因为项目中采用的主机为工控机,不带有独立显卡,CPU采用的是i7-8750H,集显型号620在运行中GPU长期处于高占用、高功耗运行。分析工具Unity自带的Profiler(虽然有很大误差,但只是作为分析帧数和卡顿脚本的话是够用的)。windows的任务管理器,在性能中可以看到大致的占用率。解决方法1.不在代码层面的优化方法上图中右侧为对系统启动环境的设置,原创 2021-10-19 18:38:46 · 7937 阅读 · 1 评论 -
unity生成的exe文件点了却没反应?(其中一类解决方案,希望大家可以一起来完善)
unity生成的exe文件点了却没反应?问题的描述、形成原因及三种处理方式问题描述一、分辨率太低二、QQprotect(即Q盾程序)三、“以管理员身份运行”(目前没找到问题原因但确实对问题有用)结尾问题的描述、形成原因及三种处理方式问题描述笔者近期遇到了unity生成的exe文件点了却没反应或运行一会就启动UnityCrashHandler64.exe进行拦截。奇怪的是在别人电脑没有这样的情况但在Unity的OutPut_Log.txt也未找到错误原因。从网上找到的结果大概有一、分辨率太低窗口原创 2021-08-05 20:44:48 · 13231 阅读 · 1 评论 -
怎样精准定位并解决Unity中出现两台电脑显示状况不同的问题
解决Unity中出现两台电脑显示状况不同的问题问题表述问题的图示程序功能解决思路代码出错?Modbus通讯出错?TCP/IP通讯协议出错?数据库访问出错?ini配置文件出错?结尾问题表述在做工程中,我这里出现了我的电脑显示状态和别人电脑显示状态不同问题的图示状况如下两张图程序功能如上面两张图,需要做的功能是有信号过来是展示一个类似电缆经过的Shader,判断条件如下面的代码图片开始进行判断后,根据XIA_Index的数量进行判断并显示不一样的速度、程度等变量。其中用到的有ini配置文件、M原创 2021-08-03 22:36:15 · 908 阅读 · 2 评论 -
关于UNITY中System.Drawing引用失败的处理方法
关于UNITY中System.Drawing引用失败的处理方法今天在使用EPPlus中,遇到一个处于This type has been forwarded to assembly ‘System.Drawing,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a’ .You must add a reference to assembly ‘System.Drawing, Version=2.0.0.0, Culture=原创 2021-07-02 22:48:41 · 3222 阅读 · 4 评论 -
UNITY改变数据库导出时间的时间间隔
UNITY改变数据库导出时间的时间间隔用C#将数据库中时间列改变分布间隔并导入Unity的UGUI下拉列表代码展示实现效果结语用C#将数据库中时间列改变分布间隔并导入Unity的UGUI下拉列表在数据库中是以五秒为间隔写入的,应甲方要求需要对数据库数据进行十分钟一整合,并导出为Excel表格,对时间的选择就不知道怎么写合适下面,是我按我的笨方法来的。代码展示Start_Time.ClearOptions();//清空下拉列表选项End_Time.ClearOptions();sql = "原创 2021-07-01 23:02:50 · 494 阅读 · 0 评论 -
UNITY 编辑器或游戏卡死
解决问题后的记录UNITY 播放卡死1、检查脚本引用是否有误2、定向关闭主要的脚本,找到可能出问题的脚本,检查其Update中有没有陷入死循环的代码原创 2021-05-31 14:23:31 · 2994 阅读 · 0 评论