自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不文不武的禾文

我写的目的,主要是怕我忘记,我曾经犯过的错误......

  • 博客(116)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 unity中meta文件GUID异常问题

6、在正常的工程中修改meta文件上传之后,异常的工程中不能正确将该文件下载下来。2、svn上没有差异,不能更新也提交不上去,删除重新更新也不对。4、该文件在unity的project面板中不能直接搜索出来。1、GUID异常之后直接编辑meta文件显示异常。3、相同svn路径,其他电脑更新下来没有异常。5、删除meta文件重新生成表现正常。

2023-10-31 16:15:14 506 1

原创 Unity2021.3.19.f1 创建工程报错

可能是因为安装Unity时弹出360,将某些需要下载的文件阻挡了。查看未报错电脑安装的manifest比较没有发现异常;新安装的Unity在创建工程、打开老工程时报错,网上找了一圈,没有找到关于Unity的解决方案;重装Unity一切正常。

2023-09-06 22:27:53 657

原创 使用Wps减小PDF文件的大小

第一步、打开左上角的文件。第二步、点击打印选项。第三步、点击打印按钮。

2023-07-28 16:14:25 1198

原创 【UGUI基础】Toggle Group组件

如果Toggle Group组件Allow Switch Off为false,而所有Toggle组件isOn属性为false,运行代码后再获取Toggle组件设置第一个Toggle的isOn属性为true时,不会执行onValueChanged监听的事件。当为false时,如果Group下所有Toggle的isOn同时为false,则将第一个Toggle的isOn设置为true。Group:做单选时需要添加Toggle Group组件,多个Toggle组件只有一个的isOn属性能被设置为true。

2023-07-25 15:08:30 373

原创 【Unity组件扩展】减少Image的渲染

需要实现透明遮罩功能,如点击任意关闭界面、透明遮挡不让点击等,一般可以添加Image组件,然后将alpha值设置为0。不过,在Unity2018.4.3.6f1及之前的老版本中,这样的做法会增加DC和增加overdraw。但是在2021.3.19f1中,已经优化这个问题,将Image的alpha值设置为0后,不会增加DC和overdraw。可以继承Graphic重写OnPopulateMesh方法来减少这个方面的性能消耗。

2023-07-25 11:20:34 280

原创 【Unity编辑器扩展实践】升级Unity2021版本后新加图片打图集异常

问题: Unity2018升级到Unity2021,打图集时新增图片的internalID为0(图1),左边是未修改之前的meta文件信息。导致将图片推拽到预制之后,预制没有正确保存图片信息(图2),游戏运行后加载预制图片为空。修改思路:因为未找到InternalID为0的具体原因,所以在准备修改该internalID。在图集数据生成之后,遍历Sprite的InternalID,如果为0,用SpriteID生成一个InternalID。然后重新分离图集,即可修改InternalID为0的值。

2023-04-10 11:47:33 781 1

原创 接入穿山甲SDK时,Unity打Android包报错日志

SDK工程设置为Enable,项目工程设置为Disable。2、将unitypackage导入包名为:com.DefaultCompany.Myproject的另一个工程,打包报错。3、点击工程默认弹出Enable Android Auto-resolution 设置选项,点击Enable。1、新建一个空工程,设置包名为:com.ceshi.hewen,正常打包无报错,导出unitypackage。2、点击Reset to Defaults 重置参数,再点击ok关闭设置窗口。

2023-03-21 16:42:06 2960

原创 Lua 点和冒号的区别

Lua 点(.)和冒号(:)的区别.lua中的self 类似于C#的this表示当前对象。function test.func(args) 函数体 endfunction test:func(args) 函数体 end其中第二个函数 ,默认传了一个隐式self作为第一个参数,所以形参是(self,args)。等价于:function test.func(self,args) 函数体 end。

2022-09-30 10:18:34 244

原创 【Lua笔记】、Lua 协程

Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只有在明确的被要求挂起的时候才会被挂起。协同程序有点类似同步的多线程,在等待同一个线程锁的几个线程有点类似协同。

2022-09-27 17:39:03 140

原创 【Lua笔记】、Lua元表

Lua 提供了元表(Metatable),允许我们改变 table 的行为,每个行为关联了对应的元方法。两个函数来处理元表:setmetatable(table,metatable):对指定table设置元表(metatable),返回table。如果元表(metatable)中存在 __metatable 键值,setmetatable 会失败。getmetatable(table): 返回对象的元表(metatable)。

2022-09-24 15:12:38 480

原创 【排序算法】冒泡、选择、插入排序算法比较

思路:1. 有序比较两个元素,将较大的元素放到数组末尾。2. 循环比较到最后一个元素,此时,这一轮比较出来最大的数就在数组末尾。3. 重复上述步骤,直到没有需要比较的元素。代码:性能分析:时间复杂度是 O(N²),假设数据是随机的,平均交换次数为 N²/4。如果初始数据是逆序的,那么每次比较都要交换位置,交换次数为 N²。思路:1. 从所有元素中选出最小的元素,将最小的元素放在数组第一位。2. 从余下的元素中找出最小元素,放在数组第二位。3. 循环选择到排序结束。代码:性能分析

2022-07-06 11:43:37 368

原创 【寻路】超级简单的A星寻路算法实现

A星寻路算法是一种计算最短路径的算法,通过遍历周围所有可以前进的点,计算出最优路径。它吸取了Dijkstra 算法中的优点,为每个边长设置权值,不停的计算每个顶点到起始顶点的距离(G),以获得最短路线,同时也汲取贪婪最佳优先搜索算法中不断向目标前进优势,并持续计算每个顶点到目标顶点的距离(Heuristic distance),以引导搜索队列不断想目标逼近,从而搜索更少的顶点,保持寻路的高效。......

2022-06-30 10:18:15 582

原创 【对象池】未判断两个对象是否相同引起的问题

最近处理了一个几个版本之前遗留的问题,代码是一个离职的同事写的,测试发现了这个问题,但是不能稳定重现,所以一直没有修改。最近有玩家反馈过来,重现几率比较大,于是用玩家的号重现这个问题。现象:战斗时会偶发性的缺少一些数据。具体表现是进战斗时有六个武将,但是显示出来会缺少一些武将。经过多次调试,发现进战斗数据没有问题,只是显示出现了问题,显示的地方是取View代码里面的数据,并未修改。代码逻辑:1、先从对象池查看是否有空闲View,有就取出来使用,没有就新创建,将使用的对象放到队列里面保存下来,

2022-05-23 17:58:57 193

原创 Unity打字机效果扩展使支持富文本

前段时间策划在打字机的文本中配置了富文本,修改某些文字的颜色,但是公司原有的代码只有基础的打字机效果,不支持富文本,代码逻辑就是将文本转换位字符数组,然后再Update中根据间隔拼接字符串显示文本。基本打字机主要代码逻辑:if (_isPlaying) { _timer += Time.deltaTime; if (_timer >= Interval) {

2022-03-23 20:44:00 3771

原创 【Unity编辑器扩展实践】、扩展Hierarchy菜单

​​

2022-03-08 21:08:09 4487

原创 Unity中运行的模型突然从场景中消失

现象:Unity运行中的模型突然从Game场景消失,Hierarchy双击选中这个模型,Game场景中又会显示出该模型。项目中新增了两个模型,开场动画时,模型是从高处跳下。模型循环播放到第二次是,莫名其妙的突然凭空消失。想看看模型在什么位置,结果选中又会显示出来,而且不会消失。查看了摄像机渲染都没有问题,百思不得其解。在网上搜了一下,发现也有人遇到这个问题。Unity3d奇怪的坑——有动画的模型在场景中突然不显示于是修改模型上Animation的CullingType试了一下,果然是这个问题

2022-01-26 17:42:31 10285 3

原创 关于Animation参数missing的坑

前段时间游戏遇到一个真机闪退问题,没有打印,没有加载报错,找问题来真是头大。渠道:PPTV问题:模型预制体上一个Animation组件中 clip丢失。现象:加载资源闪退。猜想:我们项目是依赖打包,该预制体单独打包为A,它依赖的所有clip打成一个包B。加载预制体A时,发现它有依赖关系的动画片段未加载,会去加载B包,但B包里面没有该动画片段。没有报错是因为A包和依赖包B确实加载成功。疑问:只有一个渠道才会闪退,其他平台都能正常运行,会不会是PPTV的SDK处理加载导致崩溃。今天在加载

2022-01-24 17:52:33 3398

原创 XLua笔记(二)

XLua笔记https://blog.csdn.net/qq_33461689/article/details/113738755?spm=1001.2014.3001.5501一、XLua的枚举转换:之前的项目用过XLua的cast强转,枚举可以使用cast强制转换吗?今天试了一下, 发现转换不了。翻了一些博客,加上自己实践,整理了一下五种枚举使用和转换的方式:C#新建一个测试枚举:public enum TestEnum{ Null = 0,}Lua代码测试调用C#..

2021-12-14 12:18:16 957

原创 创建随机的测试文档

因为我想测试比较文件的方法,所以随机了一些数字存到文本里面进行测试。C#比较两个文件内容是否相同https://blog.csdn.net/qq_33461689/article/details/121499130?spm=1001.2014.3001.5501 int _writeLength = 1024; string _testPath = @"F:\测试文档.txt"; private void WriteText() { StringBu.

2021-11-24 16:33:39 98

原创 C#比较两个文件内容是否相同

今天看到项目的比较文件是先将所有字节读出来,然后逐一进行比较,想找找有没有可以优化的地方。在网上看了一下,有比较哈希码的,验证了一下,发现不管是文件开始就不相同,还是文件末尾才不相同,都比较耗时。C#比较两个文本文件的内容是否相等 - 五点 - 博客园 (cnblogs.com)测试文件大小:10000KB一、比较哈希码先将文件内容转成哈希码,然后进行比较。 public static bool CompareFile(string sourceFilePath, string

2021-11-24 16:23:03 3734

原创 【Unity编辑器扩展实践】、基于模板创建Lua脚本

当前项目使用C#开发版本,IOS使用Xlua热更代码。每次创建Xlua文件的时候,都是复制之前的Lua文件修改文件名、类名,模板内容基本一致,觉得有一点麻烦。以前写过一篇文章:修改Unity、VS2015创建C#脚本时使用的模板,就想仿照着Unity创建C#脚本时的方法写一个创建Lua脚本的编辑器扩展。首先根据需求,创建一个Txt模板:100-Lua Script-NewLua.lua.txt...

2021-07-30 15:29:58 822 5

原创 C#中的值类型和引用类型

C#中的类型分为:值类型和引用类型。值类型:int,char,bool或自己定义的struct称为值类型,数据存储在栈中。引用类型:array、string或自定义的class称为引用类型,数据存储在堆中,栈中只存储了变量的引用地址。C#中可以通过 属性 Type.IsValueType 获取该类型是否为值类型。示例: //值类型 public struct TestStruct { public int X; } //值类型 .

2021-07-07 20:58:32 527

原创 【实战案例】Unity从零开始开发初级案例 - 找你妹

一、前言前段时间和对象完《找你妹》这个小游戏,难分高低,顺便想了一下实现原理,按照自己的思路仿一个游戏出来,熟悉整个开发流程,整理基本的知识点,总结一下经验。二、实现思路初始化到界面里的每个图片(Item)都是一个数据(Data),有着对应的一个或者多个类型。界面上方提示的是当前需要选择的类型,玩家点击Item时,如果Data里面有对应的类型,则满足条件。三、实现细节1、初始化数据读取配置表里面的配置,content size fitter

2021-03-27 16:46:57 733

原创 【Unity编辑器扩展实践】、使用CopyTo迁移Unity中的资源

一般情况下,项目开发中都会有多个版本,我们项目是一个Int开发版本,一个Patch补丁版本,一个Release开放版本。刚完成开发阶段,将资源对比到Patch后,又在Int上修改的东西,也需要及时对比到Patch上,如果东西多,一般使用Beyond Compare进行比较,而如果修改东西较少,通常是在文件夹中打开当前资源路径,复制当前资源,修改当前文件夹路径,复制到对应路径。使用CopyTo迁移Unity中的资源。 private static Object[] objs; [Men

2021-03-25 17:38:01 928

原创 XLua笔记

1、XLua强制类型转换cast(data,type)第一个参数是需要强转的对象,第二个参数是目标类型例如:有一个对象_resData需要强转为C#类型ResourceData。local _resdata=_datacast(_resdata, typeof(CS.MapTileResourceData))2、XLua调用带泛型函数创建一个带泛型的GetTest函数。public class Test{ public Test GetTest<Test&g

2021-03-23 12:07:33 2016

原创 【框架系统】单机游戏数据的存储

序列化,是指把一个对象转换为二进制内容,本质上就是一个byte[]数组的过程。反序列化,即把一个二进制内容(也就是byte[]数组)恢复回对象的过程。为什么要把对象序列化呢?因为序列化后可以把byte[]保存到文件中,或者把byte[]通过网络传输到远程,这样,就相当于把对象存储到文件或者通过网络传输出去了。

2021-03-23 11:17:00 2179 2

原创 C#通过反射给对象赋值

在做配置表新建测试脚本:public class TestData{ public string Test ; public int Test1; public TestData() { Test = "默认值"; Test1 = 0; } public void Log() { Debug.LogError(Test+":"+ Test1); }}根据类型创建对象,设置.

2021-01-29 10:55:11 3161

原创 【框架系统】事件系统

事件回调委托public delegate void EventCallBack(params object[] args);添加事件 /// <summary> /// 添加事件 /// </summary> /// <param name="type">枚举类型</param> /// <param name="callBack">事件处理回调</param> public v

2021-01-27 14:37:04 554

原创 【框架系统】Unity读取Json文件做游戏配置表

框架系统:看一个小游戏源码的时候,发现他是使用Json作为游戏的配置表,但是在读取配置时,使用的是string作为配置表的key,index作为配置表的id,个人认为这样极为不方便。一是没有遵循面向对象编程的开闭原则,不利于配置的扩展;二是用string做key,比较麻烦并且可能出错。所以想重构一个配置表框架实现

2021-01-26 10:48:52 1579

原创 【Unity】反射:编辑器中通过类名获取Type

做配置表工具的时候,用到通过类名获取类的Type:Type type = Type.GetType(_className)发现一个问题,在Unity运行代码中创建一个类:通过GetType能正常获取该类的Type,但是在编辑器代码中,Get出来的却是null。猜想在当前的Assembly中没有该类。Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();在两个代码中获取当前的程序集,发现是两个不同的.

2021-01-25 17:08:12 3476

原创 Unity修改Shader使UI支持Mask功能

当UI界面上有很多UI元素,在固定区域内显示不完全时,我们通常会添加UGUI自带的Scroll View或者,自己添加ScrollRect,然后添加Mask,使内容可滑动,辅助实现该功能。但当UI元素里面有特效的时候,我们就会发现特效会穿透Mask不显示的区域,造成特效穿透。这时候你可以修改Mask组件,添加MaskPlus代码,将UI上的Mask替换成MaskPlus!using UnityEngine;using UnityEngine.UI;public class MaskPlu

2020-10-21 14:35:16 2718 2

转载 Unity3D各平台路径(包括手机内置存储路径、SD卡等等)

转载请注明出处! 关于Unity3D在各平台上的路径问题,网上有好多的资料,如下是比较好的参考资料:1、http://www.manew.com/thread-23491-1-1.html2、http://www.xuanyusong.com/archives/2656 这里我不详细解释和路径的用法,只把各个路径对应的位置和访问方式总结一下。1、Resources路径 Resources文件夹是Unity里自动识别的一种文件夹,可在Unity编辑器的Project窗口里创...

2020-09-17 15:56:31 1363

原创 Unity通过代码修改Scripting Define Symbols(宏定义)

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;using System;public class XLuaExample : EditorWindow{ private static string def = "HOTFIX_ENABLE"; [MenuItem("XLua/添加宏定义")] static void AddXlu.

2020-08-26 19:56:28 3467

原创 如何判断线段是否经过一个矩形?(线段与矩形是否相交)

//将直线写成y=kx+b的形式,将图形的所有顶点坐标带入y-kx-b, //如果得到的结果同时大于零或者同时小于零,说明图形的所有顶点都在直线的同侧,即直线不过图形。否则说明图形的顶点分布在直线两侧,直线过图形 public static bool IsPassThroughRect(List<Vector2> VectList, Vector2 begin, Vector2 end) { //求直线公式 double k, b; ..

2020-08-24 16:31:21 9218 5

原创 UGUI:调整Unity中UI和特效的层级关系(特效穿透问题)

特效放在两张图片中间

2020-06-01 16:31:06 10561

原创 C#中两个数 快速范围判断

逛知乎的时候看到这个答案,觉得他的代码写得挺有意思。如果我们要判断一个值在不在范围内,通常都是: if (x >= min && x < max) { return true; } return false;想了一下,在实际情况中,好像确实没有用到已知函数直接判断,都是写的If判断。1、如果 int 检测是 大于等于0, 小于等于max 的话,可以直接使用uint来判断: if ((u

2020-05-30 11:29:41 7921

原创 设置Canvas的 overrideSorting不生效

设置Canvas的 overrideSorting不生效

2020-05-22 15:54:05 1997

原创 已知两个点和中间一个比例的点,求该点坐标

实际问题:有一个物体匀速沿点A往点B走,已知A、B坐标,AP段移动时间T1,AB段移动时间T2。求P点坐标。如图:解:AB向量=坐标B - 坐标A。R比率 =T1 / T2AP向量=向量AB * R比率OP向量=向量OA+向量AP点P = 向量OP + 点O如图:简单的高中知识,我凭空想象,做出来不对,居然又打了一页草稿,才理清楚这个思路。...

2020-04-22 21:59:00 1521

原创 Unity导入资源后还手动修改资源的属性?这段代码可以给你节约很多时间:AssetPostprocessor

AssetPostprocessorUnity3d_AssetPostprocessor简单用法使用AssetPostprocessor自动处理导入的模型、Texture等

2020-03-23 11:19:39 1236

原创 Unity加载设置:Application.backgroundLoadingPriority

最近有个朋友做加载优化,偶然听到他提起Application.backgroundLoadingPriority ,就顺便看了一下!Application.backgroundLoadingPriority:这是Application类的一个个静态属性,可以控制后台加载线程的优先级,从而控制异步加载资源所需的时间,以及后台加载时对游戏性能的影响。适用API:加载对象(Resou...

2020-03-18 21:42:54 1880

zhaozhaokan.unitypackage

简单实现【 找你妹】

2021-03-27

RuntimeTest.cs

C#通过反射给对象赋值

2021-01-29

EventDemo.unitypackage

事件系统

2021-01-26

AStarDemo.unitypackage

A星算法,自动寻路Demo

2021-01-25

SaveDataDemo.unitypackage

使用简单,存档内容可加密,防作弊。

2021-01-25

Unity加载json配置表

Unity通过C#加载json配置表(json的读取,解析,配置表的自动生成)

2021-01-19

XMLTestEditor.zip

C#创建,添加,读取XML文件 内容,添加备注,简单窗口Demo

2019-10-16

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除