自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (2)
  • 问答 (4)
  • 收藏
  • 关注

原创 Image透明度点击简述以及Unity2019之后存在无法点击的BUG修复

自Unity2019之后Unity将UGUI模块从内置库修改成了通过PackageManger引入的方式。Image就来源于com.unity.modules.imgui模块。其实代码大体代码跟2018是一致的,但是还是有些细微差别,Image透明度点击不命中就是2019之后才有的问题,2018版本是没有这个问题的,我都怀疑是开发人员抄代码没抄全。首先这个点击不命中是在你使用图集的方式打包UI图片时出现,Unity使用SpriteAtlas自动打包图集。

2023-11-11 21:25:04 491

原创 Unity项目包体优化经验方法论(Android平台)

本篇文章主要讲解对于Unity Android平台也就是APK包体的优化经验,使用哪些工具能够更加便利的定位资源重灾区。本篇讲解的方法中对于Unity资源使用的AssetBundle的方式,如果使用addressable或其他资源管理方式,我还不是很清楚是否适用,没有去验证过。

2023-09-06 00:29:31 714

原创 ShaderGraph Vertex Position节点无法连接

作为Shadergraph新手在制作顶点动画的时候遇到了顶点着色器中Position节点没法连接的问题,在仔细阅读文档的时候,发了问题,这里特此记录。这个时候需要去检查顶点着色器中是否存在纹理采样,如果存在纹理采样是不是使用的。,如果不是就没法进行连接。

2023-05-10 10:35:10 389 1

原创 UnityShaderBook中消融dissolve详解

消融这个效果算得上游戏开发中用的比较多的一个效果,表现游戏对象消失的时候经常用到,这个效果实现也非常简单,因此在《UnityShader入门精要》中也就短短几句话讲完了,这里我想针对书中的效果详细讲解一下。,我这里就不贴出源代码了,可以照着看。消融效果的核心是使用函数,将的像素裁剪掉首先Disslove中包含两个Pass,一个前向渲染、一个阴影渲染,我们下面挨个解析。

2023-05-05 22:36:53 623

原创 Unity TextMeshPro文本存在背景框的问题研究

在使用TextMeshPro的时候遇到了字体黑底的问题,类似下图这样当字体较大的时候表现正常,当缩小到一定程度就会出现黑底。这个情况让人第一时间就是怀疑SDF计算缩放的时候存在问题。在我们重新导出字体,调整图集字体大小以及Padding后,让SP/PD值差不多大于3%就能解决这个问题这个SP/PD就是Padding值/Samping Point SizeSP/PDby theincreasetheordecreasethePadding。

2023-04-28 01:04:52 2270 1

原创 Unity-iOS工程导出Xcode自动构建方法

Unity-iOS发布基本流程首先在Unity中导出Xcode工程,然后在Xcode工程中设置IOS打包的一些流程,诸如引入lib、framework或其他资源、设置签名及其他编译设置、加入编译脚本等等操作。这些操作如果每次都是在导出Xcode后手动操作,一来浪费时间,二来容易出错。自动设置好Xcode工程后我们就可以使用xcodebuild命令自动构建Xcode工程,使用ExportOptions.plist配置自动发布ipa或者正式包的流程。

2022-12-10 15:17:50 2122

原创 解决Mac下使用emmyLua调试遇到“dynamic libraries not enabled; check your Lua installation”

这个上官方的解答,这里说下具体做法。下面我导出的上lua53的mac os库,其他版本同理。添加“ADD_DEFINITIONS(-DLUA_USE_DLOPEN)“2.删除“plugin_lua53”目录(确保待会儿导出你看得到修改)遇到这个问题上因为XLua不开启dynamic libraries。这个时候你就可以看到导出了“plugin_lua53“这个文件夹。4.执行“make_osx_lua53.sh“3.修改CMakeLists.txt。6.重启unity即可。

2022-11-14 20:05:44 1085

原创 Unity寻路报错“SetDestination“ can only be called on an active agent that has been placed on a NavMesh.

至于为什么会出现这种情况,我猜想是首次添加Detour Crowd的时候没有成功,失败的原因也很多,因为无法去debug,只能有这种猜想。这个报错我在Editor与测试APK总都没有遇到过(如果遇到肯定早想办法解决了~),等项目上线了,发现bugly上报非常多这个报错。让我非常费解,幸运的是我找了NavMeshAgent的源码,才找到了一个稍微安全一点避免错误的方式。如果是,那就好办,将transform.position来修改坐标的方式替代为使用agent.Warp来修改。恭喜你,跟我遇到了相同的问题~

2022-09-05 19:07:16 3255

原创 修复Unity编译时“AAPT2 aapt2-4.1.2-6503028-osx Daemon #0 Failed to shutdown within timeout”错误

要解决这个报错首先我们要了解是什么东西。aapt 全称为 Android Asset Packaging Tool,即为Android资源打包工具。作为unity开发人员,一般跟Android打交道比较少,感兴趣的同学可以先去官网学习学习。

2022-08-07 10:29:03 3668 2

原创 xlua增加扩展c/c++库方法

xlua增加扩展c/c++库方法xlua官方提供了一个扩展库文档,如果你看了还是遇到些问题,可以参考这篇文档。xlua官方扩展文档:https://github.com/Tencent/xLua/blob/master/Assets/XLua/Doc/XLua%E5%A2%9E%E5%8A%A0%E5%88%A0%E9%99%A4%E7%AC%AC%E4%B8%89%E6%96%B9lua%E5%BA%93.md本篇文章主要说明下在使用编译过程中需要注意的问题。注意:下面示例都是以lua

2022-01-29 13:52:36 3105

原创 【Bug记录】UnityEngine.Object与System.Object判空混用引起的问题记录

上面之所以会出问题,就是在于我在资源卸载后会调用Resources.UnloadUnusedAssets对没用的资源进行卸载,这个过程是unity内部过程,而WeakReference是托管堆对象,需要gc后这个引用才会为空,而unity资源实际都是派生于UnityEngine.Object,这些实际上对应了c++对象,都是存在于非托管堆上。因此我推测(如有问题请指正),出现这个bug的时候是在,unity已经释放资源,通过UntiyEngine.Object == null已经为true,但是c#还没有触

2022-01-20 23:11:13 2753 1

原创 Unity加载优化-将基于LZMA的ab压缩方案修改为LZ4压缩的过程

# 观前提示本文适合需要了解LZMA以及LZ4进行ab打包方案同学,以及会将一些资源管理的方案。如果恰好你也用xlua-framework,那就更适合你了。# 优化起因最近新游戏在Iphone6上出现了闪退的情况,出现闪退是在加载完成后的一瞬间,用脚指头想都知道内存超过上限了,查了下Iphone6内存为1GB,可使用最大内存上限为645M,理应是一个很高的内存值,由于新游戏是一款3d大地图城建游戏,模型建筑特别多,内存也出现溢出。这让我不得不想办法优化内存以及加载速度,一般的内存优化是从纹理,模

2021-11-10 23:14:32 6786 3

原创 Unity在Canvas上画线(Draw Line)实现

# 前言目前Unity官方提供的UI扩展包中包含了UILineRenderer组件,本篇实现与UILineRenderer实现一致,主要讲解其基本使用与实现过程。不想看的同学可以直接下载官方扩展包。代码库:unity-ui-extensionshttps://bitbucket.org/UnityUIExtensions/unity-ui-extensions/wiki/browse/# 正文canvas上的渲染均通过CanvasRenderer,unity-ui扩展包实现了一套ui基础类U

2021-09-26 23:59:41 4997

原创 计算点到任意两点之间连线上的最近点【Unity数学】

我们已知P1,P2,P3点,要计算P3到P1->P2上的最近点,在上面这幅图中最近点则是P2这个点。计算步骤如下:1.首先我们计算P3点到P1->P2线段上的正交投影点C点2.根据P1->C比上P1->P2的长度得出比率3.将比率限制到[0,1]区间内4.获得比率之后就跟上篇计算两点之间的任意点计算一致,起点向量P1加上P1->P2乘以比值得到P3到P1->P2上的最近点计算代码如下:public Vector2 GetClosestPoi...

2021-09-22 16:23:25 739

原创 计算两点之间任意一点坐标【Unity数学】

今天来分享一下计算两点之间任意一点的坐标方式,分为3d及2d点的计算。思路大概就是起点坐标加上根据比例计算出来的相对于起点的偏移 /// <summary> /// 获取两点之间的点 /// </summary> /// <param name="start"></param> /// <param name="end"></param> /// <param name="pro

2021-09-22 12:55:18 1611

原创 Unity摄像机居中聚焦场景中对象的方法

# 前言在游戏场景中,经常需要平移摄像机然后聚焦对象,今天就来讲讲这部分是如何实现。# 正文# 思路我们可以让摄像机从屏幕中心点发射一个射线到场景平面(Plane)中,得到当前屏幕中心点在场景中的位置,然后对于目标点的差值就是我们需要移动摄像机的距离。# 代码实现//聚焦对象 private void CameraFocusAt(Transform target) { var cp = CalcScreenCenterPosOnPanel();

2021-06-23 23:45:58 2846 3

原创 【Bug修复记录】Unity Fog真机不生效相关问题

# 前言最近在场景中使用了unity自带的globalfog时出现了真机上不生效的问题。这篇博客主要是记录这个问题的解决过程。#正文##问题描述在Editor模式下模型能够与雾效融合实现雾效效果,但是到了真机出现了模型不能跟雾效融合,导致模型感觉在雾效上面。##问题原因先说下原因,是因为之前使用的模型shader使用的surfaceshader,在shader中设置了Emission自发光参数导致,但是我看到编译后的shader(如下图)也使用了UNITY_APPLY_FO...

2021-05-26 16:01:31 1075

原创 学习记录-C#调用静态方法,实例方法的调用

最近开始沉下心来重新研究C#,看到关于CLR如何调用方法感觉很有意思。CLR(Common Language Runtime)提供了两个指令来调用方法:- call 这个IL指令假定变量不为null- callvirt 使用这个IL指令,编译这个调用时,JIT编译器会生成代码来验证变量是不是null,如果是,cllvirt指令会造成CLR抛出NullReferenceException异常由于callvirt指令会校验null,因此执行速度会比call慢。书中提到callvirt可调用.

2021-03-08 23:18:46 1091

原创 解决Lua获取unity 文本内容时存在\u200B(8203)字符问题

使用lua string.gsub将问题字符替换为空字符。代码如下:-- 从unity侧获得的文本字符串local unity_text_string = xxxxunity_text_string = string.gsub(unity_text_string ,utf8.char(8203),'')--unity_text_string此时不包含空字符...

2020-11-30 20:22:14 916

原创 Unity开发UGUI模块开发经验之ScrollView的使用及优化

-前言-已经好久没有写博客了。最近开始了Unity的开发工作,一开始都是做做UI写写逻辑,目前主要任务就是摸透Unity UI的模块开发。本章就来了解下最近用得笔记多的ScrollView功能。在Unity中ScrollView功能是单一的滚动区域,但是我们日常游戏开发中,使用ScrollView所需要的功能更像是使用List一样,View中是重复的prefabs组成的,根据数据不同而展示不同内容的item。其实如果不考虑性能及个性的优化的话,自己认为Unity的ScrollView功能非常强大,并

2020-05-18 23:16:43 1763 2

原创 Unity坐标转换UI与屏幕坐标之间的转换

-前言-在我们的日常开发中经常会遇到各种坐标的转换,其中可以大致分为两类。1.将3D世界坐标转换到UI坐标中2.UI坐标之间的转换这一切的坐标都转换都是通过RectTransform、Camera及Unity坐标转换工具类RectTransformUtility的结合使用。-正文-UI坐标之间的转换首先我们来讲讲UI坐标之间的转换,UI坐标之间的转换涉及层级,首先我们需...

2020-04-13 22:57:05 9837 3

原创 针对小游戏中PNG、JPG压缩工具优化(nodejs)

-前言-博主目前还是主力使用Laya进行游戏开发,随着项目扩大,资源量增加,发布愈发的缓慢。究其根本还是问题出在了图片压缩问题上,实在受不了准备将压缩流程剥离出来,在自己想压缩的时候再执行命令压缩也不迟。-正文-首先来说一说为什么图片压缩那么慢,图片压缩分为两个步骤:1.PNG压缩,采用了pngquant,改工具在时间空间复杂度都不高。2.JPEG格式压缩,采用了guetzli,这个工...

2020-03-10 12:05:17 795 3

原创 使用VsCode开发Lua插件推荐(Lua)

在我看来能够跳转的Lua插件就是好插件,今天推荐的一款插件就是这么一款。通过Vscode插件搜索Lua (Lua Language Server coded by Lua),支持跳转定义、查询引用、代码检查、高亮等。下载好后即可使用。这里说一下设置代码检查配置。在settings.json配置"Lua.diagnostics.severity" : { "redefi...

2020-03-02 20:46:02 37262 4

原创 Windows指定Python版本启动Python脚本

1.通过环境变量设置默认Python版本这种方式适用于在程序中启用进程方式调用Python脚本,程序会调用默认Python版本。设置方式:控制面板->系统和安全->系统->高级系统设置->环境变量如果同时存在Python3及Python2,靠前的路径会成为默认Python2.在命令行指定Python版本运行//python2 py -2 xx.py ...

2020-02-27 11:01:03 2181

原创 LayaBox2.4配置VsCode编译及运行环境

-前言-Laya2.4取消了内置VsCode编辑器,现在代码编辑需要在单独的代码编辑器里面写,推荐使用VsCode。发现不少同学无法运行启动调试了。这篇博客就是讲述如何配置编译及调试环境。-正文-添加VsCode启动文件以前启动文件是通过.laya启动,不过现在在VsCode需要在.vscode中配置一个launch.json。这里需要确保VsCode安装了Debugger for...

2020-02-10 11:58:40 3530 2

原创 LayaBox2D使用自定义Shader的方法

-前言-之前也写过一篇关于Laya2D自定义Shader的博客。不过那篇博客局限性太大,是完全独立于Laya框架下独自更新的。不能通过Laya的添加层级关系,设置坐标等。所以这次Shader方案是基于Laya的运行框架下的。-正文-Laya框架简述在开始说具体方案时,还是先来了解下Laya框架的运行规则。Laya框架下分为3块:用户逻辑层,这一层逻辑是我们自己写游戏的逻辑层,基于Ti...

2020-01-07 13:49:00 3606 4

原创 使用Laya开发微信小游戏时无法使用位图字体解决方案

-前言-依照Laya官方提供的位图字体使用方案时,在本地是可以正常使用的。当发布到微信小游戏上就没法使用。经过查找是缺少解析xml的库。-正文-方案1:引入xml解析库缺少什么我们就引入什么,我们引入官方提供的js库//修改bin目录下game.js文件if ((typeof swan !== 'undefined') && (typeof swanGlobal !==...

2019-12-12 12:12:30 822 3

原创 Gulp在Mac与Windows上使用的区别

-前言-在写自己的个人网站用到了Gulp,因为会切换Windows与Mac操作系统,发现了其中的一些坑,就此分享也做一下记录。-正文-原文链接: Gulp在Mac与Windows上使用的区别.目前我自己使用的是Gulp4。dest方法的区别在调用gulp.dest方法上,Mac与Windows上存在区别。首先贴一段我压缩js的代码来感受一下。function minifyJs(rel...

2019-12-06 10:36:21 319

原创 JavaScript读取指定目录下所有文件路径并输入(代码片段)

const fs = require("fs");const path = require("path");/** * 读取指定路径下的所有文件路径并赋值到out中 * @param {string} parentPath * @param {Array<string>} out */function readAll(parentPath, out) { t...

2019-12-02 11:11:26 9660

原创 Node开发及Gulp使用

-前言-Node是一个基于Chrome V8引擎的JavaScript代码运行环境,让我们脱离浏览器也可以运行我们js代码。我们都知道JavaScript是由ECMAScript、DOM、BOM组成,Node.js则由ECMAScript及Node环境提供的一些附加API组成、包括文件系统、网络、路径等。下面会记录我学习Node中的一些关键笔记,以及使用Gulp的相关笔记。·希望能帮到...

2019-11-18 23:13:42 268

原创 JavaScript通过百度OCR实现图像文字识别及常见错误解释

-前言-在日常工作难免会遇到将美术图中的文字提取标识出来,接下来我们就讲一讲OCR及通过百度OCR识别我们自己的美术图中的资源。-正文-OCR是图像文字识别技术,应用场景非常的广,百度OCR技术说是基于人工智能的OCR,普通场景识别精度高达98%。这里我们不谈OCR相关技术,只是实现一下如何使用百度OCR。账号注册首先我们需要有一个百度智能云的账号,并且创建一个文字识别的应用。...

2019-11-09 11:32:53 4991 1

原创 扩展Laya查找未被使用的资源,一键删除项目中未引用资源功能(功能开发)

-前言-不知道你知不知道Laya有一个查找未被使用的资源功能,在UI编辑器状态下按F4弹出,不过这个功能实在鸡肋,只能查找在page中引用过的资源,但是我们正常开发下很多资源是在代码中,或者配置到配置档中的,所以需要根据自己的需求更改。如果放到Unity我估计就放弃了,直接写脚本来跑删除逻辑,不过既然Laya是开源引擎,引擎代码又是基于nodejs环境写的,那通过简单修改就能实现我们想要的结果...

2019-11-07 23:31:35 897 1

原创 探究Laya关于TypeScript多个版本的编译问题

-前言-随着Laya版本迭代,现在已经到了2.x,每个版本除了修复固定的bug,也增加了很多特性。我们单独看看Laya对于项目工程的编译也不断进行的演变。接下来就从1.x到2.x看看Laya对于编译的变化。-正文-1.x编译方式Laya1.x还没有引入gulp工程化管理工具。而是直接使用Vs Code相关配置来运行项目。其中包括两个配置。tasks.json与launch.json...

2019-11-07 15:31:43 1963 1

原创 谈谈小游戏加载优化及资源分配

-前言-小游戏之所以称为小游戏,首先它的资源量就被限制在一个很小的区间,在微信及QQ小游戏上包大小有4M要求,即使使用分包也只能扩展到8M的大小,这与我们一般的APP游戏的资源两级是不能比的。不过随着小游戏的发展,我们可以将资源放到CDN,通过远程拉取的方式加载资源,这与我们以前的页游相当。接下来就具体讨论下小游戏的加载优化有哪些及资源分配的细节。-正文-我们平时制作小游戏一般都不会使...

2019-11-06 10:15:12 1986

原创 理解Base64编码及实现编解码Base64

-前言-上前几篇博客做图集分解的时候Image对象生成的时候,不是使用的直接用二进制数据生成的图像数据,而是使用的转化后的base64数据来生成的。本片博客就让我们来了解下Base64及写一个编解码器。-正文-base64编码格式是一种可以由文本编辑器打开查看的编码格式,与二进制不同,base64之所有称为64,也是因为我们要映射的二进制数据是在一个64长度的字符集中映射出来的。bas...

2019-10-23 22:51:15 1387

原创 JavaScript原生实现图集分解并下载功能教程(三、使用JSZip压缩并下载分解好的碎图)

-前言-上一章我们使用了<a>标签的纯原生方法下载分解好的图集,虽然功能能够实现,不过下载下来的碎图不能在一个文件夹下,很蛋疼,因此本篇博客我们使用先压缩成zip的方式再下载下来。如果没看过前两篇博客的同学也可以移步看看这个功能的具体实现:https://blog.csdn.net/weixin_36719607/article/details/102623647htt...

2019-10-21 21:18:46 463

原创 JavaScript原生实现图集分解并下载功能教程(二、实现图集切割及下载)

-前言-上篇我们把文件上传的Html文件写好了,也把基本的读取图片数据写完了,本篇就具体如何实现分解来详解。完整项目地址:https://github.com/dengxuhui/ImagePackerWeb如果想直接使用该功能的同学:http://dengxuhui.cn/-正文-当我们点击”点击分解图片“按钮时会触发onClick方法this.btnUpload.on...

2019-10-21 18:59:25 870

原创 JavaScript原生实现图集分解并下载功能教程(一、UI文件及文件上传)

-前言-最近一直在着手研究3D方面的知识,正在研究real-time rendering这本书,书确实挺厚的还是全英文,可能3D渲染方面的博文要拖一拖了。不过在图形渲染分支上,关于之前Laya的图集方面代码看了很多遍,我还是觉得自己能实现一个打包图集并分解图集的功能更能加深对这方面的知识储备,顺带再练手一下Web方面的开发。之所以说造轮子,是因为我在看了PngSplit这个软件源码的时候想着W...

2019-10-18 14:27:00 387 1

原创 3D游戏数学基础中的计算原理及几何意义(一、矩阵)

-前言-在3D开发中,矩阵的运算是极为频繁的,几乎任何关于3D场景中的对象运算都会用到矩阵的知识。-正文-在我们日常游戏开发中使用到的矩阵多为方针(行数等于列数),通常为2x2、3x3、4x4的方阵。下面列举一个一般的3x3方阵:对角矩阵及单位矩阵对角矩阵是矩阵中非对角线元素均为0则为对角矩阵,上面3x3方阵中当m12,m13,m23,m21,m31,m32为0是为对角矩阵...

2019-10-08 23:24:49 1837 1

原创 3D游戏数学基础中的计算原理及几何意义(一、向量)

-前言-在进一步浏览Laya3D源代码之前,让我们先补一补关于3D游戏开发的数学基础知识,并去了解为什么要这么去运算,这样更加友好的让我们去解读引擎的源代码实现。-正文-向量点乘现在已知两个向量分别是、,向量的结果是一个标量等于a1b1 + a2b2 + a3b3 + ..... + an-1bn-1 + anbn;向量点乘描述两个向量的“相似”程度。点乘结果越大,两个向量越相...

2019-10-08 14:12:24 819

Image透明度点击简述以及Unity2019之后存在无法点击的BUG修复

修复Unity2019之后透明度点击失效bug

2023-11-11

pngcompress.zip

1.修改conf目录下的conf.json文件,将root_path配置正确(执行需要压缩图片的目录) 2.运行前执行npm install 命令安装依赖,目前就只用到md5模块。

2020-03-10

TortoiseGit安装包+语言包.zip

资源+中文语言安装包。 安装步骤: 1.首先安装TortoiseGit-2.9.0.0-64bit 2.安装中文包

2020-02-17

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

TA关注的人

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