- 博客(49)
- 资源 (1)
- 收藏
- 关注
原创 [保姆教程] [fun] 3分钟入门阿里云函数计算
简介无服务架构现在已经成为网络应用服务的趋势,较流行的有AWS的Lambda和阿里云的函数计算,它的职能是将开发人员从繁琐的部署作业中解脱出来,简化大型应用场景的部署任务,使开发者专注于业务开发和迭代。它最大的优点是冷启动,弹性扩容,调用计费。冷启动 用户首次访问的时候才会实例化服务 没有任何用户访问的时候,它不运行,不占用服务器资源 弹性扩容 服务实例随着访问量减少,或者增加 量大的时候自动扩容,增加实例流量阻塞 量小的时候自动缩容,释放无用实例资源 调用计费 服务进
2021-01-04 02:36:23 2271
原创 [保姆教程] [Ubuntu] 如何在Windows环境下搭建Ubuntu的虚拟开发环境
目录简介搭建环境安装V-Box简介本文讲述如何在Window环境下搭建基于Ubuntu系统的虚拟开发环境。在开始先,我们需要下载搭建过程中需要用到的工具,工具如下: 下载 Virtual-Box (提供虚拟开发环境的软件) https://www.virtualbox.org/wiki/Downloads 下载 UBuntu Server(我是用的是ubuntu-18.04.3-live-server-amd64) http://old-rel.
2020-12-06 21:27:00 2604 1
原创 深入了解Unity剔除(草稿)
剔除是渲染流程的一部分,也是渲染之前首先要做的事情,在Unity中提供摄像机视椎体剔除、遮挡剔除两种解决方案。这两种剔除检测都以摄像机为参考中心,而且每一帧都会执行剔除操作。剔除操作会检查场景中的渲染器,并排除那些不需要绘制的渲染器。默认情况下摄像机执行视椎体剔除,这个过程是排除那些不在摄像机视椎体范围内的渲染器。视椎体剔除不检查被渲染对象是否被遮挡,所以Unity会渲染那些最终帧中不可见的渲染器,仍然浪费时间渲染不可见的对象对于CPU和GPU是徒劳的。...
2021-11-12 17:29:08 5389
原创 [Android] [逆向工程] 安卓逆向入门篇
掌握逆向工程可以带给你哪些技能?抓取APP内容 制作套壳包拦截APP数据 破解单机游戏修改游戏属性行为 加强反逆向的防范意识逆向手段介绍我了解到的安卓逆向有复现工程、侵入工程、注入工程三种手段。复现工程复现工程是指通过工具将APK转换为Android工程,并对Android工程的配置项修复使其可以正常运行,只要工程可以被成功复现接下来就可以为所欲为了。事实上并不是所有工程都可以被成功复现,而且需要花费大量的时间去复原工程,这也非常考验开发人员的耐心和技术经验。侵入工程侵入工程
2021-11-05 16:36:06 5169 1
原创 [AWS] [Root User] 分配一个IAM账号
前言这篇适合任何人,前提是你现在拥有一个AWS账号并且想了解IAM是如何创建的。IAM的作用IAM是AWS的一个身份管理系统,多个IAM角色依附于一个根账号,并且由根账号决定IAM角色的行动能力。IAM账号的组成部分一个IAM账号由策略,用户,用户组三部分组成。策略决定了IAM的行动能力和内容可见度,用户是对IAM账号信息的管理,用户组方便了不同类型IAM账号的集中管理。在实际操作新建一个类型的IAM账户时,我们通常要先创建【策略】,在创建【用户组】,最后创建【IAM用户】,庆幸的是
2021-08-29 21:51:30 914
原创 [AWS] [Root User] 拥有一个AWS的根账号
前言这篇适用于想要学习AWS但没有账号的新人,或者长期使用IAM工作的AWS开发者。这篇文章将帮助你拥有一个自己AWS账号,以便进行学术研究和探究。账号级别在AWS上一个账号分为两个级别,根账号和IAM账号。根账号是AWS平台的准会员账号,只能通过注册获得,有了它,我们就可以享受AWS带来的各种各样的云服务。IAM账号是经过根账号授权获得的子账号,它只能由根账号创建,并且它的行为受限于根账号的决策。那么对于想要学习入门AWS,却没有自身环境的人来说,拥有一个根账号是势在必行的事情。前提条件
2021-08-29 20:14:03 927
原创 [android][打包] 命令行
安卓签名java -jar .\apksigner.jar sign --ks 【签名文件.jks】--out 【输出.apk】【输入.apk】
2021-05-21 17:30:43 205
原创 [AWS] [命令行] 命令行使用手册
简介这篇文章将帮助你学习,如何查找并应用陌生的Cli指令。解决思路1.找到Cli的帮助文档2.查找相关业务模块的API帮助文档找到Cli的帮助文档1. 通过百度搜索 aws 命令行 或访问网址:https://aws.amazon.com/cn/cli/2. 点击Cli参考 或访问网址:https://docs.aws.amazon.com/cli/latest/reference/查找相关业务模块的API帮助文档这里以使用cli访问s3ap...
2021-05-21 11:07:17 810
原创 [Android] [逆向工程] 工具集
反混淆工具:https://files.cnblogs.com/files/somefuture/cfr-1.5.7z使用教程:https://www.cnblogs.com/somefuture/p/14009915.html
2021-05-19 14:51:06 365
原创 [C++网络编程] [Asio Non-Boost] 2.编写一个简单的EchoServer
简介本文将使用官方的实例代码,编写一个自动交互的EchoServer。N个客户端角色每过一秒向服务器发送一条字符串消息服务器将接收到的消息,原封不动的返回给客户端,并在控制台输出是哪个客户端发送的什么消息EchoExamples服务器和客户端写死的都是5000端口AsioEchoServer源码//// async_tcp_echo_server.cpp// ~~~~~~~~~~~~~~~~~~~~~~~~~//// Copyright (c) 2003-2020 Chr
2021-05-18 18:40:53 536 1
原创 [C++网络编程] [Asio Non-Boost] 1.搭建Asio的开发环境在Linux上
简介文章将帮助你学习,如何在Linux上搭建Asio-Cpp的开发环境,并使用Asio-Cpp完成一个简单的EchoServer。安装Asio-CPP下载地址:
2021-05-18 17:58:11 2580 4
原创 [保姆教程] [Python] 基于对象的配置 1
前言我在开发中遇到这样的问题,我要去写一个配置文件,但是配置文件中有很多重复的内容和结构,后来我想如果我能以对象的形式去配置文件字段,会不会很棒。那样我只需要配置一些模块,让模块之间产生引用和继承关系,这样不就解决这个问题了吗。思考了很久,其重点是怎么去让模块之间,建立引用和继承关系。我尝试者用Python实现了它,它看起来效果还不错。class ObjectConfiger(): """ 基于对象的配置 使用它可以建立不同dict之间的对象关系
2021-04-05 00:48:21 184
原创 [保姆教程] [Database Model] 1分钟了解亿万数据的结构设计模型
简介你是否也有这样的困扰?苦恼怎么样设计才能让数据库支持数亿,数十亿或者数百亿级别的数据业务。苦恼设计怎样一种模式,才可以兼容高体量数据的动态分配,扩容,合并。如果你还没有找到合适的方案,不如看看这篇文章,帮助你认识基于角色数据的寻址方案(Role Data Addressing Model)。这个方案用能够解决哪些问题?减轻数据负载,它的核心思想是以角色为中心,将角色的所有负载数据拆分成子表管理,从而减轻数据体量对数据库造成的压力。动态分配,使用它你可以在运行时指定当前的角色数
2021-03-21 18:04:08 366
原创 [保姆教程] [Python] 1分钟玩转枚举
前言你是否还用老土的方式使用枚举,像这样,这样,或者是这样......# 像这样class Colorful: Red=0 Green=1# 或者这样class Colorful: Red=0 Green=1 keys = ['Red','Green'] items= { 'Red':0, 'Green':1 }# 像这样校验数据if _ in Colorful.keys: # 有效值e
2021-03-16 21:48:36 342 1
原创 [保姆教程] [Postgres] 1分钟深入了解Postgres主键自增
简介用最简单的教程,抓住最重要的点。本章教程将带你认识Postgres的自增的用法,以及自增的原理。本章节中会使用Navicat工具对Postgre的数据库进行操作,如果你能按照教程操作,这将会帮助你加深印象。初遇自增顾名思义,就是自动增加,最终产生的结果会生成一组有序的值,也称作序列值。实际,我们仅仅需要两步操作即可为一个字段添加自增属性,第一步,声明自增变量,第二步引用自增变量。声明自增变量首先,我们使用下面的SQL命令创建一个自增变量,语法如下:--auto 是自定义
2020-12-15 02:28:29 627
原创 [保姆教程] [Postgres] 3分钟在Ubuntu环境下安装Postgresql
简介用最简单的教程,找出最重要的点。这篇教程将帮助你,在Ubuntu上安装postgresql。安装Postgre通过 install postgresql 指令安装最新版sudo apt-get install postgresql当然也可以在末尾指定版本号,来安装你需要的版本sudo apt-get install postgresql 10.15修改Postgre的登录密码在安装后会默认创建一个名叫postgres的数据库,并且默认创建名叫postgres的登录账号,密
2020-12-14 02:08:51 468
原创 [保姆教程] [Python] 3分钟搭建Python远程开发环境
简介这篇文章将帮助你学习,如何在Linux虚拟机环境下,配置Python开发环境,并通过VSCode访问虚拟机中的工程。前提条件是你已经掌握了搭建Linux.Ubuntu虚拟开发环境的技能,如果你还没有掌握,请参考《如何在Windows环境下搭建基于Ubuntu的虚拟开发环境》。 学习目标 在Linux环境下配置Python开发环境 创建和访问虚拟机上的Python项目 在Ubuntu上配置Python环境该段落会跳过XShell与虚拟机连接的知识,具体
2020-12-12 17:58:19 1393
原创 [Asset Bundle][Technique] Addressable动态寻址的技术解析
序先定义几个名词:流媒体目录:streamingAssetsPath持久化目录:persistentDataPath临时存储目录:temporaryCachePath通常我们会怎么用AssetBundle,我们将它们放在【流媒体】目录,然后在每次安装游戏后,将【流媒体】目录中的AB文件,拷贝到【持久化】目录中,然后统一读取持久化目录中的文件。这里会遇到两个问题,第一个问题是如果AB资源在700M以上1GB以下,这个拷贝的过程将会十分的漫长,在协程和线程的优化下,至少也需要10秒,15
2020-09-20 22:33:49 548
原创 [XLua] [Hotfix] 实现继承CSharpClass的Lua类
序 这篇文章更适合有XLua编程基础的人,如果对XLua有概念性学习,希望了解更多关于热补丁时的处理细节,那么这篇文章同样会帮助到你。 那么,这篇文章将帮助你,认识并实现一个可以继承CSharpClass的Lua类,从而在热补丁的使用过程中更加的便捷。怎么实现实现思路如下在C#Class的的构造函数中,返回我们自己创建的表重写表的 get 和 set 接口get 数据时,优先返回自建表的属性字段数据,其次返回C# Object的属性字段数据set 数据...
2020-09-01 10:07:50 1090
原创 [UnityWebRequest] [Technique] 下载文件断点续传
序当你从网上下载文件时,偶尔总会遇到网络不佳的情况,这个时候,端点续传就帮上了大忙。当然,如果能把它应用到游戏文件的下载更新上,那将会给用户带来更好的体验,下面这篇文章将帮助你,在UnityWebRequest的基础上实现端点续传的功能,以及如何应用断点续传来优化你的下载方案。原理 他的原理很简单,只需要在请求数据的时候带上一个A-B的Range参数,来获取A-B的数据段。假设一个文件的大小为2000个字节,那么我们填写区间的有效值应该是0~1999注意:超出1999后将返回所有...
2020-08-24 00:12:58 283
原创 [XLua] [经验] 编译整合第三方库后的XLua
前言: 这篇文章将帮助你如何编译Window和Android的XLua版本。序 整合第三方库确实是个很麻烦的事情,不过庆幸的是已经有人做了这份工作。 他来自:https://github.com/chexiongsheng/build_xlua_with_libs 通过这个地址你可以拿到一个已经将大部分第三方库整合完毕的版本,拿到项目后,第一件事是将确定不需要的库从项目中删除。移除不需要的第三方库红线框起来的都是第三方库,他们在CMakeLists....
2020-05-24 22:57:36 1675
原创 [Mini Tree] [图形学] 有根最小树最易懂的实现方案
序在这里我把最小树分为没有根节点和带有根节点两种类型,没有根节点的最小树表示的是对象集中,对象与对象之间最佳的联系状态。而带有根节点的最小树恰巧相反,它表述的是其他对象与根对象最佳的联系状态。图像左图是没有根节点的最小树形状,右图是带有根节点的最小树形状,红色的球就是它的根节点,这种结构描述出其他点到根节点代价最小的路径。如何实现它实现的方式十分的简单,它在流程上一直重复三...
2020-04-26 16:16:18 639
原创 [Mini Tree] [图形学] 无根最小树最易懂的实现方案
序假设有这么一个问题,需要通过程序生成一个随机的房间,房间里面摆设了很多物件,这些物件按照一定的逻辑关系进行放置,有的可以放置其他的物件,有的不可以放置其他的物件。那么,在这种情况下怎么使用程序生成这个房间呢。如果只用代码去写某些特定的逻辑的话,去实现这种应用场景的话,我想这一定是一件很痛苦的事情,我们需要一种通用的手段去处理类似的问题,那么这时候最小树就是最好的选择。什么是最小树...
2020-04-22 20:35:34 767
原创 [Delaunay Triangle] [图形学] 优化方案实现代码
序解决方案原理源码代码基于C#&&Unityusing System.Collections.Generic;using UnityEngine;public class UVertex2D{ //> id < 0 表示超级三角形的顶点,否则表示正常的顶点 public int Id; //&g...
2020-04-21 10:54:32 406 5
翻译 [Delaunay Triangle] [图形学] 优化方案
序在完成代码后发现其存在严重的效率问题,在顶点大于5000的时候耗时要超过2秒钟,其主要的原因是因为没有使用剔除完成三角形的解决方案。后来,去翻原作者的代码,才明白他使用的三角形靠左优化方案。解决方案将顶点按照水平轴进行排序 vertex.sort((a,b)=>a.x.compareto(b.x)) 剔除条件 当一个三角形的外切圆在 新插入顶点的左边时,就可以完成剔除...
2020-04-21 00:30:09 428
原创 [Delaunay Triangle] [图形学] C# 实现代码
原理效果这是一个随机三十个点的最终构成效果。实现代码以下是以C#为基础的实现代码,用到了UnityEngine.Vector2类型和v2相关的函数,核心逻辑与Unity不关联,不妨碍移植。using System.Collections.Generic;using UnityEngine;public class UDelaunayResult{ /// ...
2020-04-18 20:33:28 1860 10
翻译 [Delaunay Triangle] [图形学] Delaunay Triangles最易懂的实现方案
Delaunay三角剖分是1934年由俄国数学家BorisNikolaevich Delaunay(1890-1980)发明的,并以他的名字命名。它在科学和计算机图形学领域有着广泛的应用。它经常用于几何不规则分布的数据的图形表示--想想天气图或海拔图。它的3D变体在为电子游戏创造虚拟世界方面非常重要,还有许多其他的东西。虽然乍一看,获得Delaunay三角剖分看起来几乎是微不足道的,但实际上这...
2020-04-18 11:18:24 1680
原创 [Editor] [Bug] 卡死
事发现场版本号:2018.4.17.f1 LTS日期:2020年4月3日我用的是LTS版本,Window系统的游戏本,今天发现新建工程后,编辑器会处于卡顿,死机等症状,后来找到了原因,是因为1.0.7版本的Messenger在后台工作导致的。这个是新建3D工程自带的插件,如果你在卡顿之后收到了一个异常,像:Json Parse Exception: the parser encou...
2020-04-03 13:10:24 531
原创 [Asset Bundle] [Technique] Asset Bundle 卸载技巧
序场景除外的AssetBundle中的资源分为两中类型,GameObject与Asset,GameObject使用GameObject.Destroy进行卸载,Asset使用Resources.Unload(Asset)进行卸载,好,我们来看几个有趣的例子。事发现场例子1 卸载资源//> 代码片段1 在Start中Package = AssetBundle.LoadFro...
2020-03-30 15:21:21 353
原创 [Asset Bundle] [Bug] EventSystem,Standalone Input Module会占用AssetBundle的引用导致无法正常卸载
序通常情况下,我们在本地磁盘上通过AssetBundle.LoadXXX加载的资源包,需要通过Resources.Unload(Assets),来释放包中具体的资源。但有一种情况例外,那就是通过引用自动加载的资源,这时候,我们没有具体资源的实例,而只持有包的实例。所以我们只能通过Resources.UnloadUnusedAssets() 来释放没有被占用的资源。那么,假设这时候,恰好某个不知...
2020-03-29 23:57:27 376
原创 [Asset Bundle] [Error] 加载过程中的错误集合
目录资源被重复载入载入了相同的资产文件资产中包含了名称相同的*.unity文件载入动态场景资源包内部的资源载入一个格式错误的资源包载入一个不是资源包的文件读取一个不存在的文件资源被重复载入The AssetBundle 'xxxxx.bytes' can't be loaded because another AssetBundle with the same ...
2020-03-27 13:12:18 7179 1
原创 [Asset Bundle] [Bug] AssetBundleRequeset.Completed += 导致无法完成异步请求
事发现场版本号:2018.4.17f1 LTS AssetBundle assetBundle = AssetBundle.LoadFromFile(xxxx); AssetBundleRequest request = assetBundle.LoadAssetAsync<Texture2D>("xxx"); request.completed += (obj)=&g...
2020-03-27 01:12:52 399
原创 [Unity] AB场景加载与卸载偏方
加载加载不同AB资源下的相同名称的Unity场景 重点:保证同一个时间段只能有一个AB文件被载入内存 假设存在a.bytes和b.bytes ,并且需要同时将他们所包含的*.unity场景载入 加载a.bytes -> 加载xx.unity -> 卸载a.bytes 加载b.bytes -> 加载xx.unity -> 卸载b.bytes 卸载单独...
2020-03-17 22:46:04 2161
原创 The AssetBundle 'xxxxxx.bytes' can't be loaded because another AssetBundle with the same files
错误信息The AssetBundle 'xxxxxx.bytes' can't be loaded because another AssetBundle with the same files产生原因1.访问了同一个文件,这里的同一个文件指的文件字节内容相同,不是文件名。2.名叫 a.bytes AssetBundle中包含的场景信息(*.unity)与名叫b.bytes As...
2020-03-17 22:24:07 2915
原创 Unity 如何解决群体寻路鬼畜问题
如何解决NavMeshAgent抢夺目标点占有权的问题。问题:当控制一群NavMeshAgent向某点移动的时候会出现,NavMeshAgent因为相互抢夺目标点占有权而原地鬼畜的现象。思路:1.在Agents移动到目的地附近时主动停止Agent的行动。2.当所有NavMeshAgent.velocity.sqrMagnitude都小于某个值时,说明大家都来到了目的地。代码...
2019-07-20 00:38:00 4074 1
原创 Unity 屏幕适配器
可以适配的对象包含:SpriteRender,Image,RawImage[RequireComponent(typeof(Camera))]public class UScreenAdapter : MonoBehaviour{ [System.Serializable] public class SpriteInfo { public Spri...
2019-07-18 13:18:02 324
原创 Unity Sprite 屏幕自适应
using UnityEngine;[RequireComponent(typeof(Camera))]public class SpriteAdapter : MonoBehaviour { [System.Serializable] public class SpriteInfo { public SpriteRenderer Value = ...
2019-07-17 14:43:03 3748 4
原创 XLua 添加require路径
luaEnv.AddLoader((ref string path) =>{ // require("module.script") string[] args = path.Split('.'); if (args.Length != 2) return null; //在这里使用同步的方式,从AB资源中加载lua脚本 return YourAs...
2019-07-15 11:06:40 3793
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人