《炉石传说》建筑设计欣赏(6):卡&在执行数据时,组织能力
上一篇文章我们看到了《炉石传说》核心存储卡的数据,今天,我们不断探索卡&身手。
基本的类
- Entity主要用来做网络数据同步用的;
- Actor主要处理client的渲染对象的控制,作为Component挂载在资源对象上;
- Spell是技能Prefab挂载的脚本。
- Card是卡牌Prefab挂载的脚本。在执行时处于中心地位,处理前3者的联系。
Entity
- Entity是通过网络数据创建的,主要是Network.PacketID.POWER_HISTORY这个消息。
详见GameState.CreateNewEntities()函数。由于Entity并非MonoBehavior派生类。所以是new出来的,然后加入到GameState中管理(GameState.AddEntity()),网络传来的Entity数据主要是Tags(每一个Tag是一个name->value对)。然后调用Entity.InitEntity();
Actor
- Actor也是一种资源,通过AssetLoader.LoadActor()载入;
- 相应于AssetFamily.Actor。
- 相应的资源包为“actor?.unity3d”,包内的为GameObject;
- Actor的载入入口是在:Card.DetermineActorThenTransitionToZone()
Spell
- Spell的载入入口是在Entity.ProcessCardDefAssetRequest()
Card
- 在InitEntity中调用了Entity.InitCard(),它做的工作仅仅是创建一个空的GameObject,然后使用AddComponent把Card加入上去。
- 真正的卡牌Prefab载入是在Entity.LoadCard()中进行的,这个函数是在处理PowerTask时GameState.OnShowEntity()中调用的。
- 详细的载入操作是通过 DefLoader.LoadCardDef()进行的。其内部再调用AssetLoader.LoadCardPrefab()来进行资源载入。
卡牌&技能的载入流程
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTmVpbDNE/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
版权声明:本文博主原创文章,博客,未经同意不得转载。
《炉石传说》建筑设计欣赏(6):卡&在执行数据时,组织能力的更多相关文章
- 炉石传说 C# 开发笔记 (续)
炉石传说山寨的工作一直在进行着,在开发过程中深深体会到,对于业务的理解和整个程序的架构的整理远比开发难得多. 在开发过程中,如果你的模型不合理,不准确,很有可能造成代码的混乱,冗余,难以维护和扩展性比 ...
- 炉石传说 C# 开发笔记
最近在大连的同事强力推荐我玩 炉石传说,一个卡牌游戏.加上五一放一个很长很长的假期,为了磨练自己,决定尝试开发一个C#的炉石传说. 这件事情有人已经干过了,开发了一个网页版的炉石,但是貌似不能玩... ...
- islands打炉石传说<DP>
islands最近在完一款游戏"炉石传说",又名"魔兽英雄传".炉石传说是一款卡牌类对战的游戏.游戏是2人对战,总的来说,里面的卡牌分成2类,一类是法术牌,另一 ...
- CCF2016093炉石传说(C语言版)
问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示).游戏在一个战斗棋盘上进行 ...
- CCF CSP 201609-3 炉石传说
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...
- CCF 炉石传说(模拟)
试题编号: 201612-3 试题名称: 炉石传说 时间限制: 1.0s 内存限制: 256.0MB 问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Wa ...
- ccf-201609-3 炉石传说
问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示).游戏在一个战斗棋盘上进行 ...
- CSP-201609-3 炉石传说
问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示).游戏在一个战斗棋盘上进行 ...
- 炉石传说酒馆战棋一键拔线(windows)
小编的业余游戏之一<炉石传说>,这里分享的是现在很火的游戏拔线(跳过约20秒的战斗动画),用夜吹的话说,注意,不是"日你大坝",是"整活",哈哈.小 ...
随机推荐
- FreeSwitch安装和配置记录
安装FreeSwitch 主要示例,下面的命令: git clone -b v1.2.stable git://git.freeswitch.org/freeswitch.git cd freeswi ...
- VSTO 为Office已有右键菜单添加自己的菜单项(word,Excel)
原文:VSTO 为Office已有右键菜单添加自己的菜单项(word,Excel) private void AddRightMenu() { Microsoft ...
- Oracle Cursor的使用
When Oracle Database executes a SQL statement, it stores the result set and processing information i ...
- poj 2166 构造
一个看了解题报告才能想明白的题目,第一点比较容易想明白,就是每次把1交换到堆顶之后如果能够换到最后面的位置那么一定是最优的,但是怎么实现这个没有想明白. 题解的那种构建方法,及从2开始插入,是可以保证 ...
- android之listView定位到指定行同一时候隐藏输入键盘
帮别人该bug遇到的一个问题,记录下来. listView.setSelection(a); 这种方法能够让让你的listview定位到指定行 可是假设紧接着运行隐藏输入键盘的代码.则会有bug.这个 ...
- Java注解全面解析(转)
1.基本语法 注解定义看起来很像接口的定义.事实上,与其他任何接口一样,注解也将会编译成class文件. @Target(ElementType.Method) @Retention(Retentio ...
- hdu5119(dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5119 分析:dp[i][j]表示由前i个数组成异或和为j的方法数,则dp[i][j]=d[i-1][j ...
- Android在子线程中更新UI(二)
MainActivity如下: package cc.testui2; import android.os.Bundle; import android.view.View; import andro ...
- Hbase配置中出现的问题总结
在create table的时候出现例如以下问题 1. ERROR: java.io.IOException: Table Namespace Manager not ready yet, try a ...
- 事务的使用示例及WinForm实现中的若干问题
--事务的使用示例 create database MyDB go use MyDB create table account ( Id int identity primary key, balan ...