自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

高大猛

实践出真知

  • 博客(26)
  • 收藏
  • 关注

原创 如何阅读项目工程源代码

如何阅读项目代码找到代码入口,可以通过调试,找到子模块的启动接口画UML图,理清项目结构记录关键脚本,并标注功能尝试在原来项目上增加相似功能,理解子模块的使用方式创建新项目,复制原项目的主要功能根据自己想法创造新功能注意事项:找看代码之前,可以写下自己的计划,如今天要学会什么功能,做到什么效果等。在阅读代码的时候,可以记录关键信息,方便之后查...

2019-05-10 15:29:15 1136

原创 背包系统一

前置知识ScriptableObjectScriptableObject是一个可独立于类实例来保存大量数据的数据容器。ScriptableObject的一个主要用例就是通过避免重复值来减少项目的内存使用量。如果使用Editor,可以在编辑时和运行时将数据保存到ScriptableObjectScriptableObject的主要用例为:在Editor会话期间保存和存储数据将数据保存为项目中的资源,以便在运行时使用官方教程:https://docs.unity.cn/cn/2019.4/Man

2021-01-10 18:48:56 725 1

原创 02AssetBundle基础

1. 概述AssetBundle系统可以支持一个或多个文件存储到Unity,支持索引和序列化的存档格式的方法。AssetBundle是Unity安装后交付和更新非代码内容的主要工具。这允许开发人员提交较小的应用包,最大限度地减少运行时的内存压力,并选择性地加载针对最终用户设备优化的内容。2. 存储内容AssetBundle里面存储两种不同但相关的东西:首先是磁盘的实际文件。对于这种情况,我们称之为AssetBundle存档,存档可以被视为一个容器,就像文件夹一样,可以在其中包含其他文件夹。这些附加

2020-09-20 20:51:49 175

原创 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 582

原创 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 614

原创 初见GameFramework

纪录在学习GameFramework过程中的疑问以及思考过程初见代码首先拿到源代码的时候,我们可以看下整个工程文件的目录结构。整个框架系统都是由GameEntry启动,现在我们就要进入里面去寻宝。GameEntry由两个类组成他们分别有各自的职责,GameEntry.Builtin类是负责加载系统组件的配置,GameEntry.Custom是负责加载用户自定义组件的配置。我们回到主程序...

2019-07-26 20:46:02 196

原创 程序员修炼之道--我看学习

开通本专栏的目的:记录生活,分享生活。本周尝试去探索自己专属的学习方法,很早就有大佬分享告诉的我们,阅读源码是最快的学习方式,我尝试去看了公司的源码并且模仿做出了一个Demo,心路历程和感悟大家可以参考上篇博客:如何阅读项目工程源代码。可以简单总结如下,每一步环环相扣,密不可分:发现发现”是进步的敲门砖,从“不知道自己不知道”到“知道自己不知道”也算是完成认知两大阶段了,可见“发现”的...

2019-07-21 22:22:40 242

原创 SteamVR Unity Plugin - v2.2.0教程 / 简单输入系统

概述SteamVR2.0将用户自定义的动作Action与手柄按键绑定,配置完毕后,其他设备也可以正常使用。能够使开发者在编程中专注于用户的动作,而非具体的设备的按键。InputSystem,即输入系统,开发人员通过自定义配置将默认动作与手柄按键进行绑定,而不是将直接操作具体设备的按键,因为很多每个平台的设备是不同的,这样可以快速适配应用程序,不需要修改代码。比如:当开发者检测玩家是否抓取某...

2019-05-10 16:37:13 6953 13

转载 C#反射和特性

什么是元数据,什么是反射程序是用来处理数据的,文本和特性都是数据,然而程序本身也是数据有关程序及其类型的数据被称为元数据(metadata),他们保存在程序的程序集中程序在运行时,可以查看其他程序集或者本身的元数据。一个运行的程序查看本身的元数据或者其他程序集的元数据的行为叫做反射Type类预定义类型(int long string等)BLC中的类型(Console,IEnumer...

2019-05-08 20:30:58 271

原创 02游戏框架设计之框架再谈

很多童鞋有可能看不懂第一篇的内容,先理清楚模块,然后跟着敲一遍,这篇文章来研究消息处理中心MsgCenter处理消息的流程。消息处理流程注册消息:建立ID和委托事件的对应关系分发消息:将消息ID对应的事件加入待处理消息队列处理消息:通过待处理消息集合todoCallBack逐一处理消息注册消息在注册消息之前需要一些准备工作:建立ID与委托的字典 private D...

2019-01-19 13:28:36 250

原创 01游戏框架设计之初识框架

写在前面:写本博客的初心是为了更好的总结学习游戏框架遇到的知识点,难免会有理解错误的地方,望大神批评指正。本框架使用的消息分发机制来实现的。重要组成部分如下:消息处理中心MsgCenter消息处理中心是整个模块的中转站,模块管理者Manager如果想与其它模块通讯的话,必须通过此中转站,中转站通过消息ID找到对应模块,然后交付给此模块内部处理。提供的功能:注册消息,销毁消息,分发广...

2019-01-19 12:28:03 443

原创 超级简单系列--怪物跟随

1.获取怪物身上的组件,并找到Player m_Animator = GetComponent<Animator>(); m_CharaCtrl = GetComponent<CharacterController>(); m_MonsterData = new MonsterData(); //怪物数据 p...

2018-09-28 08:56:40 529

原创 超级简单系列--C# Event事件的使用

Event事件的用法和Delegate大致相同,具体步骤请看上一篇文章:https://blog.csdn.net/gsm958708323/article/details/82804677Event事件的使用代码实现如下:/// <summary>/// 声明一个委托/// </summary>/// <param name="key&quot

2018-09-21 19:49:54 7863

原创 超级简单系列--delegate委托调用

完整步骤如下:声明一个委托函数,参数为回调时使用的参数类型创建一个委托函数的引用实例化委托引用,并将回调函数的地址指向自定义函数调用委托函数/// <summary>/// 声明一个委托事件/// </summary>/// <param name="key"></param>delegate void FinishButCli...

2018-09-21 17:19:59 995

原创 超级简单系列--相机跟随人物移动

使用**Vector3.SmoothDamp()**来控制相机跟随人物移动,一个API搞定。在Unity编辑器里面需要调节到合适的位置。 private Transform target; private Vector3 velocity = Vector3.zero; /// <summary> /// 相机与人物的距离 /// &lt...

2018-09-21 15:47:54 1358

转载 超级简单系列--使用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 4041

原创 使用EasyTouch控制人物移动

直接上代码 private CharacterController cc; public float speed = 1; void Start() { cc = GetComponent<CharacterController>(); } void Update() { float h =

2018-09-19 10:08:43 1891

原创 渲染流水线

渲染流水线计算机在渲染的时候,把任务分成了一系列的特定子阶段,这些阶段按照一定的顺序来处理顶点数据,最后生成图像,这些子阶段就构成了流水线。整个流水线是由CPU和GPU共同完成。应用程序阶段 此阶段开发者通过代码来控制CPU进一步访问GPU 此阶段主要有三个任务: 1.准备好场景数据:如场景物件、光源和相机等。 2.设置渲染状态:材质系数、使用的纹理等。 3.调用DrawC...

2018-09-12 20:55:32 240

原创 C#值类型和引用类型

什么是值类型,什么是引用类型值类型就是直接存储其值 引用类型存储对其值的引用引用类型:基类为Objcet 值类型:均隐式派生自System.ValueType值类型: byte,short,int,long,float,double,decimal,char,bool 和 struct 统称为值类型。引用类型: string 和 class ,interface,arra...

2018-07-12 13:46:28 194

原创 GameFramework学习记录

资源更新实践需要考虑的问题:文件包体太大版本号的高低 MD5下载资源的大小以及是否完成本地Version信息和服务器Version对比Protobuf 学习Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的...

2018-05-14 20:26:45 736

原创 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 544

原创 Socket多人联网游戏学习记录2

数据库设计创建user表: 创建战绩表: 所有数据设置UN属性,即数据不能为Null,其中userId和totleCount设置默认值为0。 设置result表与user表的关联(设置外键) 声音管理器AudioManager动态加载声音管理器,首先要在Scene场景里面添加AudioListener 首先创建实例化AudioSource,然后通过它添加AudioCl...

2018-02-11 20:50:35 925

原创 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 1891

原创 C#基础知识练习2

继承 当多个类有很多相似的数据,比如在一个在游戏中,Boss类和小怪Enemy类,他们都有存在hp这个属性,但是也存在不同的地方,这个时候可以使用继承来维护的=这两个类。继承的类型:实现继承接口继承怪物基类BaseEnemy class BaseEnemy { private float hp; private fl

2018-01-30 20:25:03 332

原创 C#基础知识学习1

异常处理finally 块,无论是否出现异常都会执行 class Program { static void Main(string[] args) { try { int[] array = { 1, 2, 3, 4 }; i

2018-01-30 16:29:36 198

原创 吉他自学指导

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 557

空空如也

空空如也

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

TA关注的人

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