骑砍2霸主MOD开发(12)-游戏实例GameEntity

一.GameEntity游戏实例

     <1.通用GameEntity,梯子,椅子,攻城云梯,战车等定义为GameEntity,一个GameEntity由若干GameEntityComponets组成,例如攻城云梯的轮子是一个独立Component,支架是一个独立Component,

    GameEntity = GameEntityComponent1 + GameEntityComponent2 +GameEntityComponent3

    <2.定制化GameEntity-Agent

    Agent.AgentVisuals = MeshComponent + ItemComponent + SkinedMeshComponent

获取AgentComponents
MBReadOnlyList<AgentComponent> list = Mission.MainAgent.Components;获取ItemComponents
Equipment equipment = Mission.MainAgent.SpawnEquipment;
EquipmentElement equipmentElement = equipment.GetEquipmentFromSlot(EquipmentIndex.Weapon2);获取Agent骨骼Skeleton
Skeleton skelton = Mission.MainAgent.AgentVisuals.GetSkeleton();获取AgentVisual对应components
GameEntityComponent com = Mission.MainAgent.AgentVisuals                     .GetEntity().GetComponentAtIndex(1, GameEntity.ComponentType.Light);添加GameEntity至Agent
sbyte boneIndex = Skeleton.GetBoneIndexFromName (Mission.MainAgent.AgentVisuals.GetSkeleton().GetName(), "head");
Mission.MainAgent.AgentVisuals.AddPrefabToAgentVisualBoneByRealBoneIndex("ship_a", boneIndex);

    <3.定制化GameEntity-Item

    Items = ArmorComponent + HorseComponent + TradeItemComponent

                 + WeaponComponent + BannerComponent

#从XML文件中加载ItemObject
ItemObject itemObject = MBObjectManager.Instance.GetObject<ItemObject>("guarded_padded_vambrace");#获取Armor/horse等相关属性
int armArmor = itemObject.ArmorComponent.ArmArmor;

二.GameEntity预制&动态创建

    1.在自己的MOD下创建Prefabs文件夹

    2.创建XML文件,配置Prefabs,添加GameEntity

<Prefabs><game_entity name="empire_castle_keep_a_l2" old_prefab_name="" occlusion_body_name="bo_occ_empire_castle_keep_a_l2"><transform position="0.000, 0.000, 0.000" rotation_euler="0.000, 0.000, 0.000"/><physics shape="bo_empire_castle_keep_a_l2" mass="1.000"/><components><meta_mesh_component name="empire_castle_keep_a_l2"/></components></game_entity>
</Prefabs>

    3.在Mission中初始化自己的GameEntity

       GameEntity ship = GameEntity

               .Instantiate(Mission.Scene, "ship_a", Mission.MainAgent.Frame);

三.GameEntityComponent

    1.GameEntityComponent种类:

		[EngineStruct("rglEntity_component_type", false)]public enum ComponentType : uint{MetaMesh,Light,CompositeComponent,ClothSimulator,ParticleSystemInstanced,TownIcon,CustomType1,Decal}

    2.GameEntityComponent销毁,创建,使用等事件统称为ScriptComponentBehavior

       <1.在对应GameEntity中添加<script></script>,添加属于自己的ScriptComponentBehavior

	<game_entity name="siege_ladder_7m_spawner" old_prefab_name=""><transform position="0.000, 0.000, 0.000" rotation_euler="0.000, 0.000, 0.000"/><physics mass="1.000"/><scripts><script name="SiegeLadderSpawner"><variables><variable name="UpperStateRotationDegree" value="-19.000"/></variables></script></scripts></game_entity>

       <2.重写ScriptComponentBehavior的OnInit等方法,实现自己的相关功能

public class SiegeLadderSpawner : ScriptComponentBehavior
{protected override void OnPreInit(){base.OnPreInit();}protected override void OnInit(){}
}

      <3.ScriptComponetBehavior种类

可使用Behavior:UsableMachine可站立前进Behavior:StandingPoint攻城武器Behavior:SiegeWeapon

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/24222.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端开发之WebSocket通信

WebSocket WebSocket是一种在单个TCP连接上进行全双工通信&#xff08;双向同时通信&#xff09;的协议&#xff0c;它允许服务器和客户端之间自由地交换数据&#xff0c;无需反复建立连接。其特点包括&#xff1a; 双向通信&#xff1a;实时性强&#xff0c;支持服务器向客户…

移动端前端开发遇到过的Andorid和IOS的差异记录

移动端前端开发遇到过的安卓和苹果的差异记录 1. 引入外部资源&#xff0c;最好用https2. IOS时间戳获取NaN问题3. 金额三位分节显示方式4. .webp图片支持问题 1. 引入外部资源&#xff0c;最好用https ios处于安全性的考虑&#xff0c;不大支持http引入外部资源&#xff0c;所…

【kubernetes】探索k8s集群的配置资源(secret和configma)

目录 一、Secret 1.1Secret 有四种类型 1.2Pod 有 3 种方式来使用 secret 1.3应用场景&#xff1a;凭据 1.4创建 Secret 1.4.1用kubectl create secret命令创建Secret 1.4.2内容用 base64 编码&#xff0c;创建Secret 1.4.2.1Base64编码 1.4.2.2创建YAML文件 1.4.2.3…

《计算机网络》

计算题【33】 题目:假设一个有噪声信道的带宽为3KHz,信噪比为30dB,则该信道的最大数据传输速率是多少? C = W log2(1+S/N)(bit/s)=3000Hz* log2(1+30)= 29.9kbps 题目:一个网络中,设定的IP地址范围是:172.88.32.1至172.88.32.254,试确定其合适的子网掩码。 分析第…

「前端+鸿蒙」鸿蒙应用开发预览模拟器运行

在鸿蒙应用开发中&#xff0c;预览和模拟器运行是开发流程中的重要环节&#xff0c;它们允许开发者在不使用实体设备的情况下测试应用的界面和功能。以下是如何使用华为DevEco Studio进行预览和在模拟器上运行鸿蒙应用的详细步骤&#xff0c;以及相应的示例代码。 快速体验-预览…

277 基于MATLAB GUI火灾检测系统

基于MATLAB GUI火灾检测系统&#xff0c;可以实现图片和视频的火苗检测。火焰识别的三个特征&#xff1a;1个颜色特征&#xff0c;2个几何特征颜色特征&#xff1a;HSV颜色空间下&#xff0c;对三个通道值进行阈值滤波&#xff0c;几何特征1&#xff1a;长宽比&#xff0c;几何…

用 Python 撸一个 Web 服务器-第3章:使用 MVC 构建程序

Todo List 程序介绍 我们将要编写的 Todo List 程序包含四个页面&#xff0c;分别是注册页面、登录页面、首页、编辑页面。以下分别为四个页面的截图。 注册页面&#xff1a; 注册 登录页面&#xff1a; 登录 首页&#xff1a; 首页 编辑页面&#xff1a; 编辑 程序页面非…

程序员搞副业一些会用到的工具

微信号采集(爬虫)技术的选型 那么&#xff0c;我们应该使用什么技术来从庞大的网页内容中自动筛选和提取微信号呢&#xff1f;答案就是&#xff1a;数据采集技术&#xff0c;也就是爬虫技术。 然而&#xff0c;数据采集技术种类繁多&#xff0c;我们具体应该采用哪一个呢&…

【Linux】—— 线程控制的基本介绍

目录 &#xff08;一&#xff09;POSIX线程库 &#xff08;二&#xff09;创建线程 2.1 线程ID及进程地址空间布局 &#xff08;三&#xff09;线程终止 &#xff08;四&#xff09;分离线程 &#xff08;一&#xff09;POSIX线程库 POSIX线程库&#xff08;POSIX Thread…

Node.js后端构建指南:MongoDB与Express的集成

安装express 安装 Express 并将其保存到依赖列表中&#xff1a; $ cnpm install express --save 以上命令会将 Express 框架安装在当前目录的 node_modules 目录中&#xff0c; node_modules 目录下会自动创建 express 目录。以下几个重要的模块是需要与 express 框架一起安…

nss刷题(4)

1、[SWPUCTF 2021 新生赛]easyrce <?php error_reporting(0); highlight_file(__FILE__); if(isset($_GET[url])) { eval($_GET[url]); } ?> if(isset($_GET[url])) isset函数用来检测url变量是否存在&#xff1b;$_GET函数获取变量数据 eval($_GET[url]); eval函数用…

【GIS矢量切片】tippecanoe在Windows和CentOS中的安装

组件安装记录 背景介绍Windows下安装1、下载工具2、存放安装包3、进入DOS终端4、在终端执行命令5、下载程序6、放置源码7、修改配置信息8、编译9、测试10、参数说明瓦片输出瓦片描述和权属信息输入文件和图层名输入文件的并行处理输入文件的投影缩放级别瓦片分辨率CentOS 7安装…

尝试用 GPT-4o 写 2024高考语文作文

文章目录 新课标I卷科技进步与问题的演变 新课标II卷抵达未知之境&#xff1a;探索与成长的旅程 全国甲卷坦诚交流&#xff1a;构建真正相遇的桥梁 北京卷历久弥新 天津卷定义与自定义&#xff1a;在世界的缤纷中前行 上海卷认可度的思考与反思 新课标I卷 阅读下面的材料&#…

Mongodb---java篇

一、导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency> 二、编写配置文件连接Mongodb 我的认证数据库是admin&#xff0c;你们可能不一样 sp…

第三篇——大数据思维的科学基础

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 大数据时代&#xff0c;大数据思维的重要性不言而喻&#xff1b;而信息在…

Elasticsearch搜索优化-自定义路由规划(routing)

在es的实践学习中&#xff0c;我觉得它的文档是最好的老师&#xff0c;所以先把这部分链接贴出来&#xff0c;本文只是引导&#xff0c;文档全是细节&#xff0c;还是推荐大家事后认真看看文档 Metadata fields-routing 在es搜索中&#xff0c;请求是先分发到所有分片&#x…

6月26~28日,2024北京国际消防展即将开幕!

随着社会的快速发展&#xff0c;消防安全日益受到广大民众的高度关注。为了进一步推动消防科技的创新与发展&#xff0c;提升全民消防安全意识&#xff0c;2024年北京消防展将于6月26日在北京国家会议中心盛大开展。目前:观众预登记已全面启动&#xff0c;广大市民和业界人士可…

马尔科夫性质-举例简单说明,马尔科夫模型和隐马尔科夫模型在自然语言处理方面应用是什么

目录 马尔科夫模型应用 马尔科夫性质,举例简单说明 马尔科夫模型 马尔科夫链 马尔科夫决策过程(Markov Decision Process, MDP) 例子 隐马尔科夫模型(Hidden Markov Model, HMM) 马尔科夫模型和隐马尔科夫模型在自然语言处理方面应用是什么 马尔科夫模型在自然语言…

SQLite3(1):介绍安装与测试

目录 1、SQLite3介绍 2、SQLite3的优势和特性 3、SQLite3安装与测试 3.1 SQLite3安装 3.2 SQLite3测试 4、SQLite3简单使用 4.1 连接数据库文件 4.2 创建信息表 4.3 插入三个学生信息 4.4 确认信息 5、总结 1、SQLite3介绍 SQLite3是一种轻量级的关系型数据库管理系…

论文阅读 A Distributional Framework for Data Valuation

本论文解决的问题 量化数据价值&#xff08;机器学习模型训练中各个数据点的贡献&#xff09; 避免数据价值受到其所处数据集的影响&#xff0c;使数据点的估值更加稳定、一致 变量假设 假设 D 表示一个在全集 Z 上的数据分布。对于监督学习问题&#xff0c;我们通常认为 Z…