07 2017 档案

【Unity3D与23种设计模式】享元模式(Flyweight)
摘要:GoF中定义: “使用共享的方式,让一大群小规模对象能更有效地运行” 享元模式一般应用在游戏角色属性设置上 游戏策划需要通过“公式计算”或者“实际测试”等方式找出最佳的游戏属性 因此,在游戏系统中建立一个管理方式来建立和存储属性信息就显得尤为重要 对象中那些只能读取不能写入的共享部分被称为“内在状态 阅读全文

posted @ 2017-07-27 16:41 Lumious 阅读(892) 评论(0) 推荐(0)

【Unity3D与23种设计模式】建造者模式(Builder)
摘要:GoF中定义: “将一个复杂的构建流程与它的对象表现分离出来,让相同的构建流程可以产生不同的对象行为表现。” 建造者模式可以分为两个步骤来实施: 1.将复杂的构建流程独立出来,并将整个流程分成几个步骤,其中的每一个步骤可以是一个功能组件的设置,也可以是参数的指定,并且在一个构建方法中,将这些步骤串接 阅读全文

posted @ 2017-07-25 08:44 Lumious 阅读(616) 评论(0) 推荐(0)

【Unity3D与23种设计模式】工厂方法模式(Factory Method)
摘要:GoF中定义: “定义一个可以产生对象的接口,但是让子类决定要产生哪一个类的对象。工厂方法模式让类的实例化程序延迟到子类中实施” 当类的对象产生时,若出现下列情况: 1.需要复杂的流程 2.需要加载外部资源,如从网络、存储设备、数据库 3.有对象上限 4.可重复利用 建议使用工厂方法模式来实现一个工 阅读全文

posted @ 2017-07-21 16:53 Lumious 阅读(676) 评论(0) 推荐(0)

【Unity3D与23种设计模式】模板方法模式(Template Method)
摘要:GoF中定义: “在一个操作方法中定义算法的流程,其中某些步骤由子类完成。 模板方法模式让子类在不变更原有算法流程的情况下,还能够重新定义其中的步骤” 每一次武器攻击目标时,都要按逻辑执行: 1.开火、枪口特效 2.子弹特效 3.武器特效 4.通知敌方被击中 而每一种武器(如:枪,炮)都要执行一遍相 阅读全文

posted @ 2017-07-20 15:01 Lumious 阅读(325) 评论(0) 推荐(0)

【Unity3D与23种设计模式】策略模式(Strategy)
摘要:GoF中定义: “定义一组算法,并封装每个算法,让它们之间可以彼此交换使用。 策略模式让这些算法在客户端使用它们时能更加独立。” 游戏开发过程中 不同的角色会有不同的属性计算方法 初级解决方法便是:if else,不够再来几个if else 高级点儿的就用switch case配合enum 对于小型 阅读全文

posted @ 2017-07-19 17:11 Lumious 阅读(335) 评论(0) 推荐(0)

【Unity3D与23种设计模式】桥接模式(Bridge)
摘要:GoF定义:“将抽象与实现分离,使二者可以独立的变化”游戏中,经常有这么一种情况基类角色类(ICharacter),下面有子类士兵类(ISoldier)、敌军类(IEnemy)基类武器类(IWeapon),下面有子类枪类(IGun)、炮类(ICannon)当然,有用枪的士兵,有用炮的士兵这么一组合,就是2*2 = 4个类游戏后期,当角色类添加一个角色类时,变成了2*3 = 6个类若再添加一个武器类... 阅读全文

posted @ 2017-07-19 15:02 Lumious 阅读(848) 评论(0) 推荐(0)

【Unity3D与23种设计模式】游戏的主循环——Game Loop
摘要:游戏与其他软件最大的不同 就是游戏有Update逻辑 一般的软件是由“事件”驱动 因为它不会突然跑出来一只“兔子” 因此,只有游戏才有“帧”的概念 (没秒多少帧,就是没秒Update执行多少次) Unity有自己的生命周期 Awake,Start,Update… 只要继承MonoBehaviour就 阅读全文

posted @ 2017-07-18 15:10 Lumious 阅读(1111) 评论(0) 推荐(0)

【Unity3D与23种设计模式】中介者模式(Mediator)
摘要:GoF中定义: 定义一个接口来封装一群对象的互动行为 中介者通过移除对象之间的引用 以减少他们之间的耦合度 并且能改变它们之间的互动独立性 游戏做的越大,系统划分的也就越多 如事件系统,关卡系统,信息系统,界面系统等。 系统切分越细,就意味着系统之间的沟通越复杂 单一系统引入太多其他系统的功能,不利 阅读全文

posted @ 2017-07-18 11:24 Lumious 阅读(906) 评论(0) 推荐(0)

【Unity3D与23种设计模式】单例模式(Singleton)
摘要:GoF中定义: “确认类只有一个对象,并提供一个全局的方法来获取这个对象” 使用单例模式的前提 它只能产生一个对象且不能够被继承 单例模式的优点: 提供方便获取唯一对象的方法 可以限制对象的产生数量 单例模式的缺点: 容易造成设计思考不周和过度使用的问题 违反了“开-闭原则”(OCP) 这两行代码就 阅读全文

posted @ 2017-07-14 15:49 Lumious 阅读(723) 评论(0) 推荐(1)

【Unity3D与23种设计模式】外观模式(Facade)(门面模式)
摘要:GoF中定义: “为子系统定义一组统一的接口,这个高级的接口会让子系统更容易被使用” 其实这个模式虽然很少听过 但我们在敲代码的时候却是经常使用 比如: 在游戏初始化时 要初始化很多东西 如果把这些需要初始化的一步一步列出 确实简单直接 但缺点也很明显:不容易移植、代码臃肿 而如果把这些所有需要初始 阅读全文

posted @ 2017-07-14 14:11 Lumious 阅读(461) 评论(0) 推荐(0)

【Unity3D与23种设计模式】状态模式(State)
摘要:定义: “让一个对象的行为随着内部状态的改变而变化,而该对象也像是换了类一样” 应用场景: 角色AI:控制角色在不同状态下的AI行为 服务器连接状态:开始连线、连线中、断线等状态 关卡进行状态:不同关卡 Context(状态拥有者) 一个具有状态属性的类,可以制定相关的接口,让外界能够得知状态的改变 阅读全文

posted @ 2017-07-13 17:29 Lumious 阅读(667) 评论(0) 推荐(0)

UGUI 字体背景长度自适应
摘要:本文实现以下需求: 在UGUI中 Text为动态添加 要使Text字体背景随着Text的长度而变化 之前还在赞叹UGUI的强大 转念一想,UGUI中好像没有可以实现此功能的组件 也想出了一种办法 把背景作为字体的子物体 不过后来想了想 由于UGUI的渲染顺序 字体背景就会遮住字体 故此想法是否定的 阅读全文

posted @ 2017-07-07 17:42 Lumious 阅读(1865) 评论(0) 推荐(0)

粘包分包现象及处理
摘要:现象描述由于TCP协议本身的机制客户端与服务器会维持一个连接发送数据粘包原因如果发送的网络数据包太小,TCP则会合并较小的数据包再发送,接收端便无法区分哪些数据是发送端自己分开的,因此便会产生粘包现象。或者,接收端把数据放到接收缓冲区中,如果数据没有及时从缓冲区取走,下次取数据时就可能出现一次取走多个数据包的情况。如:客户端Send:hello客户端Send:unity服务端Recv:Recv分包... 阅读全文

posted @ 2017-07-06 17:33 Lumious 阅读(640) 评论(0) 推荐(0)

防止SQL注入
摘要:所谓sql注入就是通过输入请求,把sql命令插入到sql语句中以达到欺骗服务器执行而已sql命令的目的如使用string sql = “Select * from player where id =” + id;此时可以正常完成数据的读取工作如果使用“xiaoming;delete * from player;”的名字此语句则变成两条语句Select * from player where id ... 阅读全文

posted @ 2017-07-05 17:19 Lumious 阅读(178) 评论(0) 推荐(0)

Unity服务端链接MySQL数据库
摘要:链接数据库,可以分为以下几个流程:链接MySQL(数据库地址、端口、用户名、密码)选择数据库执行sql语句关闭数据库转换为代码如下:using System; using MySql.Data; using MySql.Data.MySqlClient; using System.Data; using System.Text.RegularExpressions; using System.Ru... 阅读全文

posted @ 2017-07-04 17:25 Lumious 阅读(411) 评论(0) 推荐(0)

C#中的多线程与线程互斥
摘要:通过多线程,C#可以并行地执行代码。 每一个线程都有它独立的执行路径,所有线程都能访问共有变量。 这就引发了线程竞争 这时就需要使用线程安全的处理方式使得线程互斥 先来看一段多线程代码 using System; using System.Timers; using System.Threading 阅读全文

posted @ 2017-07-03 17:19 Lumious 阅读(494) 评论(0) 推荐(0)

导航