
Unity 积累
文章平均质量分 68
子胤
这个作者很懒,什么都没留下…
展开
-
xcode 自动化出包
iOS提高效率之Xcodebuild自动打包总结 - 简书使用xcodebuild命令进行自动化打包 - 简书Add a profile to the provisioningProfiles dictionary in your Export Options property list. | 亂馬客 - Re:從零開始的軟體開發生活原创 2022-02-22 10:59:00 · 1761 阅读 · 0 评论 -
Unity使用sdkmanager命令行工具安装Android SDK
转自:使用sdkmanager命令行工具安装Android SDKUnity自带的SDKManager没有GUI工具,如果需要其他android SDK版本,可以用Unity自带的SDKManager使用命令行方式安装:例如安装android27,将目录切到Unity的Android SDK安装目录后,打开命令行工具输入:./sdkmanager "platform-tools" "platforms;android-27" 即可...原创 2022-02-03 11:15:46 · 5616 阅读 · 0 评论 -
解决递归栈溢出:尾递归
原文:尾递归_百度百科尾递归如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成优化的代码。目录1原理 2实例原理当编译器检测到一个函数调用是尾递归的时候,它就覆盖当前的活动记录而不是在栈中去创建一个新的。编译器可以做到这点,因为递归调用是当前活..转载 2022-01-18 10:38:06 · 534 阅读 · 0 评论 -
UGUI 合批原理
转自:UGUI合批原理笔记 - 赵青青 - 博客园UGUI合批规则图解_时光不染-优快云博客_ugui合批规则合批的过程#网格更新机制#Cavans.SendWillRenderCanvas m_LayoutRebuildQueue m_GraphicRebuildQueue Canvas.BuildBatch 更新所有DrawCall WaitingForJob 子线程网格合并 PutGeometryJobFence BatchRendere.Flu.转载 2022-01-01 11:57:52 · 989 阅读 · 0 评论 -
TCP三次握手和四次挥手
转自https://segmentfault.com/a/11900000391655920. 前言在面试中,计算机网络的 TCP 三次握手和四次挥手是很常见的问题,但是在实际面试中,面试官会更愿意听到怎样的回答呢?详细程度是怎样的?越简单常见的问题越不可小觑,万丈高楼平地起,把简单的问题深入化,才更能拉开与竞争者的距离。掌握了本文讲的全部知识点,关于 TCP 三次握手和四次挥手基本就 OK 了 ????1. TCP 和 UDP讲解 TCP 三次握手和四次握手之前,我们先了解一下 TCP转载 2021-12-22 16:30:57 · 170 阅读 · 0 评论 -
通俗讲解:图像傅里叶变换
转自某乎:通俗讲解:图像傅里叶变换 - 知乎这里我们主要要讲的是二维图像傅里叶变换,但是我们首先来看一张很厉害的一维傅里叶变换动图。妈耶~厉害哇!它把时域和频域解释的很清楚!什么!你看不懂!简单点说就是:所有的波都可以用很多个正弦波叠加表示。然而这些波又可以通过频率、幅值和相位来表示。这样你就可以从左边那张图中时域的视角转化为咱们高大上的频域视角啦。那首先来看一个例子~其实右边图的每一个点,可以理解为它在描述一种平面波。那…其实还是有两个点之间还是有半分钱关系的,转载 2021-12-17 15:30:16 · 1567 阅读 · 0 评论 -
Unity中的SystemInfo.deviceUniqueIdentifier 唯一ID
做游戏时可能经常使用SystemInfo.deviceUniqueIdentifier作为用户的唯一ID进行注册登录,但是你会发现从谷歌商店上下载的自己游戏,和自己从Unity工程中直接打包出来的游戏账号竟然是不一致的!这个坑还是很坑爹的,纠其原因是SystemInfo.deviceUniqueIdentifier跟签名有关,Google商店的签名功能会对APK重签,从而导致SystemInfo.deviceUniqueIdentifier变化。所以想保证账号一致的情况下测试的话需要将app bun原创 2021-10-25 11:44:41 · 3738 阅读 · 0 评论 -
Unity URP中根据深度重建世界坐标
通过深度值重建世界坐标,可以做出很多有意思的后处理效果,先实现下度值重建世界坐标这个功能。一.验证重建效果首先,得先找到一种证明反推回世界空间位置正确的方法。在相机前摆放几个物体,尽量使之在世界坐标下的位置小于1,方便判定颜色,然后将几个物体的shader换成如下的一个打印世界空间位置的shader://打印在世界空间位置Shader "Universal Render Pipeline/Dejavu/ReconstructPositionWithDepth/WorldPosPrint"原创 2021-10-24 18:50:10 · 11985 阅读 · 3 评论 -
Unity Built-in Shader转URP Shader 接口查询对照表
本篇文章转自Teofilo Dutra编写的《From Built-in to URP》,其中有很多在写URP管线Shader时需要用到的函数,作为备忘速查表非常实用,所以记录于此。本文经过精简和翻译,不一定适用于大家,可以点击上方链接跳转至作者原文。本文是基于7.3版本的URP编写的,有些暂时还不支持的内容可能在后续版本更新迭代。结构首先要在SubShader的Tags中添加”RenderPipeline” = “UniversalPipeline”,并且使用HLSL的宏代替旧版的CG语言宏。转载 2021-10-13 10:41:53 · 5102 阅读 · 0 评论 -
Python 每日定时查询数据库生成Excel报表,并群发邮件
最近在做游戏打点数据的一些统计处理,写了个Python脚本完成每日定时自动查询生成Excel报表并群发邮件的小功能。拆解几个需求点:一.连接数据库并查询以下是一个查询总注册人数的示例代码,host port db user password等填入自己数据库的参数。mysql就不多说了,根据统计需求自己撸吧import pymysqlhost = 'xxxx'port = xxxdb = 'xxx'user = 'xxx'password = 'xxx'# ---- 用p原创 2021-10-11 14:33:44 · 2056 阅读 · 3 评论 -
ZoomBlur 聚焦模糊效果Shader(URP)
修改自这篇文章【Unity】UniversalRPでカスタムポストプロセスを作る【ZoomBlur】 - Qiita1. VolumeEditor,用于在UnityVolume中控制自己写的后处理效果using UnityEngine;using UnityEngine.Rendering;using UnityEngine.Rendering.Universal;[System.Serializable, VolumeComponentMenu("Dejavu/ZoomBlur..原创 2021-10-04 16:29:47 · 1231 阅读 · 0 评论 -
Z深度相关知识
// Z buffer to linear depthinline float LinearEyeDepth( float z ){ return 1.0 / (_ZBufferParams.z * z + _ZBufferParams.w);} // Values used to linearize the Z buffer (http://www.humus.name/temp/Linearize%20depth.txt)// x = 1-far/near// y = far/n.原创 2021-10-02 14:02:21 · 1576 阅读 · 0 评论 -
生成FaceBook所需的散列哈希值
Hex to base64 converterFaceBook后台发布应用时,需要填入hash值,今天自己用openssl生成的时候只有24位并不正确,与其费劲巴拉的自己折腾openssl,还是感谢国外的大佬们吧,工具网址直接输入hex的sha1值*(从GooglePlay的后台中找到自己的应用,在应用信息中心可以获得),生成所需的base64 散列值。回答链接:Android-Facebook应用的密钥哈希您可以从SHA-1密钥获取密钥哈希。非常简单,您需要从Play商店获取SHA-1(Sig原创 2021-09-30 17:28:04 · 1742 阅读 · 0 评论 -
Unity内实现Android APK版本更新
最近做项目有个需求是要Android应用内强更包体。Google一波直接选了一个android原生开源项目GitHub - yangchong211/YCUpdateApp: 轻量级版本更新弹窗,弹窗上支持更新进度条,可以设置普通更新或者强制更新。解决8.0以上通知栏不显示问题,解决7.0以上安装apk异常,下载完成则会自动提示安装;下载异常,失败,错误等状态,支持重启下载任务;还支持自定义下载路径。代码量少,调用简单……但是也是需要接入到Unity中,趟了一些小坑记录下实现步骤步骤1Un.原创 2021-09-15 11:19:19 · 1985 阅读 · 0 评论 -
Unity Android解决信息流广告关闭报错
Unity接一些原生Andorid的SDK时,经常会出现这个错:W/System.err: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.解决方法是在android层写的java文件中用runOnUiThread()原因就是android的UI更新要在UI主线程中,广告SDK一些回原创 2021-09-01 11:01:11 · 242 阅读 · 0 评论 -
使用arm-linux-androideabi-addr2line 定位Unity Android 段错误
arm-linux-androideabi-addr2line是NDK中提供的将内存地址转换成行号的一个工具,通俗具体点就是根据各种日志,譬如trace日志和tomestone日志中包含的so库日志的中偏移内存地址,定位到具体是在那个文件的那一行。Unity的安装目录中,如果安装了NDK,就会自带这个工具比如我的路径如下(windows版本工具)F:\Unity\2019.4.11f1\Editor\Data\PlaybackEngines\AndroidPlayer\NDK\toolchains\原创 2021-06-30 18:48:43 · 2575 阅读 · 3 评论 -
Unity shader图集Atlas下的UV坐标归一化转换
unity中如果图片打入了图集中,在shader中取到的uv坐标默认是图集中的坐标,如果需要shader做一些类似流光的效果,需要转换成常用的0-1区间的归一化uv坐标,转换方法如下:步骤一:C#中向shader中传入图片在图集中的Rect信息和Scale信息 Vector4 UVRect = UnityEngine.Sprites.DataUtility.GetOuterUV(spriteRenderer.sprite); Rect originRect = spriteRenderer...原创 2021-05-06 14:14:57 · 3812 阅读 · 0 评论 -
模拟弱网工具的使用
https://zhuanlan.zhihu.com/p/98185153https://www.jianshu.com/p/5e35a3585df5今年5G技术开始铺开并进入商用。随着5G的到来,不知道大家有没有和我一样的感受,希望是我心理作用吧,我发现作为一个4G用户,最近我的手机网速是不如从前了。特别是在游戏、或者是看一些重要直播的过程中,网络的卡顿延迟,真的让人大为光火。所以我想在最近分享一下,游戏测试需要怎么开展弱网测试,来尽量避免网络问题带给用户的不良体验。作为移动端游戏测试,网络环转载 2020-12-22 15:02:19 · 2558 阅读 · 0 评论 -
帧同步相关文章
https://zentia.github.io/2019/04/22/frame-sync/http://www.skywind.me/blog/archives/131https://blog.codingnow.com/2018/08/lockstep.html原创 2020-12-04 15:54:03 · 521 阅读 · 1 评论 -
Mono,CLR,.net,Net Framework之间的关系
先粗略看下各自的意义:.Net:以下这些技术的统称。是一个平台,而.NET平台有一个实现标准,叫做.Net Standard; .Net Framework/.Net Core/Mono:实现了这个标准,其选择的组件不一定相同 CLR:Common Language Runtime 一个执行引擎,用于进行一类程序(CLI),提供类型系统、垃圾回收、JIT等功能;目前有3个主要实现,分别为coreclr用于.Net Core、desktop clr用于.Net Framework(有了coreclr之原创 2020-08-27 17:39:52 · 3202 阅读 · 1 评论 -
Unity游戏中的一些规范和优化建议
一.代码规范和建议 避免Update LateUpdate等函数内频繁的GC Alloc,避免在Update和LateUpdate内有以下操作: 调用GetComponet() 调用FindObjectsOfType() 使用GameObject.Tag和GameObject.Name 等等其他有堆内存分配的操作 避免频繁调用ToString()分配内存 避免OnGUI的调用 禁止使用Debug.Log打印log,用框架中的LogM原创 2020-08-26 21:24:38 · 590 阅读 · 1 评论 -
Unity项目代码书写规范
以Google的代码规范为主,稍加改动书写规范基础写法Pascal和驼峰混用,参数用驼峰写法,除参数外,都以Pascal写法为主。 括号建议用换行方式书写Code类, 方法, 枚举, public 字段, public 属性, 命名空间的命名规则用:PascalCase. 局部变量,函数参数命名规则用:camelCase. private, protected, internal and protected internal 字段和属性的命名规则用:_camelCas...原创 2020-08-26 20:05:16 · 3192 阅读 · 0 评论 -
字符编码笔记:ASCII,Unicode 和 UTF-8
作者:阮一峰日期:2007年10月28日今天中午,我突然想搞清楚 Unicode 和 UTF-8 之间的关系,就开始查资料。这个问题比我想象的复杂,午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。我尽量写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。一、ASCII 码我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位..转载 2020-07-19 18:32:06 · 126 阅读 · 0 评论 -
Please provide an auth token with USYM_UPLOAD_AUTH_TOKEN environment Unity Mac 命令行出包报错
Unity有些版本的bug,因为什么Cloud build。这几天更新Unity版本后jenkins无法自动打IOS IPA,报错内容为:Please provide an auth token with USYM_UPLOAD_AUTH_TOKEN environmentGoogle一大波,才找到解决方案:填写个假的tokenhttps://forum.unity.com/threads/ios-build-is-failing-seems-like-a-fastlane-problem-n.原创 2020-07-16 16:17:20 · 1479 阅读 · 0 评论 -
Xcode and Unity missing library ‘lGoogleUtilities‘
https://stackoverflow.com/questions/58187800/xcode-and-unity-missing-library-lgoogleutilities原创 2020-07-15 11:35:36 · 240 阅读 · 0 评论 -
Unity降版本的蛋疼操作
最近项目遇到个极为蛋疼的需求,因为某SDK不支持新版本https://www.cnblogs.com/CodeGize/p/8697227.htmlusing System.Collections.Generic;using System.IO;using UnityEditor;using UnityEngine;public class ProcessUnityVersion{ public static Dictionary<string, string>.原创 2020-07-08 18:43:24 · 3245 阅读 · 0 评论 -
UnityEngine.UI.dll 路径
2019.2之后,路径已经从 Unity安装目录下的Editor\Data\UnityExtensions移动到了 package里,通过package编译后生成的dll在工程目录下的library里原创 2020-06-02 18:14:50 · 3859 阅读 · 3 评论 -
叉乘和平行四边形面积
转载 2020-06-02 14:22:59 · 4085 阅读 · 0 评论 -
C# int[,] 和 int[][]
原文链接:https://www.cnblogs.com/ILoveMyJob/p/9211102.html转载 2020-06-01 21:07:56 · 606 阅读 · 0 评论 -
C#委托(delegate、Action、Func、predicate)和事件
https://www.cnblogs.com/snailblog/p/11520438.htmlhttps://www.cnblogs.com/jixiaosa/p/10687068.htmlhttps://developer.51cto.com/art/201002/182004.htm原创 2020-04-15 12:11:34 · 194 阅读 · 0 评论 -
行为树(Behavior Tree)实践(1)– 基本概念
原文:http://www.aisharing.com/archives/90行为树(Behavior Tree)实践(1)– 基本概念自从开博以来,每天都会关心一下博客的访问情况,看到一些朋友的订阅或者访问,不胜欣喜,也促使我去写一些更好的博文,来和大家分享和交流,从访问统计来看,有相当一部分是来自于搜索引擎的流量,关键字以“行为树”,或者“Behavior Tree”居首位,我想大家对...转载 2020-04-01 10:56:43 · 373 阅读 · 0 评论 -
聊聊网络游戏同步那点事
写的非常好的一篇博文,转载自https://www.cnblogs.com/murongxiaopifu/p/6376234.html0x00 前言16年年底的时候我从当时的公司离职,来到了目前任职的一家更专注于游戏开发的公司。接手的是一个platform游戏项目,基本情况是之前的团队完成了第一个版本,即单人模式的基础玩法,但是之后对该项目的定位又变成了一个本地局域网的联机手游(2-4个玩...转载 2020-03-27 23:38:27 · 224 阅读 · 0 评论 -
走进LWRP(Universal RP)的世界
走进LWRP(Universal RP)的世界原文:https://connect.unity.com/p/zou-jin-lwrp-universal-rp-de-shi-jieLWRP自Unity2018发布以来,进入大家视野已经有一段时间了,不过对于广大Unity开发者来说,依然相对比较陌生,原因有几个,一是一直以来LWRP都处于预览状态,使用中会遇到一些bug,所以也就止于尝试。...转载 2020-03-11 16:31:45 · 6429 阅读 · 0 评论 -
attribute的用法--C#
一直以来都没理解attribute是个什么东西,也没怎么用,但是看msdn或者git上源码使用的还是蛮频繁的,今天好好整理了下,写下自己的理解和例子:attribute主要用来说明代码段的的信息,标志等;可以一种元数据结构,不会影响到代码段的结果。这个代码段可以是class,struct,method,constructor等结构,下面会给出反编译源码说明哪些代码段可以作为目标。1...转载 2020-02-27 11:48:30 · 647 阅读 · 0 评论 -
Unity c#中Attribute用法详解
举两个例子,在变量上使用[SerializeFiled]属性,可以强制让变量进行序列化,可以在Unity的Editor上进行赋值。在Class上使用[RequireComponent]属性,就会在Class的GameObject上自动追加所需的Component。以下是Unity官网文档中找到的所有Attribute,下面将按照顺序,逐个对这些Attribute进行说明和小的测试。部分例子...转载 2020-02-27 11:47:16 · 2328 阅读 · 0 评论 -
Unity游戏开发——C#特性Attribute与自动化
这篇文章主要讲一下C#里面Attribute的使用方法及其可能的应用场景。比如你把玩家的血量、攻击、防御等属性写到枚举里面。然后界面可能有很多地方要根据这个枚举获取属性的描述文本。比如你做网络框架的时候,一个协议号对应一个类的处理或者一个方法。比如你做ORM,一个类的属性是否映射持久化文件中的属性,映射过去的属性名是什么。1、什么是Attribute如果用过Java的An...转载 2020-02-27 11:46:16 · 531 阅读 · 0 评论 -
C# Job System
概述设计目的:简单安全地使用多线程,随便就能写出高性能代码收益:FPS更高,电池消耗更低(Burst编译器)并行性:C# Job System和Unity Native Job System共享工作线程worker threads,也就是它们不会创建超过CPU cores数量的线程,也就不会导致CPU资源抢占问题。什么是多线程单线程:一次执行一条指令,产生一个结果多线程:利...转载 2020-02-18 17:18:09 · 737 阅读 · 0 评论 -
Unity C# Job System介绍(三) Job的创建和调度
创建JobsUnity - Manual: Creating jobsdocs.unity3d.com为了在Unity中创建一个job你需要实现IJOb接口。IJob允许你调度一个job,和其他jobs并发执行。Unity - Manual: Creating jobs为了在Unity中创建一个job你需要实现IJOb接口。IJob允许你调度一个job,和其他jobs并发执行。注意:...转载 2020-02-18 16:05:04 · 4030 阅读 · 0 评论 -
Unity C# Job System介绍(二) 安全性系统和NativeContainer
C# Job System中的安全性系统https://docs.unity3d.com/Manual/JobSystemSafetySystem.htmldocs.unity3d.com资源竞争当我们编写多线程代码时,经常会有产生资源竞争的风险。资源竞争会在一项操作的输出依赖于另一项它掌控之外的操作时发生。资源竞争并不总是视为一个bug,但它却是不确定行为发生的原因之一。当资源...转载 2020-02-18 16:04:02 · 881 阅读 · 0 评论 -
Unity C# Job System介绍(一) Job System总览和多线程
C# Job System 总览Unity的C# Job System使用户可以编写与Unity其他部件交互的多线程代码,同时让编写正确的代码变得更容易。编写多线程代码可以提供更好的性能表现。这包括非常明显的帧数提升。C# job协同Burst编译器可以提升代码生成的质量,这也会使得移动设备电量消耗大幅度降低。C# Job System的一个非常关键的方面是它可以融入Unity内部的原...转载 2020-02-18 16:03:03 · 1532 阅读 · 0 评论