自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

锅盖的铲屎官

0 + 1 is a Magic

  • 博客(62)
  • 资源 (3)
  • 收藏
  • 关注

原创 Visual Studio Code

BaseInfo官网Docs快捷键Unitysettings.json:User settings 是全局设置,任何vs Code打开的项目都会依此配置。Windows: %APPDATA%\Code\User\settings.jsonWorkspace settings 是本工作区的设置,会覆盖上边的配置,存储在工作区的.vocode文件夹下。几乎所有设定都在settings...

2019-01-17 23:37:50 1784

原创 Unity AnimationClip 动态创建和修改AnimationEvent

AnimationClip 动态添加 AnimationEvent/* 添加事件 */private void AddEvent(){ var animClip = Resources.Load<AnimationClip>("Test.fbx"); if (animClip != null) { AnimationEvent evt...

2018-06-02 12:21:14 5833 1

原创 行为树 和 Behavior Designer

对于游戏AI,行为树是个简单可扩展的解决方案。本文简单介绍 行为树 以及 Unity 的 Behavior Designer 插件。行为树行为树(Behavior Tree,简称 BT),是由行为节点组成的树状结构。行为树中的节点,会在某一帧中被调用,然后立即且必须得到以下之一的结果:成功 Success、失败 Failure、运行中 Running。然后根据返回值进行下一步操作。...

2018-05-29 21:57:26 4001 1

原创 Unity脚本打包和Jenkins打包

首先我们假设所有的环境和参数都配置好了。常规打包: 打开Unity -> File -> Building Setting -> 点击 Build 按钮。脚本打包:不需要打开Unity,通过脚本完成手动点击 Build 按钮的操作。Jenkins 打包:不需要在部署了工程的电脑上操作, 通过访问 Web 或者 设置自动打包命令来执行打包脚本。脚本打包 apkU...

2018-04-24 20:02:28 2508

原创 Unity 3d打包iOS(x code 免证书)

打包步骤前置条件 iOS 打包只能在 Mac 上进行, 也就是说要安装 Mac 版 UnityMac 机器上必需装 XCode打开 Unity 工程, 打开一个 Scene, 单击【File】-> 单击【BuildSetting】-> 单击【Add Current】, 单击【iOS】-> 单击【Switch PlatForm】, 单击【Player settings】, 单击【iPh

2018-01-27 23:42:44 7528 1

原创 Unity CacheServer 配置及使用

Unity CacheServer 是 Unity官方提供的工具。Unity CacheServer 的用处:当 Unity 中的资源发生变动,Unity 就会重新导入资源。 CacheServer 可以将资源导入生成的文件缓存起来,这样同团队成员就可以直接下载。同时切换平台时也不需要再导一遍。此处使用的Unity版本是5.6pro, 操作系统为 mac OS 10.13.2。配置步骤

2018-01-27 21:12:28 7758

原创 内存数据加密

前言对于单机游戏,或者客户端跑游戏逻辑且服务器不验证的网游,需要一些反作弊手段。 内存数据加密, 游戏数据合理性检测, 服务器重跑验证等都是有效的方案。 本文主介绍内存数据加密。正文内存修改器原理:修改器修改的数值都是在内存中常驻的,也就是说,数值在内存中的地址是不变的。我们通过一个例子来看修改器的基本流程。 比如游戏内金币为100, 修改器先搜100,会得到值为100的变量内存地址。 等金

2017-12-17 15:11:54 6043 1

原创 Python使用openpyxl读写excel文件

前言根据官方文档,openpyxl 是一个第三方库, 它可以可以处理 xlsx/xlsm 格式的 Excel 文件(A Python library to read/write Excel 2010 xlsx/xlsm files)。 openpyxl 中主要的三个概念: Workbook(工作表),Sheet(表页)和Cell(格)。 openpyxl 中主要的操作: 打开 Workbook,

2017-12-03 15:49:22 33679 3

原创 unity中c#与java相互调用

前言在unity中接入sdk或者定制一些功能时,需要调用系统接口。安卓手机实际操作中,也就是Unity与android相互调用。我们在Unity中使用c#,android中使用java。 下面介绍他们如何相互调用。

2017-11-19 23:57:14 3026

原创 unity中c#与Objective-C相互调用

前言在unity中接入sdk或者定制一些功能时,需要调用系统接口。iphone手机实际操作中,也就是Unity与iOS相互调用。我们在Unity中使用c#,iOS中使用Objective-C(以下称为oc)。 下面介绍他们如何相互调用。

2017-11-08 23:05:36 5013 1

原创 游戏跨时区多时区解决方案

游戏在运营的时候,会遇到跨时区的问题。比如在新的地区开新的服务器,或者开放大区或者全球服务器。本文分析下跨时区的解决方案。

2017-10-31 20:54:58 3025

原创 c#实现txt转化为excel

前言有时候,我们拿到一个txt格式的表格数据, 也许是有道词典导出的单词本, 也许是策划配置的数据导出, 为了方便阅读和查找数据, 我们需要将它转化为excel。 本文用c#实现了将表格形式的txt文件导出为excel文件。正文数据要求:能导出为excel的文件肯定要有数据格式上的要求啦,本文假设txt文件满足以下几个特征。当然,也可以根据实际需求进行修改。txt中一行对应了excel中的一行。

2017-09-24 22:11:38 9744 3

原创 Unity内实现倒计时组件

前言倒计时功能在游戏中一直很重要, 不管是活动开放时间,还是技能冷却。 本文实现了一个通用倒计时组件,实现了倒计时的基本功能,支持倒计时结束后的回调。设计思路倒计时的实现是通过协程,WaitForSeconds(delay)可以很好的每隔一个delay执行一次方法,如果需要很精细的时间, 可以将delay设置成0.1等小于1的值。回调是在倒计时为0时,执行一个Action类型的方法。我的这个

2017-09-16 14:59:28 2098

原创 使用BitMap实现游戏任务,成就的信息同步

前言:现在手游一般都有类似于任务,成就的系统。我们假设成就有很多很多条, 那服务器和客户端之间同步状态的流量会比较大。 有什么好的办法能减少流量消耗呢,我们可以使用BitMap。

2017-09-14 23:48:15 630

原创 Unity内截屏实现

Unity内一般有三种截屏的方法:Application.CaptureScreenshotTexture2D.ReadPixelsRenderTextures图片保存地址一般设为: Application.persistentDataPath + “/screen1.png”参考persistentDataPath的文档说明:The value is a directory

2017-08-26 01:06:40 5363

原创 Unity显示时间、电量和网络

众所周知, 这些年随着发展,手机游戏的黏性越来越大,常驻游戏界面的时间也越来越长。我自己在游戏中也经常需要切到主页面去得到时间电量等信息。 本文主要实现了unity内显示时间,电量和网络等信息。

2017-08-20 13:40:13 3776

原创 Unity中实现一个状态机

维基百科:有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。本文参照quick-cocos中的StateMachine, 实现了Unity版本的有限状态机。实现思路:创建一个状态机对象public class StateMachine : MonoBehaviour {

2017-07-26 23:46:31 2120

原创 在Unity中调试Lua:IntelliJ IDEA + EmmyLua

本文介绍了如何在Unity中调试Lua, 具体方案是使用IntelliJ IDEA + EmmyLua。步骤下载并安装IntelliJ IDEA https://www.jetbrains.com/idea/下载EmmyLua, https://plugins.jetbrains.com/plugin/9768-emmylua IDEA中打开plugins 设置界面(或者从菜单进入File -

2017-07-04 00:23:02 24540 2

原创 Unity中实现UI跟随

3D游戏中,有一种特殊的UI,那就是跟随游戏对象移动的UI(比如说名字,血条等)。本文主要实现了UI跟随。实现思路将游戏对象的世界坐标转化为屏幕坐标。将跟随UI坐标与游戏对象屏幕坐标同步(或者同步一个差值)。可以根据UI是否在屏幕上显示或关闭跟随的UI。在实际项目中,跟随UI除了位置, 可能还会涉及缩放,是否显示(草丛等)等一些自定义同步操作。血条跟随效果:代码实现:// 挂载在运动对象上

2017-06-25 00:33:02 6363 2

原创 帧同步和状态同步

实时游戏发展迅猛,同步技术也逐渐成为解决方案的核心之一。 本文简单讨论了帧同步和状态同步。

2017-06-18 20:03:58 31772

原创 Unity中的消息机制

在游戏开发中,我们经常需要传递消息。传递消息一般有三种方法: 1. 保存对象的引用。 2. Unity 提供的 Message机制。 3. C#中的委托和事件。保存对象的引用例如手榴弹爆炸的时候, 需要获取手榴弹, 地面, 附近物体等游戏元素的对象, 然后播放爆炸特效。 这种方法是简单粗暴, 但是当项目的规模变大时, 增删改查将会变的很麻烦。 其实这是一种耦合度较高的方案。Unity

2017-06-11 21:28:39 3722 1

原创 Unity编辑器扩展

unity是一个强大的编辑器。 我们可以通过一些代码扩展它,达到提高工作效率的目的。在开始写代码之前, 我们需要先知道一些前置知识。命名空间。Unity的运行时和编辑器类分别存储在不同的Assemblies里:UnityEngine 和 UnityEditor。编写编辑器之前,需要 using UnityEditor。当想在编辑器中执行脚本时, 可以使用 attribute:[ExecuteIn

2017-05-30 13:20:41 1324

原创 Unity 3d打包安卓APK的步骤和问题

打包步骤前期准备下载 Java JDK 下载 Android SDK, 可以通过 Android Studio下载下载 Android NDK 安装 JDK (jdk-8u112-windows-x64.exe)配置 JDK 环境变量 右键【我的电脑】–单击【属性】–单击【高级】–单击【环境变量】 【用户变量】中依次新建或添加如下变量 变量 值 JAVA_HOME C:\P

2017-05-23 14:13:57 3098

原创 uv位移动画

本文实现了一个简单的uv位移动画, 并对其中的一些条件进行了探索。实现步骤:实现一个 shader, 主要是根据时间做顶点偏移。创建一个 material, 添加 texture, texture 的 Wrapmode 为 Repeat。创建一个 Quad, 挂上刚刚创建的材质。

2017-05-15 01:06:25 1350 1

原创 汉字转拼音的实现

游戏中显示榜单等重复性信息时, 会有一系列的排序规则。 一般在按照名字排序时,有一条是以汉字拼音字母排序。本文实现了如何获取汉字的拼音以及拼音首字母的方法。主要思路:GB2312编码采用16位编码方式,简体中文的编码范围从B0A1一直到F7FE,完整编码表链接:http://ash.jp/code/cn/gb2312tbl.htm。 我们通过 System.Text.Encoding.Defa

2017-05-13 19:41:16 3933

原创 配置一个Lua工程(支持命令行运行 和 vs断点调试)

本文介绍了如何配置一个Lua工程, 并让它支持命令行运行和vs断点调试。创建此工程的目的是,写一些脚本用于检测策划填写的数据的正确性。既然表格要转为lua文件, 索性创建一个lua的工程, 将运行命令添加入编译表格的bat文件中,编译完就检测,保证了数据结构的正确性。

2017-05-13 10:55:19 1539 1

原创 Lua 中 number 转换各种进制,以及string串转number

本文实现了Lua 中 number 转换各种进制,以及各种进制 string 串转 number。实现思路: 1. 实现一个 table:_convertTable, 存下数字和字符串之间的对应关系 2. 不同进制之间的转换: - 二进制:采用0和1表示,满二进一 - 八进制:采用0~7这八个数表示,满八进一 - 十进制:采用0~9这10个数表示,满十进一

2017-05-11 23:23:02 23146 1

原创 Mesh中 material 和 sharedMaterial 的区别及内部实现的推断

material 和 sharedMaterial 的区别创建一个Material, 颜色为红色, 创建两个Quad,挂上刚刚创建的材质。 效果如下图:将第一个Quad挂载如下脚本, 运行:render = GetComponent<Renderer>();render.material.color = Color.white;效果如下图:修改脚本内容如下, 运行:render = GetCom

2017-05-10 23:02:40 9440 1

原创 Unity 中的 Mesh 及绘制圆环

Mesh 又称网格组件, 是 Unity 中一个重要的概念。什么是 Mesh:简单的说,3D 模型上一个个的网格就是 Mesh 。3D 模型是由多边形拼接而成的, 而多边形是由多个三角形拼接而成。我们将构成这些三角行的点以及边的集合称为 Mesh 。

2017-05-09 22:36:10 4671

原创 直观地打印二叉树

在写二叉树时经常希望把它可视化,本文实现了相对直观的打印二叉树。

2017-05-04 01:24:08 1097

原创 sh设置git alias

有些Git命令组合起来有点复杂,对不熟悉git的策划,美术不友好,这时可以使用git的alias降低同学们的使用成本。 而在面对一个项目组的成员时, 毫无疑问,编写一个shell script是最优的解决方案。 编写shell script的步骤如下:创建一个新文件, 命名为 xx.sh(如 alias-david.sh)。用文本编辑器打开之前创建的sh文件, 将下方的代码复制进去, 保存。

2017-04-23 23:15:50 1266

原创 shell脚本输出输出带颜色内容

本文主要介绍了如何在shell脚本中输出带颜色的内容。shell脚本中 echo 和 printf 都可以输出内容。 我们看以下示例echo -e "\033[43;35m david use echo say Hello World \033[0m \n" printf "\033[44;36m david use printf say Hello World \033[0m \n" echo -

2017-04-23 00:24:07 14618 1

原创 可视化的排序六:桶排序

桶排序的概念:又名箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶里。每个桶再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是比较排序,他不受到O(n log n)下限的影响。

2017-04-03 16:06:44 938 2

原创 可视化的排序五:插入排序、二分插入排序和希尔排序

本文主要讲了插入排序、二分插入排序和希尔排序。

2017-04-03 15:57:27 1078

原创 可视化的排序四:归并排序

归并排序是创建在归并操作上的一种有效的排序算法,效率为O(n log n)。1945年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。

2017-04-03 15:00:59 942

原创 可视化的排序三:选择排序和堆排序

选择排序:选择排序(Selection sort)是一种简单直观的排序算法。选择排序的算法描述如下:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

2017-03-30 22:02:23 1085

原创 可视化的排序二:冒泡排序、鸡尾酒排序和快速排序

本文主要讲了交换排序, 包括冒泡排序, 鸡尾酒排序和快速排序。

2017-03-28 23:14:09 3929 4

原创 可视化的排序一:unity实现

本系列文章通过Unity实现了部分排序算法的可视化, 下面具体介绍实现的过程。设计思路使用UGUI,搭建如下界面。我们用图片的高度描述数字的大小,当数据在数组中变换位置时, 我们重新设置图片的高度,并变换颜色。可视化过程中有个难点是控制显示的速度, 这一步是使用了协程来完成的。通过协程,每一次比较后(或判断),等待固定时间,再执行排序函数。

2017-03-28 23:12:33 1735 1

原创 UGUI将图片设置成灰态

本文实现了在UGUI下将彩色图片设置成灰色的功能。实现的方法是修改对应Shader,重点是灰度公式:Gray = R*0.299 + G*0.587 + B*0.114 下面我们来看看是如何实现的。

2017-03-27 20:55:47 4083

原创 我常用的快捷键

这篇博客记录着我常用的快键键, 后面陆续会补充。Windows10关于虚拟桌面1. 任务视图:Win + Tab(松开键盘界面不会消失) 这样能看到当前桌面打开的窗口和所有桌面,你可以自由选择桌面, 也可以把窗口拖动到另一个桌面中。2. 创建新的虚拟桌面:Win + Ctrl + D 创建的新桌面里没有打开窗口,但是桌面上的文件还是有的 (什么时候可以设置新桌面

2017-03-06 21:07:34 495

Unity获取时间、网络和电量信息

Unity获取时间、网络和电量信息

2017-08-20

7zip 64位安装包

7zip安装包

2016-09-22

空空如也

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

TA关注的人

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