- 博客(49)
- 收藏
- 关注
原创 【VM实战】VMware迁移到VirtualBox
对于Windows 10及以上的虚拟机,一般VMware默认都会选Nvme固态硬盘。在导出前必须将其改为SATA,否则VirtualBox导入会报Appliance Import错误 (E_INVALIDARG 0x80070057)
2024-10-31 20:22:13 279
原创 【Unity实战】SO反序列化正确姿势
这里使用了JsonUtility,这是Unity自带的Json序列化、反序列化库,对SO有特殊的处理。如果之前用的是Newtonsoft,可以写个自定义的JsonConverter,然后用JsonUtility去覆盖新建出来的SO实例。有同志问为什么不用之前的泛型而是指定具体的类型,主要是CreateInstance不能和泛型使用,编译不会通过,看似没有泛型相关的实现。So emm,如果读者有泛型的实现方法,欢迎评论区留言,感激不尽。很明显,Unity不推荐使用new来弄一个实例。
2024-09-15 19:23:18 547
原创 【IIS实战】ERR_SSL_KEY_USAGE_INCOMPATIBLE
完成后,去IIS管理器,找到站点,右键编辑绑定,修改HTTPS项。(IE:我能打开( •̀ ω •́ )y)解决方法只有一个——重新手动生成证书。完事大吉,打开浏览器测一下就可以了。找到你刚刚生成的证书,单击确定。
2024-09-09 22:21:03 526
原创 【Unity实战】Visual Studio Debug失败
Visual Studio,就像以前Eclipse在Java领域中的地位一样,至少在Jetbrains人人皆爱之前,它是主流。而且开大工程来说,至少Visual Studio能保证打开能用,尤其是对于低配机器,还真不能离开它。理论上应该没问题了,但如果还是有问题,尝试重启Unity和IDE,然后顺带排查一下Visual Studio里的启动工程。如果你遇到点Attach to Unity,只有构建成功,但没有进调试,多半是sln解决方案文件出了问题。回到Unity编辑器,进Preferences。
2024-09-01 20:52:04 501
原创 【Unity实战】如何时刻让子弹保持正确朝向
看似没什么问题,但有的时候会感觉朝向有些偏移,命中率不高。这种情况一般都是跟父级物体的rotation、轴向有些关系,尤其是我们在做人物IK瞄准、动画的时候。如果要做到接近指哪打哪的程度,我们可以在做射线检测之前做如下调整,这个调整建议放在子弹Instantiate那块,把子弹的rotation给调整一下。区别在于我们不完全依赖于枪口的旋转,我们会将瞄准的点和枪口位置相减,算出来以枪口为参考系的朝向。在做射击游戏的时候(尤其是第三人称越肩),我们可能会用Raycast去做面向前方的射线检测。
2024-08-31 15:41:14 722
原创 【Unity实战】NavMeshAgent实现Strafe固定朝向移动
众所周知,NavMeshAgent一旦设定了destination,它就会直奔目标。但是在一些场景中,比如NPC是个射手,除了瞄准玩家,也需要走位。如果不加以处理,我们恐怕会遇见瞄准IK和朝向…难以言表的表现
2024-08-18 00:00:49 1129 2
原创 [Unity实战]Mirror网络与Addressable场景管理
很遗憾,Mirror包括UNET的场景管理不支持Addressables。我做手机游戏,需要实现服务器广播场景切换,但主程序没有场景,热更代码和资源都在AB包里。我已经在Google上搜索了一段时间,没有找到有用的解决方案。Reddit上的某人建议使用Fishnet,它支持Addressables。但这在项目进行到一半的时候是不可能的。所以我自己动手开始改NetworkManager。后来考虑了一下,寻思抽出来做一个demo开源,真的希望能帮助/启发那些也在找解决办法苦苦挣扎的人。
2024-08-06 23:52:16 538 3
原创 【Unity实战】给Unity的类添加新功能
有时候我们希望给Unity中的一些类(比如Transform、GameObject)添加一些新的功能,但是又不想修改原始的类。这时候我们可以使用扩展方法来实现这个需求。
2024-08-02 22:20:22 476
原创 【Unity实战】yield return null还是WaitForEndOfFrame
yield return null会在下一帧继续执行,用于在每一帧之间进行操作。yield return new WaitForEndOfFrame()会等待当前帧渲染完成后再执行,用于在渲染操作完成后执行特定操作。
2024-07-24 22:06:04 965
原创 【Windows实用技巧】Winget包管理
假设你的Windows一直使用的是经典管理员账号并且默认自动提权,你会注意到你的Visual Studio Code不会为你自动更新。时间长了,你会发现你的设置因为VSCode版本过低无法同步。我们也不可能卸掉重新安装,那么有没有什么办法能够避免这个命运?其实微软有出过Winget包管理器。
2024-06-26 08:15:26 465
原创 【Unity实战】Mirror/UNET中SyncVar和SyncList需要注意的点
SyncVar和SyncList在Unity开发中喜闻乐见,常用于脚本中字段的同步。但也时常会出现修改了但是没同步的问题。
2024-05-25 11:13:25 590
原创 【Unity实战|热更】Addressable读取SO文件报错解决
假定你有一个Unity工程,使用了HybridCLR和Addressable,SO文件存放在Addressable中。
2024-05-08 18:26:40 819
原创 【Unity实战】值得关注的Addressable新特性
如果您是最近起的Unity项目且有用到Addressable作为内容管理,你可能需要注意一下1.21.15版本的变化
2024-04-23 21:14:16 608 6
原创 【小贴士|Unity】华佗热更版本控制配置
现在越来越多的新项目选择使用HybridCLR,而不是以前的Lua。也不妨有的项目会配置打包机器人以及版本控制,但是这个版本控制的配置还真需要注意一些。
2024-04-15 15:07:57 871
原创 【C#实战】实现一个服务等待另一个服务的启动
在某些情况下,我们可能需要在一个服务启动之后再启动另一个服务。这种情况下,我们可以使用`SemaphoreSlim`作为等待条件。在本文中,我将介绍如何实现一个服务等待另一个服务的启动。
2024-04-02 23:55:03 417
转载 【英文转载|ASP.NET】Transient、Scoped、Singleton区别
【转载|ASP.NET】Transient、Scoped、Singleton区别。
2024-03-11 10:16:04 130
原创 [Unity实战]使用NavMeshAgent做玩家移动
使用NavMeshAgent做角色控制器的好处是能避免玩家去莫名其妙的地方(毕竟基于烘焙过的导航网格),一般常见于元宇宙应用和mmo。
2024-03-07 22:22:11 1589
原创 【NUC】显卡坞掉驱动/设备解决
之前用的一直是神州网信win10的系统,经由雷电4接了一个GTX1060 3GB的显卡,后来系统盘固态挂了,做了个win11,结果跑Unity、跑简单的VR/XR出现了GPU device lost, Fatal D3D Error等莫名其妙的掉驱动问题。这在之前win10是没有遇到过的。
2024-02-12 23:29:00 1477
原创 【Unity/C#实战】时间戳
时间戳在计算机科学和游戏设计中有着重要的意义。它是记录和比较时间的一种标准方式,经常用在网游的营销活动等,通过比较时间戳,可以确定是否在活动时间范围内诸如此类。一般来说它是一个long类型的数据。可能也会有同志问了,long和ulong它俩区别一个有符号,一个无符号,难道说时间戳还能是负数?是的,因为做的是减法,看下面原理。在C#中,时间戳通常是以Unix时间戳的形式存在,它是指从格林威治时间1970年1月1日00:00:00起至指定时间点的总秒数。
2024-01-29 00:31:06 692
原创 【Unity实战】Jenkins与自定义命令行参数
Unity是一款功能强大的游戏开发引擎,它提供了许多方便开发者使用的功能和工具。其中一个非常有用的功能是Unity命令行参数。通过使用命令行参数,开发者可以在启动Unity时自定义一些行为和设置,从而更好地管理和调试项目。使用Unity命令行参数的好处是,它可以帮助开发者更好地管理和调试项目。通过在命令行中指定参数,我们可以自动化一些常见的任务,例如构建项目、执行测试、导出资源等。这不仅可以提高开发效率,还可以减少人为错误的发生。
2024-01-15 16:37:01 1266
原创 【Unity实战】绕开ToggleGroup默认选中首项的行为
有些东西,手册上不会讲的。我一直建议身边的同事、志同道合的网友要多探索、多做实验,不要死磕教程视频等,否则会陷入Tutorial Hell。换句话说就是脱离教程你啥都不是。如题,今天就碰上了这样的需求。
2024-01-10 01:34:24 952
原创 【Unity实战】Jenkins打包机联调脚本
这个脚本是一个用于在Jenkins中构建Unity项目的辅助工具。它的主要功能是构建HybridCLR热更新,并将生成的DLL文件和AOT元数据DLL文件复制到指定的目录,并将它们添加到Unity的Addressable Assets系统中。如果您还不知道Jenkins和HybridCLR的话,建议先阅读一下往期博客和相关官方文档。
2024-01-07 17:26:37 1392
原创 【Unity实战】HybridCLR热更快速集成
本文假设你已经通过UPM导入了HybridCLR、Addressables、il2cpp支持并具有一定的C#基础和Unity编辑器操作能力。
2023-12-28 15:44:59 3112
原创 【Unity实战】WebGL读取本机硬盘上的文件
本文假设你要在Unity做一个头像上传的功能,这里我提供一个通过Unity和JavaScript实现的方法。
2023-12-26 21:52:28 1107 15
原创 【Unity实战】卸载git lfs
git lfs的确好用,对于美术资源还是比较友好。但是用不好,则如同寄生虫一样,挥之不去。这里介绍一种补救的方法来拯救你的repo
2023-12-16 23:03:35 716
原创 【Unity技巧】interface接口使用
interface在Unity游戏开发中也是一个改变游戏规则的因素。假设你想将ChatGPT(或其他GPT)集成到你的项目中。所以你将编写一个脚本,使用UnityWebRequest发送符合其API要求的POST请求并获取结果。但有一天,ChatGPT在你所在地区不再可用,你找到了另一种使用不同API要求的替代方案。如果没有interface,你将不得不重写许多与GPT交互的脚本(甚至UI的脚本得大改)。别担心,interface可以帮助你适应这些重大变化。
2023-12-10 14:26:59 871
原创 【Unity实战】RectTransform宽高自适应
假设你做了一个ScrollView,Content下要做一个消息气泡,消息气泡本身就是一个GameObject,里头有一个Text组件,Anchor为(0.5, 1.0),组件上挂好了Content Size Fitter做纵向自适应。然而消息气泡不能挂Content Size Fitter,因为ScrollView的Content本身就有Content Size Fitter做自适应和LayoutGroup做排版,故用代码做消息气泡的自适应。
2023-12-05 21:35:12 602
原创 Unity与Jenkins打包机实战
Jenkins是一个开源的持续集成工具,用人话来说就是。一般常见于公司项目用于持续交付。可能有个人开发者对打包机很陌生或者不是很在意(比如在写这篇文章之前的我),项目小,本机写完本机打,甚至能边写边打,也没觉得怎么样。直到后来打包卡电脑没法做其他事情的时候,是时候单拎出来个电脑做个打包机了,要不耽误事情。
2023-11-23 15:15:51 803
原创 常用JWT注册声明
JWT是一种用于在网络应用间传递声明的开放标准。在这个命名空间中,定义了一系列已注册的声明名称,这些名称在不同的标准中被使用。每个常量字段代表一个已注册的声明名称,例如"Aud"代表"aud"(JWT中的"Audience")。
2023-11-10 11:00:11 156
原创 使用partial修饰符让脚本和协作变得简洁明了
以前写Unity的网络脚本,一般都会用region进行区域划分,好方便折叠和阅读,然而后来需要考虑到无头的服务端,需要做些无头的处理,脚本显得非常臃肿。如果读者有了解过UNET和Mirror的NetworkManager,那里面客户端和服务端callback都在一起。如果项目还用到git,如果前后端开发人员都在修改这个脚本,很难不会有冲突和滞后。所以有没有办法既能方便阅读而且把冲突、滞后概率降低?有的,那就是partial。
2023-10-27 12:40:33 105
原创 Apache反向代理Nextcloud实战
自更换移动宽带,无公网IP苦不堪言,还好有云服务器,寻思借用云服务器的公网IP完成云服务器到家里NUC主机上的Nextcloud安装的访问。这里,笔者假定读者已经正确安装Nextcloud,且启用了SSL证书,系统为RHEL,网页服务器为Apache。
2023-10-20 14:45:19 539
原创 【Unity】get set引起的安卓下Json反序列化错误
今天一同事用Newtonsoft.Json解析Addressable里存放的角色服装Json文件,结果一直报键值相同的错误。Editor下一切正常,然而打到安卓上就不行了。解析出来的List数目都对的上,然而里面的数据都是空的或者默认值。
2023-10-18 23:24:31 132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人