EasyInjector 置顶 | 发表于 2019-10-28 | 更新于 2020-03-07 | 分类于 C# 本文字数: 7.9k | 阅读时长 ≈ 7 分钟 思考并回答以下问题: 什么是依赖注入?有哪几种注入方式? 为什么需要IOC容器?直接注入不行吗? 自定义特性是什么原理? 阅读全文 »
Audio模块封装 置顶 | 发表于 2019-10-19 | 更新于 2019-11-27 | 分类于 Unity 本文字数: 8.7k | 阅读时长 ≈ 8 分钟 思考并回答以下问题: 为什么要封装Audio模块? 为什么同类型的东西多了,就需要一个管理器? 能不继承MonoBehavior就不继承MonoBehavior? 为什么用类来存AudioClip? 阅读全文 »
在Unity中实现游戏命令模式 置顶 | 发表于 2019-09-18 | 更新于 2020-03-15 本文字数: 16k | 阅读时长 ≈ 14 分钟 思考并回答以下问题: 暂时不执行,等之后一起执行。原先的做不到,命令模式可以做到。怎么理解? Invoker中分别使用List、Queue、Stack可以实现对多个命令的不同管理。怎么理解? 有这种游戏,先输入好几个移动命令,然后按Enter执行,角色按照之前输入的一系列命令顺序执行,还支持撤销和恢复撤销以及重做。玩过吗? 命令模式的Invoker和备忘录模式的Caretaker作用相似,怎么理解? 阅读全文 »
面向对象设计原则 置顶 | 发表于 2019-09-16 | 更新于 2020-06-02 | 分类于 设计模式 本文字数: 11k | 阅读时长 ≈ 10 分钟 思考并回答以下问题: 开闭原则是目标,里氏代换原则是基础,依赖倒转原则是手段。怎么理解? 为什么在对每一个模式进行优缺点评价时都会将开闭原则作为一个重要的评价依据? 为什么在程序中尽量使用基类类型对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象? 为什么用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明,以及数据类型的转换等,而不要用具体类来做这些事情? 为什么在程序中应该尽量使用抽象层进行编程而将具体类写在配置文件中? 开闭原则是目标,里氏代换原则是基础,依赖倒转原则是手段。怎么理解? 为什么接口应该尽量细化,同时接口中的方法应该尽量少? 通过继承来进行复用的主要问题在于继承复用会破坏系统的封装性,因为继承会将基类的实现细节暴露给子类。这种复用名词是什么? 什么是“黑箱”复用? 阅读全文 »
实现依赖注入 置顶 | 发表于 2019-08-10 | 更新于 2019-10-15 | 分类于 设计模式 本文字数: 11k | 阅读时长 ≈ 10 分钟 思考并回答以下问题: 哪些模式是结构型模式?结构型模式是为了解决什么问题? 一旦发现依赖,就引入设计模式。怎么理解? 降低类和类之间的耦合,就是优化和引入设计模式的方向。但是耦合不可能消失。怎么理解? StrangeIOC使用了特性注入吗? 阅读全文 »
魔剑之刃 置顶 | 发表于 2018-12-14 | 更新于 2019-11-27 | 分类于 Unity 本文字数: 41k | 阅读时长 ≈ 37 分钟 思考并回答以下问题: Func()委托的第几个参数是返回值?为什么又自定义自己的MyFunc()委托?怎么定义? 对象池为什么使用Queue数据结构? 阅读全文 »
降临者 置顶 | 发表于 2018-11-12 | 更新于 2019-12-02 | 分类于 Unity 本文字数: 114k | 阅读时长 ≈ 1:43 思考并回答以下问题: 所有的加载都调用一个类来处理。这样的好处是:1、可以进行全局管理和优化,方便切换加载方式;2、代码各处都有各自的加载非常混乱,一旦修改就改动的非常多。 Vector3.normalized和Vector3.Normalized的区别是什么? i<<=j与i|=j是什么意思? 阅读全文 »
暗黑战神 置顶 | 发表于 2018-11-08 | 更新于 2019-11-27 | 分类于 Unity 本文字数: 204k | 阅读时长 ≈ 3:05 思考并回答以下问题: Delegate和delegate的区别是什么?public abstract Delegate Action {get;set;}是什么意思? internal和public的区别是什么?哪个范围更大? IEnumerator里面基本都是while(true)。怎么理解? 每个a.json文件都对应一个a.cs实体数据文件。暗黑战神每个xml对应一个数据实体cs文件,都是GameData的子类。然后还有一个GameDataController类来管理所有这些GameData的子类。怎么理解? 静态构造函数主要目的是用于初始化一些静态的变量。怎么理解? 基本没有脚本是预先挂载的,都是动态挂载。 扩展方法第一个参数前缀为this,表示需要扩展类对象,从第二个参数开始,为扩展方法参数列表。怎么理解? default(T)是什么意思?为什么要这样写?if(default(T) == null)是判断什么的? 阅读全文 »
俄罗斯方块 置顶 | 发表于 2018-11-03 | 更新于 2019-11-30 | 分类于 Unity 本文字数: 11k | 阅读时长 ≈ 10 分钟 思考并回答以下问题: 洪水填充(Flood fill)算法是什么? 阅读全文 »