Gamebryo-gsa文件概述

1. gsa文件(gsa = gamebryo scene asserts) 是 gamebryo存储场景的一种格式, 另一种是nif格式.  gas文件是以xml格式存储, 而nif文件是以二进制格式存储.

   2. gsa文件与nif文件区别

       1.) gsa文件通过NiEntityStreamingAscii解析, 而nif文件则通过NiStream解析.

       2.) gsa文件主要包含3种元素: ENTITY, COMPONENT, PROPERTY. 经过解析后,ENTITY对应继承NiEntityInterface和NiRefObject的派生类实例(如NiGeneralEntity), 
            COMPONENT对应继承NiEntityComponentInterface和NiRefObject的派生类实例(如NiCameraComponent). PROPERTY对应基本类型数据(如int, float, NiPoint2(3)d 等).
            
       3.) gsa文件在SCENES节点定义有效的ENTITY列表. 一个gsa文件包含一个或多个ENTITY, COMPONENT, PROPERTY. 一个ENTITY可以包含一个或多个COMPONENT, 
            一个COMPONENT可以包含一个或多个PROPERTY. 而某些PROPERTY也包含一个或多个ITEM.(ITEM的值对应的是ENTITY ID).

       4.) gsa文件是基于NiEntity Framework. 而NiEntity Framework通过reflection机制向外提供对象属性和功能的访问. 它的主要作用是使游戏可以结合脚本引擎动态改变属性.

       5.) 角色ENTITY中含有一个特别的COMPONENT - 对应类NiActorComponent. 角色模型的动作控制就是通过NiActorComponent里的NiActorManager来实现的.

     3. ENTITY对象属性

         ENTITY对象可以通过GetPropertyData/SetPropertyData函数获得/修改属性值. 而如果是模型ENTITY, 还可以通过NiActorComponent获得NiNode模型数据,通过GetExtraData/
         AddExtraData来获得/添加自定义的数据.

你可能感兴趣的:(游戏,xml,脚本,存储,float,引擎)