自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (4)
  • 收藏
  • 关注

原创 Unity URP 自定义后处理顶点着色器踩坑

Unity URP 踩坑

2023-01-02 15:29:55 1103

原创 Unity URP Shader “Redefinition of _Time“ error

Unity URP Shader

2022-12-15 11:56:40 1794

原创 Unity Bone weights do not match bones.

Unity Bone weights do not match bones. 解决思路

2022-08-24 14:51:25 1771

原创 OpenGL 天空盒Skybox实现 天空盒显示不全(天空盒部分被截断)

OpenGL 天空盒实现过程中踩坑

2022-08-04 15:07:21 2115

原创 Unity 使用aar与Android通信(基础流程)

简单的Unity使用aar与Android层沟通的流程

2022-07-11 18:49:50 3876

原创 Unity 实现游戏中多相机屏幕CutIn效果

效果展示下图是Game窗口里面显示的两个不同物体的cutin拼接起来的效果,当然可以自由调整斜切的角度,以及拍摄的内容原理说明基本原理还是使用的RenderTexture,将相机照射的内容都拼接起来,相信基本的使用RenderTexture实现左右分屏显示不同的内容,应该是比较简单的了;但是,要实现上面这种不规则的切屏,相对来说就比较困难了。所谓拼接,本质上还是指我们只想把一个相机照射的内容的某一部分显示出来,另外的部分我们不想展示出来,顺着这个思路,我们可以尝试着用几个面片去遮挡整个屏幕,然

2022-05-05 18:50:30 1582

原创 OpenGL学习阶段初期踩坑记录——安装

​注:安装基于创建窗口 - LearnOpenGL-CN所示流程,需要先看一下这个流程,以下记录的是这其中踩的一些比较坑CMake生成GLFW工程的时候,如果在Configure哪一步设置了错误的Visual Studio的版本(比如你电脑上没有,或者与GLFW支持的版本不一致),就容易在点击Configure之后报错“Configuring incomplete, errors occurred”,然后不管你怎么点Configure都是这个错,也无法再设置Visual Studio版本。这个是

2022-04-14 15:07:14 1113

原创 Android 学习笔记 —— APK 签名

【Android 知识笔记】---------【APK 签名】---------目的:确保包体的准确性及真实性,防止包体内容被修改原因:签名相当于在包体内内置一个唯一、固定的字符串,只有字符串一致的情况下,才认为这个 APK 未经过修改1. 基本概念:- 数字摘要:任意长度的数据,都能通过 hash 算法得到一个固定长度的二进制数据,这个数据称为”摘要“ - 特点: 1. 唯一性:在不产生数据碰撞(即数据量太大时可能两个不同的数据生成相同的 hash 值)的情况下,不同...

2021-10-11 10:43:50 874

原创 Unity 图片定点缩放功能

功能情景:有的 AVG 项目可能需要玩家缩放图片的某一个点来仔细确认图片,比如碧蓝航线里面的放大看老婆的功能,又或者说如果直接在 Unity 的 Scene 编辑场景里面使用滚轮拉进拉远,可以看到 Unity 就是聚焦在你鼠标的位置在缩放。这里提供一个实现这种效果的思路实现原理:注:以下涉及 UGUI 的一些基本原理,需要对 UGUI 的属性比较熟悉才方便理解UGUI 里面有一个 pivot 属性,这个属性决定了在图片宽高变化的时候,图片左下角(offsetMin)和右上角(offsetMax)是以

2020-12-18 11:30:12 3834 1

原创 【Unity离谱的bug】2019版本以后下载的AndroidPlayer模块缺少build-tools文件夹

如题,解决方法:重新下载安装一遍版本,或者找到你Unityhub安装Editor的路径,找到moudles.json文件,这个文件记录着Unityhub对该编辑器的一些设置,删除里面的Android部分,你的Unityhub里面就认为Editor没有添加AndriodPlayer文件,然后你就能再添加一遍Android插件了。...

2020-09-10 10:11:22 1820

原创 【Unity离谱的bug】2019版本总是打不开(崩溃却没有任何提示及弹窗)[LicensingClient] ERROR Failed to connect to local IPC

如题,Unity2019在我一次git代码有冲突之后遍出现此错误,只有在刚开机的时候才有机会打开,打开了进去也会时不时发一个不影响运行的error,其他时候就根本打不开,也没有任何提示。一查看任务管理器发现是崩溃了,检查Editor.log文件(可以通过Everything搜索,一般路径在C:\Users\yourName\AppData\Local\Unity\Editor下面),打印报错有三行[LicensingClient] ERROR Failed to connect to local IPC

2020-09-09 18:44:10 7049 2

原创 C# 工程使用Rider设置所谓的“宏编译”(编译开关)

首先声明一点,C#没有宏定义,只有编译开关Unity里面的#if UNITY_ANDROID这种的代码都是编译开关,表示在这个情况下才编译。Unity里面可以直接在ProjectSettings里面设置宏定义变量c#工程想设置编译开关,本质上需要修改工程的.csproj文件(不同编辑器可能有不同的操作,但本质都是修改这个文件),具体的修改位置如下。Rider里面修改可以直接右击左侧最外层的工程图标,选择properties选中configurations,选择一个运行环境(比如我这里选的

2020-09-01 19:18:42 3796

原创 SVG 绘制箭头参数说明

先说画法: 首先通过在<def>标签里面使用<marker>标签定义一个定位图案,这个标签需要写在<svg>标签里面<svg><defs> <marker id='markerArrow' viewBox="0 0 40 24" markerWidth='20' markerHeight='12' refX='10' refY='6' orient='auto'> <path d='M2,0 L10

2020-06-30 11:40:40 2499

原创 Unity3d AssetBundle依赖关系获取

PS:本文将从“打包之前”和“打包之后”两个方面去说明如何获取依赖关系获取AB包依赖的作用众所周知,如果一个AB包(我们称之为C)里面的资源引用到的其他资源(我们成为R)并没有被打包成AB包,那么C里面就会多出一份资源R的备份,如果只是一个C里面多了一个R的备份那还好,但是如果有很多其他AB包Cx都备份了一个R,那么这就是资源的冗余,没有必要,这也就提示了我们应该把R打包成AB包(我们称为D),那么这些Cx就只会多出一个依赖于D包的依赖,不会多出那么多资源。而AB包在加载还原的时候,如果依赖了其他AB

2020-06-19 11:12:07 3413

原创 Unity3d GUID和本地ID(Local Indentifier)

GUID和本地ID都是Unity用于资源管理的ID,GUID是工程里面所有文件、文件夹的唯一标识,通过GUID可以唯一确定一个文件或文件夹。本地ID是一个对象内(比如Scene),标识不同资源实例用的ID。举个例子,现在有一个预制体A,那么我们可以查看它的.meta文件看到它的GUID:在场景里面生成两个这个预制体的实例,那么大家应该都知道了,这两个实例肯定表示不同的对象,但是它们都通过GUID指向一个原型预制体A,通过文本方式打开Scene,ctrl+f查找预制体A的GUID:红框表示处就是实例的

2020-05-13 18:56:47 4392

原创 Unity3d AssetBundle依赖关系理解

AssetBundle(简称AB包)打包方式:[@MenuItem("AB/Build AB")] public static void BuildAB() { BuildPipeline.BuildAssetBundles(Application.dataPath, BuildAssetBundleOptions.UncompressedAssetBundle, BuildTarget.StandaloneWindo

2020-05-13 18:37:58 2190

原创 DoTween.IsComplete的坑

在使用协程进行DoTween动画的时候,我希望能够控制其在某一时间点停止动画,所以有下面这种写法while (!tween.IsComplete() && !cancellationToken.IsCancellationRequested){ yield return null;}然而我发现单是这样协程会一直无法完成(即tween.IsComplete()会一...

2019-11-18 23:55:57 2423 1

原创 使用UniRx加UniRx.Async实现AddressableReference的异步加载

因为Addressable资源的加载是异步进行的,而一般的写法是添加回调,如下是一种写法:public static void LoadAsync<T>(string address, UnityAction<AsyncOperationHandle<T>> endCb){ Addressables.LoadAssetAsync<T>(a...

2019-11-12 10:33:10 2406

原创 unity 关于以前常量影响效率的修复

根据我在知乎上查看的文章说,Unity的Quaternion.identity、Vector3.zero等常量以前是 直接在get属性里面 new一个新对象并返回的,这无疑会造成不必要的GC,而现在Unity已经修改了写法,返回的是一静态常量:同理Vector3等的:另外这里提示一下,大家可以看到这几个常用的都是结构体(也就是值类型),所以别指望像引用那样使用它。...

2019-11-08 16:57:17 847

原创 Unity 关于foreach产生GC的bug修复

以前面试的时候了解到Unity中要少用foreach,因为会产生GC Alloc,也就是会产生垃圾内存,后面看知乎了解到产生这个GC的原因主要在IL层里面有一个box装箱的过程以及IEnumrator中newObject的过程,具体可以看这篇文章,但是后来有人说这个bug已经被修复了,但网上没有明确的文章指出来(或者是我没有找到),所以我自己按章上面提到的文章采用的方法自己测试了一遍。测试结果:...

2019-10-27 15:12:44 2417 1

原创 DOTween 中关于Sequence的坑——使用Backward无效

坑出现的场景:有的时候我希望把Dotween的一些动画列为Sequence,然后再用一个Sequence去组装这些个Sequence构成一个大的动画,然而这样做我发现我并不能使用PlayBackward等操作去控制小的Sequence。之所以会出现这些情况,是由于Sequence在Append、Insert、Join所有Tween的时候(Sequence继承自Tween),会把其isSequen...

2019-10-20 16:17:28 2992

原创 JetBrain Rider使用技巧(持续更新)

我用的版本是JetBrain Rider 2019.1.1IL Viewer查看编译后的IL代码:IL Viewer位置在Tools -> IL Viewer,打开后会在右边出现一个窗口,之后只需要点击编译,之后在右边就会出现IL层的代码。自定义命名规则:这个功能个人用起来非常舒服,可以强制标准化整个项目。位置在FIle -> Setting代码建议、提示的触发条件:在某...

2019-10-17 16:27:59 5955 1

原创 Unity 内存优化——音频设置

如果不需要立体声,勾选Force to Mono选项;这样可以减少内存和占用的磁盘空间,主要在移动平台使用大音频需要被设置为流式音乐,以200kb为界,设置方式如下图:接下来用我用场景中的一个BGM音源来展示这种设置的效果,首先这是不使用流式设置产生的音频内存占用,为21.8M然后,这是使用了流式设置的占用大小可以明显看到内存占用变为了1.9M!!!较长的且不是流式的,可以导入Compres...

2019-10-16 21:52:22 777

原创 Unity LWRP修改Blit Shader来使Camera的Depth Only生效

LWRP是默认不支持多个相机实现Depth Only的,所以你多个相机只看得到一个相机里面的东西,因此需要修改。下面这个连接的作者解释的比较清楚。https://www.jianshu.com/p/18910b94ef91网上有很多类似的解释,但是都没有指出Blit在哪儿,也没有说加的语句在哪儿,虽然也不难猜,这里我就指出来一下。Blit在哪儿:Packages/Lightweight RP...

2019-10-13 19:17:47 1531

原创 Unity ShaderGraph学习——溶解效果

原理:通过噪声产生alpha通道,并通过alphaClip来控制显示的内容节点及效果如图:步骤:首先右击创建一个简单噪声节点,调节scale值,使得噪声不是那么密集(具体值看个人而定),再将该节点连接到master节点的alpha值上。创建Time节点,将正弦值连接到alphaclip上面,这个时候就已经可以看到效果了,当值为0时完全显示,当值为1时完全消失,接下来就是优化边缘发光。...

2019-10-09 17:44:29 2000 1

原创 TextMeshPro创建中文字体库

前提:使用的source字体库里面必须包含有你所需要的字创建:Window => TextMeshPro => Font Asset Creator基本的设置就不说了,主要需要设置的如下图:第一个地方是设置这个字体库大小的,因为我们要使用所有的汉字,所以这个地方尽量调大些。第二个地方是设置根据什么来生成字体库,默认是ASCII表,但是这种方式无法生成中文字体库,所以使用图...

2019-10-08 16:53:50 2374

原创 使用UnityWebRequest实现断点续传

断点续传原理记录已经下载到的本地文件大小,向资源服务器发送请求,拿到剩下还有多少没有下载(有请求头可以实现),然后接着没有下载到的地方开始再继续下载。PS:只要确保是对同一个资源文件的下载操作,那么就不存在资源会下载错误的情况,当然如果你在断点续传的阶段发现资源服务器上的资源已经更新,那就得删除之前下载的文件然后重新下载。UnityWebRequest下载文件下载文件都是通过一个URL从资...

2019-10-04 18:34:32 2902 3

原创 Unity 关于Xlua HotFix中会报的一些错

首先明确一下xlua热更新的函数是:xlua.hotfix(CS.C#类型, "函数名", function(self) CS.UnityEngine.Debug.Log("修改了代码") end然后提下错误xlua.access, can not find c# type这个是由于类型名没有使用HotFix标签或者不在配置文件的类里面(配置文件的设置请查看官...

2019-09-22 15:44:45 2307

原创 VsCode Luaide调试XLua

本文适合人群!!!本文章只适合哪些刚接触luaide、vscode以及xlua的人群,旨在帮助大家理解官方文档里面一些不是很清楚的操作,告诉在哪儿用,怎么用,不会去详细解释为什么(我自己也不知道)。官方文档连接:https://www.showdoc.cc/luaide?page_id=713892723028836官方文档前面几步都很好理解,按着一步一步来就行,最主要的还是从“调试代码”这...

2019-09-21 19:28:54 3540

原创 Unity 通过TextMeshPro创建属于自己的字体库

TextMeshPro简介Unity官方的插件,专门用来弥补UGUI中Text无法设置字符间距等不足,而且可以通过设置材质等方式制作出非常棒的字体效果。TextMeshPro安装TextMeshPro在2018版本以后就可以通过Window/PackageManager直接获取,而且可以自己选择版本,2018以前的可以直接去AssetStore上面下载,下载后你就可以使用(PS:需要去设置一...

2019-08-02 15:32:39 6857

原创 Unity 关于GUID的一些实用例子

关于GUID的具体理解可以参考这篇文章: https://www.cnblogs.com/zhaoqingqing/p/5823927.html这里我们就简单理解为表示Unity文件的一个唯一标识符使用例(代码均为其他人的代码,这里引用):引用查找:应用场景:项目资源多得一匹,代码冗余复杂很多都没有用,想知道哪些没有用过,哪些还有用的情况下,怎么知道哪些地方用到了这些资源。既然GUI...

2019-08-02 10:26:52 14063 2

原创 Unity SHA1加密

SHA1加密什么是SHA1加密自己百度,这里直接放代码public string MakeSHA1(string originalText) { SHA1 sha = new SHA1CryptoServiceProvider(); UTF8Encoding ue = new UTF8Encoding(); ...

2019-08-01 16:53:12 883

原创 Unity Inspector扩展

一些函数的使用网上查了一下,编辑器扩展使用的基本都是EditorGUI和EditorGUILayout(这两个实现的效果区别不大,根据Unity手册解释说明后者是前者的自动布局版本),所以大家可以去查看一下官方手册上,看看有哪些效果,这里只记录一些我用过的它们的效果及基本用法。基本使用:一般来说,一个Inspector扩展对应一个脚本,脚本名一般取为“目标脚本名Editor”,而关联两个脚...

2019-05-12 15:25:32 891

原创 Shader学习笔记

GPU编程标准Direct和OpenGL两种编程标准,前者是微软提供的,一般用于Windows平台,而后者是Linux、Android、ios等都共同支持的标准。由这两种标准就衍生出来了集中GPU编程语言,诸如HLSL、Cg、GLSL等,在Unity里面,并不直接使用者三种语言去编写,而是用自己自定义的ShaderLab去编写Shader,之后再根据平台去编译成某种语言,一般现在Unity重点...

2019-04-27 17:23:34 152

原创 Unity Editor可能错误汇总(持续更新)

UI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)这个报错是说你规定的区域并不平衡,在Editor里面经常用到Begin…()和End…(),这两个必须相对应,即必须成对出现,如果你没有成对使用,就会报这个错,所以出错了就去检查每一个Begin…()是否有对应的En...

2019-03-26 11:35:16 5316

原创 Unity EidotrWindow相关学习(一)

EditorWindow简介:什么是EditorWindow就简单说一下,平时我们用的Game窗口之类的就是一个EditorWidow,它由Unity编辑器提供,只在Unity内部起作用,而不会被打包到游戏里面去。自己的Window想要创建自己的一个Window,只需要创建一个脚本并继承自EditorWindow即可,这样你就可以有一个可以用来打开的Window了,但是这还不够,只有通过...

2019-03-26 10:19:17 143

原创 Unity 协程的一些基本用法及测试(二)

上一章介绍了通过函数的方式启动的协程,这一章我们测试一下用函数名启动的协程,代码如下:using System;using System.Collections;using System.Collections.Generic;using UnityEngine;public class CorTest : MonoBehaviour { private void...

2019-03-14 21:29:08 411

原创 Unity 协程的一些基本用法及测试(一)

协程的流程:Unity的协程按我自己的理解就是将一段代码延迟一段时间后再去执行,它的执行顺序是先启动协程,然后执行协程内的代码一直到yield语句,然后继续执行主程的代码,直到yield条件满足后程序会再次跳到yield之后的语句继续执行协程内的语句,知道协程内的语句执行完,或者又遇到yield语句,就继续上述流程。(具体可以去百度协程,这里只是大概讲一下)无参数的协程的启用与禁止:...

2019-03-14 20:57:15 10921 1

原创 Unity 关于刚体抖动的问题

如果各位是带刚体的物体在地面移动的时候抖动,可以查看如下原因:(跟随镜头的抖动原因可能也出自于此)一、是刚体物体可能与其他碰撞体有持续的接触,刚体在接触面上移动,比如说刚体在一个带有boxcolider的地面上移动,这个时候你就会发现有些地方会导致刚体位置的变化,应为boxcolider有一定厚度,你人物的colider可能会由于重力等原因进入这个碰撞体,从而导致碰撞体挤压。二、 查看人物...

2019-03-06 22:10:20 5615

原创 IDEA 快速搭建Netty项目

网上有很多方式搭建Netty项目,但是都很繁琐,而且不够详细,然后这里列一下最简单的创建方式。一、新建项目:File-&gt;New-&gt;Project:然后新建maven项目,不知道maven的可以参考如下链接,其中对后面的项目结构也有说明:https://www.cnblogs.com/whgk/p/7112560.html填名称和项目标签,示例如下:填...

2019-02-20 16:15:49 8840

A*算法源码

A*算法的具体实现,为了以后扩展做了一下封装,可以不继承现在的类,直接用,对核心代码没有影响

2018-12-11

人物3D选择效果脚本

关于Unity3D里面的一种UI效果,完成类似于王者荣耀那种3D人物选择效果

2018-11-08

Unity插件DOTween

Unity的关于动画的插件DOTween,导入工程可用,Unity5.x版本要更新

2018-11-08

个人UI框架

网上参考各位大神的学习资料制作而成,中间有一些修改,里面附带有DOTween,版本不适应的可以去下载新的用

2018-10-21

空空如也

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

TA关注的人

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