- 博客(43)
- 收藏
- 关注
原创 (阅读笔记)第1章 软件架构
1.1 架构的意义什么是架构?架构无处不在,它实质上是解决生活和工作中问题的一种方案。决定架构好坏的方面:承载力:逻辑系统的数量、代码量、共同开发效率、服务器访问量 可拓展性:添加新的子系统不影响或者尽可能少的影响其他子系统 易用性:决定整体开发效率 可伸缩性:根据需求使用架构部分或全部功能 容错性以及对错误的感知力:某个地方出错时不影响整体程序,能推送错误信息给开发人员1.2 软件架构的思维方式分层思维:把复杂的系统分成若干层次,例:TCP/IP分层架构 分治思维:把大问题分成
2022-03-10 11:44:40
3818
原创 23种设计模式的简述及优缺点
菜鸟教程设计模式https://www.runoob.com/design-pattern/design-pattern-tutorial.html一、创建型模式简述:提供一种在创建对象的同时隐藏创建逻辑的方式包括:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式工厂模式简述:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。优点:1、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 2、屏蔽产品的具体实现,调用者只关心产.
2021-11-10 15:18:49
868
原创 lua基础
一、lua的数据类型nil、boolean、number(双精度浮点型double)、string、function、userdata、thread、table二、lua的for循环pairs和ipairs的区别:pairs遍历table中的所有元素,ipairs只能遍历table中的数组部分,从key值等于1开始依次遍历直到key值不连续或数组部分遍历完毕三、lua中的面向对象lua面向对象实现的基础:当你通过键来访问 table 的时候,如果这个键没有值,那么Lua就会寻找该tabl
2021-11-07 10:17:47
193
原创 Unity常见的问题
面试遇到的问题,不定时更新。一:有什么常用的数据结构?数组、堆、栈、队列、链表、树、图、散列表二:简述先序遍历、中序遍历、后序遍历先序遍历:二叉树父结点向下先左后右中序遍历:首先遍历左子树,然后访问根结点,最后遍历右子树后序遍历:首先遍历左子树,然后遍历右子树,最后访问根结点三:面向对象的三大特征封装、继承、多态。四:简述面向对象和面向过程的区别面向对象是一种对现实世界理解和抽象的方法。面向过程是一种以过程为中心的编程思想。这些都是以什么正在发生为主.
2021-10-30 07:24:17
1614
1
原创 Unity全新Prefab预制件系统详解
unity2018.3引入了全新的prefab预制件系统,在这里主要是说一下自己的理解。一、Prefab Mode中编辑预制件1.预制体是不允许在外部修改预制体只能在Prefab Mode修改(注意这个修改是指整个预制体的父级关系,包括删除不包括添加)否则会弹出窗口强制要求进入Prefab Mode模式,如下:2.Prefab Mode的场景是可以改变的Prefab Mode的场景可以改变,而且存在两个场景,详细内容如下图:3.预制体修改后的两种保存模式在Prefab
2020-05-22 17:13:47
8852
1
原创 unity性能检测之UPR与资源检测
除了之前的unity profiler和unity memory profiler包之外,unity官方还有一个用来对unity游戏性能进行监控的方式,那就是UPR。如果想阅读官方教程可以点击这里。下面是我对教程的讲解:UPR检测是检测手机游戏,目前还不支持检测PC端的游戏,如果你只是想了解一下UPR,那么可以直接去看官方的示例项目,具体步骤如下,按步骤点击红圈处即可:然后就可以根据自己的需求去阅读这个报告了好了回归正题,UPR测试一共有两种方式实现,一...
2020-05-21 16:21:08
2255
原创 unity的memory profiler 包使用指南
话不多说先推荐一篇文章,这是链接。以下是本菜鸟的初体验:第一步,你需要去unity的官方网站下载memory profiler的压缩包,这里就不提供网址了(可以百度到)。第二步,解压之后得到一个unity项目,用unity打开这个项目,然后将整个项目导出成unitypackage,最后就可以拖拽到需要进行分析测试的项目中了。 之后你在Window下就能找到MemoryProfiler了,点击打开这个窗口。打开之后是这个样子的:接...
2020-05-20 17:25:22
4434
转载 使用Profiler工具分析内存占用情况
https://blog.youkuaiyun.com/yangyy753/article/details/47025205
2020-05-18 21:55:05
290
原创 【Unity】FPS游戏中的物理引擎——角色控制器(CharacterController)和刚体(Rigidbody)初解
今天会谈到角色控制器和刚体主要是为了做一个游戏人物的控制器,角色控制器和刚体各有各的优点。首先说一下刚体吧,刚体这个组件可以说是做一些真是物理游戏的开发者的福音,只要你给物体加上刚体基本可以算是给它配上了一个物理系统,已经和日常生活中的物体差不多了,刚体可以通过施加力进行运动,刚体组件内部有施加力的方法,感兴趣的可以自行搜索,这里只是讲一下对它的理解。此外刚体还有一些摩擦力、角阻力、是否使用重...
2020-05-02 19:01:33
5387
原创 关于unity2019创建物体是灰色的问题
这个问题老早就碰到了没去管它,今天心血来潮在网上苦苦搜索后发现答案基本都是模型导入的时候颜色不对,这也和我要找的问题不搭嘎啊,目前问题是unity自身创建的cube都是灰色的,但是搜到的答案基本都指向是灯光的问题,也有说勾选灯光设置里的Auto Generate,这个勾选之后会在编辑场景的时候会自动更新光照贴图,但是没什么效果后来才发现unity2019的默认场景已经配置的光照,所以解决这个问题最...
2020-04-29 15:39:07
5641
原创 VS2019退格键、Enter键无法使用但是可以输入问题的解决办法
百度找到了几个办法,alt+enter键,点击运行,重启vs。这里我是点击运行之后vs恢复正常
2020-04-24 01:07:01
5066
2
原创 Blender2.82插件导入问题
按照教程一直导入不进去,后面发现blender放插件的目录有两个,只有放在AppData\Roaming\Blender Foundation\Blender\2.82才有效
2020-03-28 17:53:26
3731
原创 算法学习日记————贪心算法(一)
“人心不足蛇吞象”一个贪心算法总是做出当前最好的选择,也就是说,它期望通过局部最优选择从而得到全局最优选择 在贪心算法中需要注意的问题:没有后悔药。一旦做出选择,不可以反悔。有可能得到的不是最优解,而是最优解的近似解。选择什么样的贪心策略决定算法的好坏。 使用贪心算法的前提:贪心选择性质、最优子结构性质。贪心选择:指整体最优解可以通过一系列的局部最优解得到。...
2018-12-29 20:08:46
240
原创 算法学习日记——什么是算法
————《趣味算法》————算法是指对特定问题求解步骤的一种描述。算法只是对问题求解方法的一种描述,不依赖于任何语言,可以使用自然语言、程序设计语言(Java、C++、C#等)描述,也可以使用流程图、框图。一般是使用伪代码描述算法。 算法的特性有穷性:算法是由若干条指令组成的有穷序列,总是在执行若干次后结束,不可能永不停止。确定性:每条语句有确定的含义,无歧义。可行性...
2018-12-29 17:37:37
254
原创 23种设计模式
创建型模式(五种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式结构型模式(七种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式...
2018-11-05 14:17:42
100
原创 点乘和叉乘
点乘判断角度,叉乘判断方向Vector3.Dot(transform.forward, target.position-transform.position)返回值为正时,目标在自己的前方,反之在自己的后方Vector3.Cross(transform.forward, target.position-transform.position).y返回值为正时,目标在自己的右方,反之在...
2018-10-16 09:45:36
955
原创 ref和out
ref传递的是引用,需要提前定义并赋值,可能会被读取和写入out也是传递引用,但是变量只会被写入,不需要提前定义和赋值,但是函数的每一个返回路径都必须给out变量赋值...
2018-10-15 09:02:54
167
转载 时间复杂度
对时间复杂度还不是很理解,就去查了一下,下面是某个帖子里的一个回答,原帖https://bbs.youkuaiyun.com/topics/360263442。
2018-10-10 19:18:43
176
原创 重载和重写
重载:方法的方法签名不同,方法名一致。参数列表数量不同,类型不同,顺序不同重写:两种方法1.父类中virtual标记要重写的方法,子类中override修饰方法重写,父类的方法被替换成子类的方法。2.子类中new关键字覆盖父类的方法,优先调用子类的方法,父类的方法被隐藏...
2018-09-26 20:01:22
98
原创 设计模式原则
总原则(开闭原则(OCP)):对外拓展开放,对内修改关闭。 单一职责原则(SRP):一个类最好只有一个单一的职责。不要存在多个引起类变化的原因,多个原因会导致高耦合,也会降低复用性。 里氏代换原则(LSP):任何基类出现的地方,子类一定也能出现。子类对父类的方法尽量不要重写和重载。 依赖倒转原则(DIP):开闭原则的基础,面向接口编程,要依赖于抽象不要依赖于具体。在写具体类时不与具体类交互,...
2018-09-18 17:18:47
160
原创 GUI,UGUI,NGUI三种编辑UI界面的插件
出现顺序:GUI,UGUI,NGUI的出现顺序:GUI-->NGUI-->UGUI。GUI:GUI是unity内置的,拥有大量的UI方面的类和方法。GUI用起来很繁琐,因为没有内置的按钮之类的,所以所有的按钮都要用代码实现,而且......不运行是无法看到UI界面的!!这就使得调试起来非常的麻烦,GUI现在一般不会用作需要大量UI界面的游戏,一些简单的UI和一些测试会使用GUI,还...
2018-09-18 15:19:31
4350
原创 基本着色器
固定函数着色器(Fixed Function shader)一些旧设备不支持可编程管线渲染表面着色器(SurFace Shader)表面着色器是unity内部的一种着色器代码类型优点:代码量较小,unity适配了大量的光源类型以及实时阴影渲染缺点:灵活性很低,无法控制细节的渲染顶点/片元着色器(Vertex/Fragment Shader)顶点/片元着色器是一种特殊的表...
2018-09-18 14:44:54
205
原创 排序算法--------插入排序
从第二个数开始和前面的数一起比较直到找到比它小的数,放到比它小的数的后一位,其他数往后移一位如果遍历到第一位还没找到比它小的数,则把它放到第一位重复n-1次...
2018-09-18 09:53:57
132
原创 排序算法---------选择排序
从第一个数开始找出最小的数放在第一位,从第二个数开始找出最小的数放在第二位,。。。。第n-1个数和最后一个数比较将较小的放在第n-1位排序完成...
2018-09-18 09:48:47
130
原创 排序算法-----------冒泡排序
从第一个数开始让它和它后面的数进行比较碰到比第一个数大的数时替换掉第一个数继续比较,和最后一个数比完之后得到的最后一个数就是最大的数。重复这个步骤n-1次...
2018-09-18 09:42:40
127
原创 初识对象池
对象池一般应用于一些需要重复使用的物体,比如子弹、陨石,如果直接销毁会产生大量的碎片占用内存空间,最好的方式就是循环利用这些物体,可以创建一个空物体当做对象池,当要使用而没有时就会在对象池里创建一个新的对象,有就直接从对象池里调用,当不需要使用物体时就将物体放回对象池,这里涉及到了一个队列的应用,调用时出队,不用时入队;public static ObjectPool instance; ...
2018-09-13 09:48:29
180
原创 unity碰撞检测的三种模式Collision Detection
Discrete(离散检测):当物体这一帧还在前面,下一帧就到后面去了,就检测不到,不适用于高速运动的物体Continuous(连续检测):防止对象穿过所有静态碰撞体Continuous Dynamic(动态连续检测):防止对象穿过所有静态碰撞体以及设置为Continuous或Continuous Dynamic的刚体...
2018-09-13 09:02:39
15017
原创 unity碰撞检测和触发器的方法函数
碰撞检测涉及三个函数:当与物体碰撞的一瞬间:OnCollisionEnter(Collision collision),collisionInfo是撞到的物体的碰撞信息;当在与物体持续碰撞接触期间:OnCollisionStay(Collision collision);当与物体不再接触:OnCollisionExit(Collision collision)。什么是触发器:...
2018-09-12 14:51:39
4026
原创 unity碰撞检测的条件和类型
碰撞检测必须是两个物体接触并产生碰撞,双方都要有碰撞器,至少要有一方有刚体Rigidbody,一般是在运动的物体上加刚体碰撞检测一般分为物理碰撞和射线检测碰撞...
2018-09-12 13:32:41
2061
原创 打印实心菱形,空心菱形以及嵌套菱形
O O A O O A 3 O O O A O O O A4 1 O A A A O 左A 2 右A 4 O O A A A O O ...
2018-09-12 10:32:48
433
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人