- 博客(26)
- 收藏
- 关注
原创 如何阅读项目工程源代码
如何阅读项目代码 找到代码入口,可以通过调试,找到子模块的启动接口 画UML图,理清项目结构 记录关键脚本,并标注功能 尝试在原来项目上增加相似功能,理解子模块的使用方式 创建新项目,复制原项目的主要功能 根据自己想法创造新功能 注意事项: 找看代码之前,可以写下自己的计划,如今天要学会什么功能,做到什么效果等。 在阅读代码的时候,可以记录关键信息,方便之后查...
2019-05-10 15:29:15
1301
原创 背包系统一
前置知识 ScriptableObject ScriptableObject是一个可独立于类实例来保存大量数据的数据容器。ScriptableObject的一个主要用例就是通过避免重复值来减少项目的内存使用量。如果使用Editor,可以在编辑时和运行时将数据保存到ScriptableObject ScriptableObject的主要用例为: 在Editor会话期间保存和存储数据 将数据保存为项目中的资源,以便在运行时使用 官方教程:https://docs.unity.cn/cn/2019.4/Man
2021-01-10 18:48:56
1239
1
原创 02AssetBundle基础
1. 概述 AssetBundle系统可以支持一个或多个文件存储到Unity,支持索引和序列化的存档格式的方法。AssetBundle是Unity安装后交付和更新非代码内容的主要工具。这允许开发人员提交较小的应用包,最大限度地减少运行时的内存压力,并选择性地加载针对最终用户设备优化的内容。 2. 存储内容 AssetBundle里面存储两种不同但相关的东西: 首先是磁盘的实际文件。对于这种情况,我们称之为AssetBundle存档,存档可以被视为一个容器,就像文件夹一样,可以在其中包含其他文件夹。这些附加
2020-09-20 20:51:49
302
原创 01Unity如何序列化资源和处理资源之间的引用关系
1. Asset和Object的区别 Asset 是磁盘上的文件,存储在Unity项目的资产文件夹中,纹理、模型或音频是常见的Asset,一些Asset中含有Unity原生格式的数据,例如材质,其他Asset则需要被转换成原生格式,例如FBX文件。 Object(UnityEngine.Object) 是用于描述某个资源的特定实例的序列化数据集合。它可以是由Unity引擎所使用的任何类型的资源,例如网格、精灵、音频和动画等,所有的Object都是UnityEngine.Object的子类 大多数的Objec
2020-09-20 20:50:49
788
原创 0124技能系统
资源打包 构建规则文件 资源分组 BuildRules GroupAsset(以Directory为例) public void GroupAsset(string path, GroupBy groupBy = GroupBy.Filename) { var asset = ArrayUtility.Find(assets, build => build.path.Equals(path)); if (asset
2020-09-06 16:59:54
906
原创 初见GameFramework
纪录在学习GameFramework过程中的疑问以及思考过程 初见代码 首先拿到源代码的时候,我们可以看下整个工程文件的目录结构。 整个框架系统都是由GameEntry启动,现在我们就要进入里面去寻宝。GameEntry由两个类组成 他们分别有各自的职责,GameEntry.Builtin类是负责加载系统组件的配置,GameEntry.Custom是负责加载用户自定义组件的配置。我们回到主程序...
2019-07-26 20:46:02
306
原创 程序员修炼之道--我看学习
开通本专栏的目的:记录生活,分享生活。 本周尝试去探索自己专属的学习方法,很早就有大佬分享告诉的我们,阅读源码是最快的学习方式,我尝试去看了公司的源码并且模仿做出了一个Demo,心路历程和感悟大家可以参考上篇博客:如何阅读项目工程源代码。可以简单总结如下,每一步环环相扣,密不可分: 发现 发现”是进步的敲门砖,从“不知道自己不知道”到“知道自己不知道”也算是完成认知两大阶段了,可见“发现”的...
2019-07-21 22:22:40
372
原创 SteamVR Unity Plugin - v2.2.0教程 / 简单输入系统
概述 SteamVR2.0将用户自定义的动作Action与手柄按键绑定,配置完毕后,其他设备也可以正常使用。能够使开发者在编程中专注于用户的动作,而非具体的设备的按键。 InputSystem,即输入系统,开发人员通过自定义配置将默认动作与手柄按键进行绑定,而不是将直接操作具体设备的按键,因为很多每个平台的设备是不同的,这样可以快速适配应用程序,不需要修改代码。 比如:当开发者检测玩家是否抓取某...
2019-05-10 16:37:13
7499
13
转载 C#反射和特性
什么是元数据,什么是反射 程序是用来处理数据的,文本和特性都是数据,然而程序本身也是数据 有关程序及其类型的数据被称为元数据(metadata),他们保存在程序的程序集中 程序在运行时,可以查看其他程序集或者本身的元数据。一个运行的程序查看本身的元数据或者其他程序集的元数据的行为叫做反射 Type类 预定义类型(int long string等)BLC中的类型(Console,IEnumer...
2019-05-08 20:30:58
360
原创 02游戏框架设计之框架再谈
很多童鞋有可能看不懂第一篇的内容,先理清楚模块,然后跟着敲一遍,这篇文章来研究消息处理中心MsgCenter处理消息的流程。 消息处理流程 注册消息:建立ID和委托事件的对应关系 分发消息:将消息ID对应的事件加入待处理消息队列 处理消息:通过待处理消息集合todoCallBack逐一处理消息 注册消息 在注册消息之前需要一些准备工作: 建立ID与委托的字典 private D...
2019-01-19 13:28:36
339
原创 01游戏框架设计之初识框架
写在前面: 写本博客的初心是为了更好的总结学习游戏框架遇到的知识点,难免会有理解错误的地方,望大神批评指正。 本框架使用的消息分发机制来实现的。重要组成部分如下: 消息处理中心MsgCenter 消息处理中心是整个模块的中转站,模块管理者Manager如果想与其它模块通讯的话,必须通过此中转站,中转站通过消息ID找到对应模块,然后交付给此模块内部处理。 提供的功能:注册消息,销毁消息,分发广...
2019-01-19 12:28:03
702
原创 超级简单系列--怪物跟随
1.获取怪物身上的组件,并找到Player m_Animator = GetComponent<Animator>(); m_CharaCtrl = GetComponent<CharacterController>(); m_MonsterData = new MonsterData(); //怪物数据 p...
2018-09-28 08:56:40
694
原创 超级简单系列--C# Event事件的使用
Event事件的用法和Delegate大致相同,具体步骤请看上一篇文章: https://blog.csdn.net/gsm958708323/article/details/82804677 Event事件的使用 代码实现如下: /// &lt;summary&gt; /// 声明一个委托 /// &lt;/summary&gt; /// &lt;param name="key"
2018-09-21 19:49:54
8057
原创 超级简单系列--delegate委托调用
完整步骤如下: 声明一个委托函数,参数为回调时使用的参数类型 创建一个委托函数的引用 实例化委托引用,并将回调函数的地址指向自定义函数 调用委托函数 /// <summary> /// 声明一个委托事件 /// </summary> /// <param name="key"></param> delegate void FinishButCli...
2018-09-21 17:19:59
1100
原创 超级简单系列--相机跟随人物移动
使用**Vector3.SmoothDamp()**来控制相机跟随人物移动,一个API搞定。 在Unity编辑器里面需要调节到合适的位置。 private Transform target; private Vector3 velocity = Vector3.zero; /// &amp;lt;summary&amp;gt; /// 相机与人物的距离 /// &amp;lt...
2018-09-21 15:47:54
1509
转载 超级简单系列--使用CharacterController控制人物移动
使用Input.GetAxis(“Horizontal”) 和 “Vertical”得到垂直和水平方向的值 使用CharacterController.SimpleMove(Vector3)参数表示运动的方向和速度 单位可以认为是 m/s 代码如下: private CharacterController cc; public float speed = 4; void Start() { ...
2018-09-21 15:40:47
4337
原创 使用EasyTouch控制人物移动
直接上代码 private CharacterController cc; public float speed = 1; void Start() { cc = GetComponent&amp;amp;amp;amp;lt;CharacterController&amp;amp;amp;amp;gt;(); } void Update() { float h =
2018-09-19 10:08:43
2054
原创 渲染流水线
渲染流水线 计算机在渲染的时候,把任务分成了一系列的特定子阶段,这些阶段按照一定的顺序来处理顶点数据,最后生成图像,这些子阶段就构成了流水线。整个流水线是由CPU和GPU共同完成。 应用程序阶段 此阶段开发者通过代码来控制CPU进一步访问GPU 此阶段主要有三个任务: 1.准备好场景数据:如场景物件、光源和相机等。 2.设置渲染状态:材质系数、使用的纹理等。 3.调用DrawC...
2018-09-12 20:55:32
364
原创 C#值类型和引用类型
什么是值类型,什么是引用类型 值类型就是直接存储其值 引用类型存储对其值的引用 引用类型:基类为Objcet 值类型:均隐式派生自System.ValueType 值类型: byte,short,int,long,float,double,decimal,char,bool 和 struct 统称为值类型。 引用类型: string 和 class ,interface,arra...
2018-07-12 13:46:28
295
原创 GameFramework学习记录
资源更新实践 需要考虑的问题: 文件包体太大 版本号的高低 MD5 下载资源的大小以及是否完成 本地Version信息和服务器Version对比 Protobuf 学习 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的...
2018-05-14 20:26:45
866
原创 Shader入门学习
Shader学习笔记 相关博客http://www.cnblogs.com/polobymulberry/p/4314147.html 相关视频 Siki Shader着色器 什么是OpenGL、DirectX CPU不直接与GPU交互,需要通过一些接口来进行交互 shader可以认为是一种渲染命令 ,由opengl 或者dx进行解析,来控制渲染丰富多彩的图形。 编写S...
2018-05-06 23:11:39
704
原创 Socket多人联网游戏学习记录2
数据库设计 创建user表: 创建战绩表: 所有数据设置UN属性,即数据不能为Null,其中userId和totleCount设置默认值为0。 设置result表与user表的关联(设置外键) 声音管理器AudioManager 动态加载声音管理器,首先要在Scene场景里面添加AudioListener 首先创建实例化AudioSource,然后通过它添加AudioCl...
2018-02-11 20:50:35
1035
原创 Socket多人联网游戏学习记录
连接Mysql 准备 创建数据库Test001 创建一个表,TableName为user 创建新列,id(设置为主键,勾选PK NN AI),username,password 查询刚才新建的表格Select Row 添加新数据 使用mysql插件,找到mysql安装目录,C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v...
2018-02-09 12:55:23
2064
原创 C#基础知识练习2
继承 当多个类有很多相似的数据,比如在一个在游戏中,Boss类和小怪Enemy类,他们都有存在hp这个属性,但是也存在不同的地方,这个时候可以使用继承来维护的=这两个类。 继承的类型: 实现继承 接口继承 怪物基类BaseEnemy class BaseEnemy { private float hp; private fl
2018-01-30 20:25:03
466
原创 C#基础知识学习1
异常处理 finally 块,无论是否出现异常都会执行 class Program { static void Main(string[] args) { try { int[] array = { 1, 2, 3, 4 }; i
2018-01-30 16:29:36
272
原创 吉他自学指导
1 音阶的重要性 铭记七种指型的音阶位置 尝试加入即兴Solo(注意调性和律动节奏) 卡农简谱辅助练习 2 五度圈 七种指型的拓展 3 节奏训练 七种音阶指形,需要变奏练习 节奏型 4/4 8/4 16/4 速度 45 85 95 105 4 音级与和弦 卡农 1 5 6 3 4 1 4 5 (突破80速度) 首调 四个开放和弦推算封闭...
2018-01-29 20:13:02
786
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅