
unity3d
文章平均质量分 61
Gipsyz
好人就得让人拿枪指着?
展开
-
批量修改图片资源的属性。
想要修改图片资源属性,但TextureImporter importer 不能获取到对应属性怎么办?我来教你。原创 2025-01-24 16:45:33 · 328 阅读 · 0 评论 -
使用 C# / Unity 进行图像处理
使用 C# / Unity 进行图像处理原创 2022-10-18 20:46:18 · 3008 阅读 · 1 评论 -
C#、Unity中正则表达式 Regex类的使用——最白话,手把手教你做
C#、Unity中正则表达式 Regex类的使用——最白话,手把手教你做原创 2022-09-16 19:33:22 · 2112 阅读 · 0 评论 -
Unity关于Layer的管理
Unity关于Layer的管理原创 2022-07-21 15:49:29 · 3512 阅读 · 0 评论 -
Unity中储存聊天记录——数据本地持久化方案之SQLite数据库
使用SQLite做数据本地持久化存储原创 2022-06-14 20:51:39 · 1614 阅读 · 0 评论 -
Unity3d游戏聊天匹配手机虚拟键盘
Unity3d游戏聊天匹配手机虚拟键盘原创 2022-05-25 17:56:55 · 1287 阅读 · 1 评论 -
关于JetBrainsRider脚本不被添加进项目及手动添加无效的解决方案
问题描述:在使用Rider+Xlua开发的过程的,遇到一个奇怪的问题,一些lua脚本可以被识别到,但是并不包含在项目中,手动Inclode之后在刷新后会重置为不包含的状态。在搜不到任何有用的信息和尝试了各种设置上的调整之后,找不到任何有效的解决方案,然后想到了PC疑难的传统解决方案:重启。因为看起来像是某些设置上出了问题,所以想把设置重置一下,但不巧的是并没找到相关的选项,网上搜也都是告诉你如何设置而不是重置的。解决方案:原创 2022-01-11 19:59:30 · 2176 阅读 · 2 评论 -
关于Unity和XLua的一些常用方法记录
没想到时隔两年又重新开始写Lua了,在又蹭两年经验之后再看之前记录的坑,都又有了新的理解,现在就都再完善一下吧。原来写lua时的记录先完善之前记录的一些问题吧问题1:我明明写了lua脚本却找不到,或者找不到某个lua脚本的方法,调用时显示nil或者不存在等等。原因: 这个主要就是require的用法,其实就是代码切分的一种实现方式,如果你想到找到这个引用某个脚本内的一个方法,首先你要先找到这个脚本的位置。require就是这个找的方法。问题3:找得到lua脚本,调用不了lua方法。原因:lua里原创 2021-08-20 14:00:34 · 526 阅读 · 0 评论 -
关于timer.Elapsed导致执行顺序异常问题
问题描述:在做服务器连接测试的时候,为了检测消息接收和回复,使用了如下代码来定时检测信息。 var timer = new System.Timers.Timer(1000.0 / 20); timer.Elapsed += (object sender, ElapsedEventArgs e) => { if (_socket.Connected) {原创 2021-05-24 17:42:17 · 1069 阅读 · 6 评论 -
关于服务器的一些学习理解
题记:服务器学习也有一段时间了,没有人指点进度还是挺慢的。因为参考的是个成熟的框架,所以学的过程中被一些环环相扣的东西搞得身心俱疲,比如你你在收发数据的时候要使用对应的协议,于是中途去补了Protobuf的使用,然后在链接时需要发存取数据,于是又中途补了数据库mongodb的使用,然后就是相关的有多少,就得中途插入对应东西的学习。所以学了快一个月了,算是略微理解了一些,以下总结一下最近的学习进度。关于进度因为从头学起,就搭配了客户端从登陆开始。然后从数据库取服务器的地址返回给客户端做展示,嗯,就到这里原创 2021-05-17 14:39:20 · 235 阅读 · 0 评论 -
Win10 HttpListener拒绝访问异常解决
问题描述在启动 httpListener.Start();的时候出现[System.Net.HttpListenerException]() :{“拒绝访问。”}的问题。解决方案:以管理员权限运行cmd,输入: netsh http add urlacl url=http://+:7000/ user=Tester注:Tester 即计算机名出现成功添加即可。参考:WIN7中HttpListener拒绝访问异常解决C#...原创 2021-04-19 10:52:52 · 5041 阅读 · 2 评论 -
Unity简单的Socket连接
关于网络连接首次接触Unity网络连接。其实一早就接触各种网络协议的概念了,但都停留在名字上了。没有大佬指点,包括之前了解Protobuf的时候,都是摸索。这导致很长一段时间纠结各种各样的协议,却不能很好的区别和应用了。然后,偶发灵感,从实际应用出发,归根结底来讲,就是服务器和客户端设备互发信息。这么来讲的话就好理解多了。而各种协议就是以不同规则和形式来收发信息而已。比如Tcp是建立连接后才收发信息,服务器和客户端有来有回。而UDP,不需要建立连接,也不需要回应,硬发。个人理解大概这样,算是初窥门径。原创 2021-04-06 18:05:01 · 1059 阅读 · 2 评论 -
关于Unity使用Protobuf
最近学到Scoket数据传输这部分,然后看到一些关于数据传输使用的工具Protobuf。关于Protobuf的介绍五花八门,然后越看越懵。以下是我总结的关于Protobuf的信息。网上比较多的关于Protobuf的插件介绍其实并不是一个东西。其中较多的分为两种一种是原生的Protobuf原生Protobuf链接地址另外一种是基于原生Protobuf的一个库protobuf-net都可以从官方地址的第三方库连接上找到第三方库集合链接地址这就是为什么都标着Protobuf的教程却大不相同的原因。这原创 2021-03-26 18:00:30 · 952 阅读 · 0 评论 -
关于多条件排序。
记录一下关于多条件排序的简单实现方法。class OrderbySample2{ // The element type of the data source. public class Student { public string First { get; set; } public string Last { get; set; } public int ID { get; set; } } public s原创 2021-03-22 14:19:38 · 639 阅读 · 0 评论 -
Unity解决只在inspector面板上中文显示乱码的问题
编辑器版本Unity2020.2VS2019问题描述有时候只想预览一下代码并且避免打开脚本来浪费时间。就在inspector面板上查看一下。正常情况是这样的:但今天却看到有些脚本的中文注释是显示的是乱码但用VS打开就是正常的解决方案:首先判断乱码显示肯定是因为编码格式的问题,但网上的教程都比较老了,有的已经不适用了。所以现在找了个新的方法:可以让你的代码保存的时候都转为UTF-8的格式。以上。...原创 2021-03-12 11:05:35 · 4264 阅读 · 0 评论 -
关于ILRuntime热更框架的Bug总结。
1:引用系统组件的某些方法提示找不到该方法。问题原因:可能由于没有添加对应程序集或者没有代码被裁剪。解决方法:尝试添加组件对应的Unity Dll文件,或者在热更引用然后自动生成bind文件。或者在项目内添加对应link文件的权限防止裁剪。2:关于异步方法在热更工程内无法正常执行。问题原因:可能是ILRuntime不支持嵌套的异步方法。比如嵌套的await或者协成。解决方法:尽量避免出现以上写法,避免在迭代器里使用异步方法。3:一些不能稳定复现的逻辑BUG,空引用问题描述:比如初始化时,ab原创 2021-03-08 10:15:53 · 1519 阅读 · 0 评论 -
基于ILRuntime和Addressable搭建热更框架记录——ILRuntime踩坑记录
前言:原本就想基于新资源管理系统来做热更。现在开始做这个事情,以下会记录一些重要步骤及所踩的坑。Unity版本:2020.1ILRuntime版本:1.6.6接上文:基于ILRuntime和Addressable搭建热更框架记录接入ILRuntime跑通之后现在我们需要热更工程中写代码了。但是我们在使用一些方法的时候没有生效并且报错。这就需要参考一下对应的demo里面的示例了。示例不再介绍,重要的是要搞清楚这些示例是解决什么问题的。委托适配器如果只在热更新的DLL项目中使用的委托,是不需要任何原创 2021-01-16 14:37:08 · 2481 阅读 · 0 评论 -
关于Addressable自动构建Group的测试记录(七)
前文地址:关于Addressable转换AssetBundle热更新测试记录(六)这篇尝试自动构建Addressable的Group。首先确认自动创建的方案。我这边测试的方案为:资源都放在一个总资源文件夹,总资源目录下是不同类型资源的文件夹,不同资源文件夹内是所有对应的资源。然后通过总文件夹得到所有的子文件夹。把子文件夹创建成Group,把子文件夹里的资源加入Group。创建Group的方法 var settings = AddressableAssetSettingsDefaultObje原创 2020-11-28 15:08:28 · 2935 阅读 · 0 评论 -
关于Addressable转换AssetBundle热更新测试记录(六)
前言:本着简单的原则想把ab换成Unity的Addressable。测试一下Addressable的资源生成和管理。最基础的使用方法很多人都写过了,就不重复写了。记录一些在使用过程中的问题和资源状况。Addressable版本:1.16.10Unity版本:2019.3前文地址:关于Addressable转换AssetBundle热更新测试记录(五)这篇就先说一下如何将Addressable来做成和AssetBundle热更新相似的更新流程。首先我们要先了解AssetBundle热更新的流程。原创 2020-11-27 16:09:46 · 2431 阅读 · 2 评论 -
关于Addressable转换AssetBundle热更新测试记录(五)
前言:本着简单的原则想把ab换成Unity的Addressable。测试一下Addressable的资源生成和管理。最基础的使用方法很多人都写过了,就不重复写了。记录一些在使用过程中的问题和资源状况。Addressable版本:1.16.10Unity版本:2019.3前文地址:关于Addressable资源文件测试记录和AssetBundle资源更新对比(四)这篇就测试一些Addressable的Api,看看是否能做成AssetBundle一样的开始更新全部内容的效果。会优先测试一些别人给出的参原创 2020-11-26 20:21:36 · 2357 阅读 · 1 评论 -
关于Addressable资源文件测试记录和AssetBundle资源更新对比(四)
前言:本着简单的原则想把ab换成Unity的Addressable。测试一下Addressable的资源生成和管理。最基础的使用方法很多人都写过了,就不重复写了。记录一些在使用过程中的问题和资源状况。Addressable版本:1.16.10Unity版本:2019.3前文地址:关于Addressable资源文件测试记录(三)第二次Build,静态Group资源更新关于Group的配置参考前一篇的配置。我把项目还原之第一次打包的绿色树场景。看过配置的应该发现,绿色的树是动态Group的资源。原创 2020-11-25 18:50:13 · 2451 阅读 · 0 评论 -
关于Addressable资源文件测试记录(三)
前言:本着简单的原则想把ab换成Unity的Addressable。测试一下Addressable的资源生成和管理。最基础的使用方法很多人都写过了,就不重复写了。记录一些在使用过程中的问题和资源状况。Addressable版本:1.16.10Unity版本:2019.3前文地址:关于Addressable资源文件测试记录(二)第二次Build更新资源先分别说明一下我Group的配置。静态资源——Cant Change Post Release—— 走本地打包本地加载动态资源——Can C原创 2020-11-25 12:16:37 · 1801 阅读 · 0 评论 -
关于Addressable资源文件测试记录(二)
前言:本着简单的原则想把ab换成Unity的Addressable。测试一下Addressable的资源生成和管理。最基础的使用方法很多人都写过了,就不重复写了。记录一些在使用过程中的问题和资源状况。Addressable版本:1.16.10Unity版本:2019.3前文地址:关于Addressable资源文件测试记录(一)首先要讲一个关于Addressable的配置。BuildPath 和LoadPath。上一篇讲述的BuildPath 和LoadPath都是关于Group的配置。那么这个原创 2020-11-24 20:30:36 · 1517 阅读 · 0 评论 -
关于Addressable资源文件测试记录(一)
前言:本着简单的原则想把ab换成Unity的Addressable。测试一下Addressable的资源生成和管理。最基础的使用方法很多人都写过了,就不重复写了。记录一些在使用过程中的问题和资源状况。Addressable版本:1.16.10Unity版本:2019.3首次Build资源静态资源 (红标位置)和本地目录和本地加载位置(绿标位置)生成资源如下:动态资源 (红标位置)和本地目录和本地加载位置(绿标位置)生成资源如下:资源首次打包小结:1:BuildPath和LoadPa原创 2020-11-24 17:29:28 · 2025 阅读 · 0 评论 -
记录一下使用 ilruntime和StripEngineCode导致一些功能不生效的问题
前言使用ilruntime热更新框架做2D游戏,在编辑器里可以正常运行,但在真机上却无法检测到CapsuleCollider2D的碰撞。填坑本来不太明白原因,对比了项目里生成的bind文件。发现bind的CircleCollider2D碰撞是生效的。绿色标记的原有的,红色的是我新增的。问题得到解决。CapsuleCollider2D的碰撞开始生效了。扩展根据其他大佬对clr绑定的描述,clr绑定有两个作用:防止热更层用到的框架层代码被裁减, 以及 加速热更代码的执行。为什么会被裁减呢?因为U原创 2020-10-16 20:34:03 · 715 阅读 · 0 评论 -
最简解决 Unity Error Registry configuration is invalid Unable to connect https packages.unity.cn
前言在学习其他大佬项目的时候,大佬说项目能直接运行,然后我拉下来就报如下错误Unity报错:[Package Manager]Error Registry configuration is invalid:Unable to connect “https://packages.unity.cn”翻了很多博发现是 unity3d 中国增强版的原因,中国增强版屏蔽了国外自定义的插件仓库。 安装 非中国增强版后可以成功打开。然后大家给出的解决方案都比较激进,大抵就是更换Unity版本就OK了。当然我是觉原创 2020-08-07 18:34:32 · 6306 阅读 · 6 评论 -
Unity3d实现阿拉伯语适配,不规则特殊字符的处理。
前言最近做了阿拉伯语的语言适配。记录一些比较麻烦的点。其实我也没太明白具体和其他语言有什么不同,唯一听懂的就是他们的语序是从右往左的(比如“你好!”,他们的阅读顺序是“!好你”)大概是这样子,具体原理也有很多大神在解释。但可能我没天赋,看的懵懵懂懂索性不去过分理解了。直接用按大神分享的插件就好了。插件用了前辈们都推荐的插件Arabic Support for Unity,免费的。没什么可说的。就一句调用代码,demo里面都有。AssetStore插件地址使用&问题这个插件能满足一般的翻译原创 2020-07-29 19:16:11 · 3506 阅读 · 13 评论 -
关于行为树(Behavior Tree)的理解。
前言最近看到项目里有个行为树编辑器,然后就顺道看看这是个什么东西。然后看到挺多写行为树的都是关于Behavior Designer这个Unity插件的。而关于行为树(Behavior Tree)这个东西的描述就有点抽象。但为了搞清楚什么是行为树。然后我就下载了几个手写的行为树源码,比对下来也各有不同。感觉写的对我比较有帮助的是这个 点击跳转。以下都是我对这些源码测试后对这个行为树的理解。我只说比较概念化的东西帮助理解。行为树简介行为树是一个包含逻辑节点和行为节点的树结构,每次需要找出一个行为的时候,原创 2020-07-21 14:50:55 · 1910 阅读 · 0 评论 -
解决Unity2019打包,提示 SDK Tools version 0.0.0 < 26.1.1
编辑器版本Unity2019.2.21f1AndroudStudio4.0问题描述之前用的Unity2018,没用UnityHub,然后版本升级到2019.2.21f1。官网下载的安装包装的,自己配置的androidsdk路径。然后今天打包就报了这个错误。然后直接打空包也会报这个错误。填坑过程然后先确认我装的有Sdktools并且配置无误感觉可能是安卓Sdktools版本太高了所以Unity不能识别,于是找了一个低版本的sdktools,但没想到是25.2.5的版本。然后我替换了版本。如原创 2020-07-18 15:55:18 · 16980 阅读 · 8 评论 -
Unity实现多语言的转换。
这个应该属于撸一个适合自己的小游戏框架的第六篇。上一篇是Unity读写Excel表格及 C#反射的简单理解。实现多语言转化其实也是很常用的功能。尤其是做海外版本的,可能还要涉及多国语言。这里就介绍一个简单的实现方案。通过配置表格来实现多语言切换。直接上脚本吧。脚本1:脚本出现时替换成对应ID的脚本。public class LabelLocal : MonoBehaviour { //挂载在需要转换的文字组件上,填写对应ID。 public int languageId;原创 2020-06-27 16:04:18 · 2677 阅读 · 1 评论 -
Unity 接入Facebook SDK——最白话,手把手教你做系列
最近需要用到facebook登录,分享,邀请和获取好友列表功能。于是就开始踩坑之旅。当然,功能也是站在巨人肩膀上的,我参考的这篇。链接 ,这篇主要是在原文基础上补充一些新坑。因为FacebookSdk在不断更新,所以也有了很多新的问题。好了,开始正文。Unity版本环境。Unity2018.2.4。 FacebookSdk版本:facebook-unity-sdk-7.15.1问题1:...原创 2020-03-14 20:27:08 · 7766 阅读 · 1 评论 -
Unity读写Excel表格及 C#反射的简单理解。
这个应该属于撸一个适合自己的小游戏框架的第四篇。上一篇是关于Unity中的C#构造函数与this关键词的使用。这里在写游戏配置表的功能的时候遇到的问题。感觉很简单的逻辑写了很长的时间,等下再吐槽吧。关于读写Excel表格游戏配数据有很多种,这里写excel呢,是因为我这个略微熟悉一些。关于Excel读取。读取网上有很多方法,都能达到效果。不再赘述。吐槽一点:几乎所有的教程都告诉你要用到E...原创 2020-01-20 21:19:29 · 2026 阅读 · 0 评论 -
关于Unity中的C#构造函数与this关键词的使用。
这个应该属于撸一个适合自己的小游戏框架的第四篇。上一篇是Unity网格合并,Matrix4x4,和InverseTransformPoint的简单理解。这里在写小框架的对象池的时候。参考其他人代码的时候看到了这样的代码public class SpawnPool { private string _goName = string.Empty; //Pool中当...原创 2020-01-19 12:22:49 · 3221 阅读 · 0 评论 -
Unity网格合并,Matrix4x4,和InverseTransformPoint的简单理解
这个应该属于撸一个适合自己的小游戏框架的第三篇。上一篇是Unity中的颜色转换,让Log信息更炫酷。然后今天整理了一个之前copy的网格合并的代码。网格合并就是把多个分散物体(单个物体有单个mesh)组成的物体,合并一下,用一个mesh就能显示出来。来达到优化性能的效果 ,这个很多人写过。直接贴代码了。using System.Collections;using System.Colle...原创 2020-01-10 16:09:13 · 898 阅读 · 0 评论 -
Unity调用IOS的方法,顺便科普一下简单OC代码——最白话,手把手教你做系列。
原因:要用Unity接入一些IOS原生的SDK之类的东西。合作开发就是这样,突然就会有这种莫名其妙对接的时候,然后让人措手不及。而且现在身边也没有一个搞IOS原生的大佬。于是只是抱着C#语法硬撸了。1,导出Xcode工程这个相信打过IOS包的都不陌生。选IOS环境,Build,然后就是一个Xcode工程了。2,如何交互网上说了很多方法,五花八门。但我是对OC语言一窍不通的,因为语法和C,...原创 2019-12-31 21:35:02 · 1821 阅读 · 0 评论 -
Unity中的颜色转换,让Log信息更炫酷,在屏幕上打印——最白话,手把手教你做系列。
这个应该属于撸一个适合自己的小游戏框架的第二篇。上一篇是Ui脚本自动生成。在完成Ui自动生成后,想到了一个问题。就是log信息的显示,因为log是开发中的重要部分。所以就准备重新整理一下适合自己的log信息部分。需求1:编辑环境Log信息打开,正式版本log信息关闭。因为log信息也是程序执行的一部分,大量log信息也会消耗性能。然后很简单解决。正式发包前,在脚本中添加 Debug.uni...原创 2019-12-27 18:54:17 · 1115 阅读 · 0 评论 -
C#获取目录下所有文件的列表——最白话,手把手教你做系列。
最近,在试着做一个Unity自动生成Ui的功能。理论比较简单,通过拼接字符串生成脚本,都是Ok的,但为了更方便,就想顺便把文件路径也自动生成一下。即获取某个目录下所有预制体的文件目录。于是就需要一个如题所示的方法。代码如下: string prefabDir = "Assets/Resources/MyUI/View/"; DirectoryInfo direction ...原创 2019-12-26 16:59:51 · 2464 阅读 · 0 评论 -
在正方体的某一个面上随机一个点——最白话,手把手教你做系列。
问题需求其实就是某个物体在随机运动,如果运动到正方形的某个面的上方的话,就在这个面上随机出来一个点降落下去。解决方案步骤1:物体向六个方向发射射线检测正方体位置。射线检测,很简单,一句代码就不说了。步骤2:确定物体下方所在正方体相对应的面(即获得在该面的四个坐标)。 //通过Boxcollider获取正方体实际八个顶点 Vector3[] GetBoxColliderVert...原创 2019-10-21 21:33:18 · 1054 阅读 · 0 评论 -
Unity热更新—— 初学Lua踩坑记录
以下内容适合有一定代码基础但对lua完全小白,第一次写lua代码的开发者。背景一直使用C#开发Unity项目,然而最近项目需求要热更新,解决方案就是逻辑使用Lua写,大佬已经搭好了框架,我们需要配合框架写功能。框架使用的是LuaFramework,框架和搭建方法可自行百度,这里不过多描述。不同框架的实现原理大概一致,实现方法上有差异而已。然后使用lua的过程中就产生一些问题。这里的话只记...原创 2019-10-19 17:33:23 · 851 阅读 · 0 评论 -
Unity世界坐标转屏幕坐标等关系——最白话,手把手教你做系列。
遇到问题通过一个世界坐标,在屏幕对应位置生成Ui。记录原因在没遇到这个问题之前也听过类似的需求,想法也很简单,就是有个方法Camera.main.WorldToScreenPoint();世界坐标转屏幕坐标,然后克隆物体并赋值。如图示方法然而,在实际操作的时候却发现,无论怎么操作,都无法达到所需要的效果。这就让我对自己的云代码能力产生了怀疑。之后我通过对比输出的屏幕坐标和我需要显示的物...原创 2019-10-17 21:06:11 · 2286 阅读 · 0 评论