RxTool(Android工具库)
前言
所谓:工欲善其事必先利其器! RxTool 是 Android 开发过程经常需要用到各式各样的工具类集合,虽然大部分只需谷歌一下就能找到。 但是有时候急需使用却苦苦搜寻不到,于是整理了自己平常用到的工具类,以便以后的使用。
★★★★★
★★★
★★
★
★
★
★
★
关键词
Android开发人员不得不收集的工具类集合
支付宝支付
微信支付(统一下单)
微信分享
Zip4j压缩(支持分卷压缩与加密)
一键集成UCrop选择圆形头像
一键集成二维码和条形码的扫描与生成
常用Dialog
WebView的封装可播放视频
仿斗鱼滑动验证码
Toast封装
震动
GPS
Location定位
图片缩放
Exif 图片添加地理位置信息(经纬度)
蛛网等级
颜色选择器
ArcGis
VTPK
编译运行一下说不定会找到惊喜
我的运行环境
Android Studio 3.6
Build #AI-192.7142.36.36.6200805, built on February 12, 20 ...
Unity多线程渲染导致部分手机崩溃
前言测试环境:
Unity2021.3.24f1
崩溃堆栈Logcat
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 E *** *** *** *** *** *** *** ** ...
好用的CDN之jsDelivr
前言CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。——百度百科
由于某些原因,很多公用免费的 CDN 资源在中国大陆并不很好用,就算是付费的,也有一定的限制,例如每天的刷新次数有限之类的。那有没有一款造福人类的,或者造福中国大陆的公用 CDN 呢?
正文jsDelivr先看看官方的介绍:
这是在中国大陆唯一有 license 的公有 CDN,而且实际使用中的访问速度也是极快的(虽然官网打开速度慢
与 Github、NPM、WorldPress 整合官网地址:https://www.jsdelivr.com 没梯子访问可能有点慢,不过CDN的节点是很快的 可以引用的资源包括NPM、github、wordpress的所有资源,github可以是任意体积小于50M的仓库。
以github为例,只需要通过符合 JSDelivr 规则的 ...
Unity坐标系统
前言本文会详细介绍三维软件中7种坐标的特点与关系,还有在脚本编辑和shader系统中的使用方法后续更新
正文不同空间中坐标的转换方法七种坐标系简介
unity 使用的是左手坐标系,即:↑=Y,↓=-Y,前=Z,后=-Z,←=-X,→=X。总共有七种坐标系,分别是模型坐标、世界坐标、观察坐标、裁剪坐标、屏幕坐标、ui坐标,uv坐标这七种坐标会按照一定顺序转换在程序中运行,实际上这就是模型从计算到在屏幕上显示的过程。
一 模型坐标
Local Space (模型坐标):就是一个模型自己的坐标,如果该模型下有子模型,则子模型也拥有自己的模型坐标,多个子模型在父模型下共享父坐标。坐标:模型原点为(0,0)需要说明的是一个模型坐标的原点位置在创建模型的时候就定义好了。如果需要更改只能在blender或3dmax等建模软件中设定。unity是不能设置模型坐标原点的。获取方式:在unity脚本中:transform.localPosition在unity shader中:顶点着色器默认输入的就是模型坐标
二 世界坐标
World Space(世界坐标):场景中的一切物体,包括模型,灯具,相机都共 ...
Unity的ShaderLab着色器入门
前言如果你对cg glsl hlsl 顶点着色器 片段着色器 表面着色器 固定渲染管线 等等有所疑惑,或是想学会unity的渲染,看这一篇就足够了。另外我博客的shader分类中还有很多shader教程和源码,每篇源码都有实现思路、语法功能注释,还在不断更新添加中。感兴趣的请自行查看
正文让vs支持shader点击vs的工具>扩展和更新>联机>visual studio marketplace搜素shader点击下载重启vs弹出installer,点击修改 即可。
一,基础知识关于着色器语言与Shader Lab
着色器语言有三种:hlsl(DirectX)glsl(OpenGL)cg(支持以上两种)Shader Lab 是unity封装了cg、hlsl、glsl的unity专有着色器语言。shaderlab具有跨平台、图形化编程、便于着色器与unity通信等优点。在unity2018.3.5f以后版本,可以使用图形化工具shader graph来大幅缩减shader编程成本,使这个令人头疼的语言走入寻常百姓家。。。。。但作为一个unityer最好具有基本的Shade ...
C#中ReadOnly和Const的区别
前言这里是前言介绍。
C#基本知识点-Readonly和Const的区别目录
什么是静态常量(Const)和动态常量(Readonly)
静态常量(Const)和动态常量(Readonly)之间的区别
动态常量(Readonly)被赋值后不可以改变
总结
什么是静态常量(Const)和动态常量(Readonly) 先解释下什么是静态常量(Const)以及什么是动态常量(Readonly)。 ** 静态常量(Const)是指编译器在编译时候会对常量进行解析,并将常量的值替换成初始化的那个值。 ** 动态常量(Readonly)的值则是在运行的那一刻才获得的,编译器编译期间将其标示为只读常量,而不用常量的值代替,这样动态常量不必在声明的时候就初始化,而可以延迟到构造函数中初始化。
静态常量(Const)和动态常量(Readonly)之间的区别静态常量(Compile-time Constant)
动态常量(Runtime Constant)
定义
声明的同时要设置常量值。
声明的时候可以不需要进行设置常量值,可以在类的构造函数中进行设置。
类型限制
只能修饰基元类型 ...
Unity粒子特效的适配
前言最近在工作中使用粒子特效是发现了两个问题
1. 美术提供的粒子特效没有根据屏幕分辨率自适应调整大小
2. 粒子特效的层级比较奇怪
正文粒子特效自适应在Unity编辑器开发中,使用的是 1080*1920 的分辨率,粒子特效大小看起来完美契合。
在打包运行在手机上时,因为手机的分辨率为 1440*2960,粒子特效就明显大于了UI界面。
解决办法:
将粒子特效的 Scaling Mode [缩放模式] ,改为 Hierarchy [跟随父节点缩放]。
注意,改变了缩放模式之后,运行时会发现粒子变得特别小,这是因为Unity重置了该粒子特效的大小,只需要重新调整大小即可。
因为我是在FGUI的基础上穿插使用粒子特效,因为 FGUI 与 Unity 的比例不一致,比例为1:100,所以粒子特效需要将缩放比放大100倍。
Scaling Mode 为 Local 时不会有 FGUI 的比例问题,但是会有分辨率不适配问题,两害取其轻,所以选用 Hierarchy 模式。
1effect.transform.localScale = Vector3.one * 100;
粒子 ...
《守望先锋》架构设计和网络同步
前言《守望先锋》2017 GDC系列的分享前几年给了我很多帮助,尤其是kevinan大神的翻译更让我受益良多,如今我再想温习一下相关技术却发现很多网络上的文章图片都已经坏掉了,故在此收集网络资源发布重置版,当成备份。
重制版内容:新增多级标题,方便分块阅读,部分图片已由本人重置,一些必要的地方我录制了Gif图,方便观看。
全系列链接:《守望先锋》GDC2017技术分享精粹重制版总目录
原视频链接:https://www.youtube.com/watch?v=W3aieHjyNvw&t=2886s&ab_channel=GDC
ECSECS概述哈喽,大家好,这次的分享是关于《守望先锋》(译注:下文统一简称为Overwatch)游戏架构设计和网络部分。老规矩,手机调成静音;离开时记得填写调查问卷;换下半藏,赶紧推车!(众笑)
我是Tim Ford,是暴雪公司Overwatch开发团队老大。自从2013年夏季项目启动以来就在这个团队了。在那之前,我在《Titan》项目组,不过这次分享跟Titan没有半毛钱关系。(众笑)
这次分享的一些技术,是用来降低不停增长的代码库的复杂度 ...
Unity性能优化
前言最近开始进行Unity性能优化的工作,主要分为三类:CPU、GPU和内存。CPU的优化又分为渲染和脚本,本文将着重于脚本优化。
正文Unity性能优化 – 脚本篇一般来说,优化必须要知道性能热点在哪里,而知道性能热点则需要在目标设备去进行深度的profile。如果不进行profile,而是靠臆测去进行优化,往往会事倍功半,甚至适得其反。
本文所讲述的是已经经过验证的,通用的优化方法和思路,可以为大家节约一些profile时间。以下将从Unity API、C#、Lua、数据结构和算法等方面来详细阐述优化建议。
Unity APIGameObject.GetComponentUnity是基于组合的开发方式,所以GetComponent是一个高频使用的函数。每次调用GetComponent时,Unity都要去遍历所有的组件来找到目标组件。每次都去查找是不必要的耗费,我们可以通过缓存的方式来避免这些不必要的开销。
其中Transform是我们用到最多的组件,GameObject内部提供了一个.transform来获取此组件。然而经过测试(2017.2.1p1)我们发现缓存的效率依然是最高的 ...
gitattributes文件
前言这里是前言介绍。
正文什么是 .gitattributes ?当执行 git 动作时,.gitattributes 文件允许你指定由 git 使用的文件和路径的属性,例如:git commit 等。
换句话说,每当有文件保存或者创建时,git 会根据指定的属性来自动地保存。
其中的一个属性是 eol(end of line),用于配置文件的结尾。本文将会深入了解如何配置文件的结尾行,这样的话,即使在不同的机器、操作系统 上都可以使得每个开发者都可以使用相同的值。
为什么是 .gitattributes(开发者之间的争议 ⚔️ )?不是所有的开发者都是一样的,不能因为你是在 Windows 上使用 Visual Studio Code 开发的,就期望别的 Pull Request 也是基于相同的开发 环境完成的(在 MacOS 上可能用的是 Sublime Text2)。
正如上面提到的,开发者使用不同的操作系统,默认的文件结尾行就会不同。在 Windows 上默认的是回车换行(Carriage Return Line Feed, CRLF),然而,在 Linux/MacOS 上则是 ...