自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 游戏实体的属性模型

游戏制作过程中的一些思考总结

2023-02-01 14:12:48 347

原创 关于技能系统的思考

游戏制作过程中的一些思考总结

2023-01-31 14:03:27 435

原创 Unity第一人称Demo演示

Unity第一人称Demo演示 Unity第一人称射击演示

2021-02-21 22:31:43 373

原创 《Head First设计模式》读书笔记 -- 装饰者模式

装饰者模式装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的解决方案。书中用星巴克来举例子,星巴克的扩张速度非常快,所以需要不断更新饮品种类。最初的设计是店内所有饮品(根据调料的不同会衍生出不同的饮品,例如摩卡咖啡、香草咖啡、双倍摩卡咖啡)都继承自Beverage类,实现description(饮品描述)和cost(价格)方法,结果如下:缺点:1、类爆炸(类的数量过多)。2、维护不便(某种调料价格变动时需要修改大量类的代码,新增调料后类数量翻倍)。到这里书中提.

2021-02-21 15:07:20 184

原创 《Head First设计模式》读书笔记 -- 观察者模式

观察者模式观察者模式定义了对象之间一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。书中用气象站应用来举例子:一种可能的实现:调用三个显示器对象的update方法,传入所需的数据。缺点:1、针对具体实现编程而非针对接口编程。2、运行时无法增加删除显示器对象。3、每有一个新的显示器就得修改measurementsChanged方法的代码。4、没有封装改变的部分。到这里书中提出一个设计原则:为了交互对象之间的松耦合设计而努力。观察者模式提供了一种对象设.

2021-02-21 13:53:49 137

原创 《Head First设计模式》读书笔记 -- 策略模式

策略模式策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。书中用鸭子类的例子来说明用继承实现类的行为(飞,叫)会导致许多缺点:在一开始,让所有鸭子继承自Duck类,父类实现fly方法。有的鸭子不能飞(橡皮鸭子),这时候子类用空方法把fly给覆盖掉,但是这样每当有新鸭子类出现时就需要检查是否需要覆盖方法。利用接口呢?能飞的鸭子实现flyable接口,能叫的鸭子实现quackable接口。但是这样一来会出现大量重复的代码,当修改行为时需要修改所有采用

2021-02-19 22:12:26 79

原创 Unity客户端UI性能优化

有的时候加载一个UI界面时可能需要加载很多的子UI,比如商店界面,如果在第一次进入时才实例化那么多个道具UI可能会给客户端带来不小的负担。其中一种优化的办法是预加载和分帧加载。 //外部调用的预加载方法 public void preloadCell() { StartCoroutine("preLoadExpItemCell"); } //道具数据 class Item { public GameObject ob

2021-01-24 17:00:38 604

原创 让方法更加通用和降低参数的学习成本(二)

在定义接口的时候,为了更加通用,可能会定义一些不是必须的参数,例如:function M:updateUI(star_level, wake_level, horizontalAlignment, hIntervalPercent) --(布局) 默认居中 self.horizontalAlignment = self.horizontalAlignment or 1 --(间隔) 默认每颗星星间隔为0 self.hIntervalPercent= self.hIntervalPer

2021-01-10 15:02:04 132

原创 让方法更加通用和降低参数的学习成本(一)

在业务需求变动的时候可能需要修改方法,修改的时候需要考虑如何降低方法参数的学习成本和怎么才能让方法更加通用。下面代码是用来刷新属性面板的脚本:--属性值由等级,星级决定 例如:hp = 星级 * 1.5 + 等级 * 2function M:updateBaseAttributes(hero, copy_hero) --更新属性面板 --设置头像 属性 名字 提升 ... --用高一级的copy_hero来计算提升的数值end--- up_key 支持 [星级, 等级]function M

2021-01-08 23:34:38 330

原创 游戏开发实习笔记:修改接口时的注意事项

修改接口时的注意事项有时候我们需要修改接口来满足自己的需求,例如这段代码中只提供了根据key值寻找value:local tab = { a = "A", b = "B"}function searchSomething(key) return tab[key]endprint(searchSomething("a"))如果我们还需要通过value来寻找key值呢?function searchSomething(key) return tab[key]

2020-12-15 21:52:12 213

原创 游戏开发实习笔记:Lua中获取table长度的坑

Lua中获取table长度的坑在Lua中表的索引值默认是从1开始的,在用键值对的方式添加数据时默认从1向上累加作为key值。local objIds = { "a",--objIds[1] = "a" "b",--objIds[2] = "b" "c",--objIds[3] = "c"}print(#objIds) -- 3上面代码可以获得表的长度为4,没有问题。local objIds = { "a",--objIds[1] = "a" "b",-

2020-12-09 22:01:16 584

原创 游戏开发实习笔记:代码逻辑让前后端数据传输更安全(双端验证)

代码逻辑让前后端数据传输更安全(双端验证)客户端在涉及到数据传输的前后端交互逻辑时,我以前的想法是客户端点击UI,将数据传输给服务器做处理,然后服务器将结果返回给客户端。就拿商品交易逻辑来举例:这个逻辑有着漏洞,如果放在商业项目会导致经济损失。步骤2中客户端将要出售的物品和拿到的价格发给服务器,这时候如果用户进行抓包,修改其中的数据(出售一件配置表中1元的物品,将数据改为1000),服务器就会将错误的数据存储起来。同样,服务器将数据发给客户端的过程也不安全,抓包修改数据后客户端会显示错误的数据。

2020-12-09 21:23:23 397

原创 如何避免Unity动画状态机的蛛网地狱

如何避免Unity动画状态机的蛛网地狱提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...

2020-11-22 16:22:53 1430 1

原创 Unity传递参数的坑

Unity中的引用传递和值传递有没有试过传递参数时明明修改了,但函数执行完毕后值却没有改变?这里需要搞清楚值类型数据和引用类型数据当作参数传递时的坑,简单来说值类型数据存储的是实际的数据,而引用类型顾名思义就是存储了实际数据的引用。这里先看看演示,struct为值类型,class为引用类型。 struct Item { public int id; public string name; } void Start() { //实例化一个结构体,结构体为值类型

2020-11-21 20:29:18 1493 1

原创 Unity武器与子弹碰撞检测

Unity武器与子弹碰撞检测一、采用碰撞器和刚体进行碰撞检测二、使用代码检测在想进行碰撞检测制造伤害或生成特效时,有两种常用的方法,一种是使用碰撞器和刚体,检测到碰撞后会自动调用OnCollisionEnter等函数,一种是使用Physics接口下的OverlapBox等检测函数。一、采用碰撞器和刚体进行碰撞检测在使用Collider进行碰撞检测时,至少要有一方是带有刚体组件。在默认设置的情况下这样就能够进行碰撞检测,但是在设置物体为静态或勾选刚体的动力学选项后会有不同。关于这两种碰撞什么情况下

2020-11-21 19:00:09 5836

原创 Unity第三人称的实现思路(二)

Unity第三人称的实现思路(二)锁定视角动画设置锁定视角摄像机角色朝向控制主要代码这一次我们在上一篇自由视角的基础上加上锁定视角的功能,没有看过上一篇的点下方链接。Unity第三人称的实现思路(一)锁定视角动画设置锁定视角的动画分为两种情况,一种是不带方向的一种是带方向的:单一方向:8方向:比如黑魂里的锁定视角,只推左摇杆正常移动时模型永远面朝目标,但如果按住x奔跑时模型就会朝向移动的方向,但摄像机依旧是对准目标的。而在这个Demo中我用的是拔出剑时模型永远面朝目标,剑收起来时

2020-11-01 19:11:35 1124

原创 Unity第三人称的实现思路(一)

Unity第三人称的实现思路(一)实现步骤角色模型层级设置输入检测模型动画角色移动摄像机自由视角转向角色转向实现步骤在做角色控制器的时候脑海里应该明白一点,与外界做交互的是角色身上的碰撞器(不可见),玩家看到的所有模型以及动画(可见)只是表现层,是角色控制器逻辑的体现。如果往极端地想,哪怕没有模型以及动画,游戏应该也能够正常运行,因为游戏内部的逻辑依旧在运行,只是没有表现给玩家看而已。本篇文章只是提供一种简单的实现思路,为了压缩文章长度不会把所有细节都解释一遍。角色模型层级设置Player

2020-10-31 19:57:41 3422

空空如也

空空如也

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

TA关注的人

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