框架
文章平均质量分 65
鹿野素材屋
独立游戏/应用开发,《香椿勇者》开发者,长期接各类外包。
对动作游戏、游戏AI具有浓厚兴趣,现在主要进行模拟经营类型游戏开发。
展开
-
Unity3D使用委托实现ECS框架
ECS即 Entity-Component-System(实体-组件-系统)的缩写,其模式遵循组合优于继承原则。通过组件的组合形成实体,组件可以增删。 比如在游戏中,某个人需要实时进行走路的方法,这个时候就可以先在人的类中用委托声明: public delegate void UpdateEvent(); public UpdateEvent updateAll; 声明可以被委托的方法: public void Run() { Debug.Log("走路"); } 调用的方法:原创 2021-01-06 11:47:52 · 296 阅读 · 1 评论 -
关于U3D客户端热更框架设计的一些思路
今天为了研究热更,抽空把xlua-framework的文档研究了下。当然自己的项目中也用到了x_lua,所以做些笔记。 先记录一些关于lua设计的知识点,这个后期可能会用上: Table作为表时可以当做数组(Array),也可以当做哈希表(hashtable)(注意:实际上Lua语言对Table的实现,在底层会同时存在线性部分的数组和散列部分的哈希表,在某些情况下才是二者挑一) 类和类实例:Lua中只有表的概念,其实类和类实例都是一张表,对于类来说,定义以后全局范围内只有一张表来标识这个类,类实例就是原创 2020-09-28 18:22:10 · 250 阅读 · 0 评论 -
弱联网小游戏的服务器架构图解
对于弱联网的小游戏而言,逻辑基本放在客户端;除了付费货币的业务外,服务器基本只起到一个效验的作用。 所以,设计了如下简单的服务器架构,草稿图解如下: 热更的逻辑在登录/注册之前,在登录的时候会,服务器接收客户端信息做初次效验;客户端接收到返回信息收,根据信息做二次效验。 然后每隔一段时间发送一次心跳信息。 逻辑部分,主要与付费货币有关,来源有任务、广告、付费等。这部分涉及到游戏的营收,所以必须放到服务器处理。 ...原创 2020-09-21 12:13:00 · 1098 阅读 · 0 评论 -
U3D框架(三):对象池
对象池原理:将子弹之类的物体回收关闭,再次调用的时候打开,这样可以防止数据被频繁的创建和删除。 如果只是单个对象池,我们用一个list即可实现。 不过为了方便,项目中通常会把这部分单独提炼出来。 总游戏池的代码类似如下: using System.Collections; using System.Collections.Generic; using UnityEngine; public class ObjectPool { public static readonly ObjectP原创 2020-08-09 12:49:50 · 167 阅读 · 0 评论 -
U3D框架搭建(二):单例化
游戏中我们经常会用到单例化,而在客户端非线程的情况下,单例化函数是十分简单的,代码如下: public static class Singleton<T> where T : new() { public static readonly T Inst = new T(); } 引用如下: public static ClassName Inst =&g...原创 2019-08-30 11:49:12 · 159 阅读 · 0 评论 -
U3D框架搭建(一):订阅者模式
在代码编写中,我们经常会遇到类之间的消息传递,尤其是继承某些引擎对象(例如U3D)的方法,别的类直接调用会导致数据重置,这个时候就需要用到订阅者模式。 订阅者模式的作用,是当订阅对象发生变化的时候,可以将消息发布给每个订阅者。原理是建立一个抽象的消息类,所有事件在类中注册,并在订阅对象发生变化的时候,将对应消息分发给那些注册过订阅者。 代码如下: using System; u...原创 2019-08-27 15:06:21 · 319 阅读 · 0 评论