zoukankan      html  css  js  c++  java
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:11.Struct结构体

    UnrealScript struct是把一组变量一起塞入到一个新类型称为struct的超级变量的一种方法。UnrealScript structs和C语言中的结构体很像,它可以包含变量、数组及其它的结构体,但UnrealScript structs中不可以包含函数。
     
    在实际问题中,一组数据往往具有不同的数据类型。例如, 在学生登记表中,姓名应为字符型;学号可为整型或字符型; 年龄应为整型;性别应为字符型;成绩可为整型或实型。 显然不能用一个数组来存放这一组数据。 因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,程序语言中给出了另一种构造数据类型——“结构”。
     
    Unrealscript中结构体的语法
    struct 结构体名
    {
    成员列表
    //var ABag Bag;
    };(注意这里有个分号)
     
     
    我们来试一下

    class MyUSGame extends actor
    placeable;

    Struct Abag //首先我给自己定义个钱包,里面放些东西
    {
    var float money;
    var string someting;
    };
    struct me //然后这是我本人
    {
    var string name;
    var float height;
    var ABag Bag; //然后我把包包放到身上去
    };

    var me my; //给个变量然后我们用它

    function PostBeginPlay()
    {
    my.name="oraplayer";
    my.height=1.7;
    my.Bag.money=9999999;
    my.Bag.someting="IDcard";
    `log("this is my information:");
    `log("my name is:"@my.name);
    `log("my height is:"@my.height);
    `log("my money:"@my.Bag.money);
    `log("i have some stuffs:"@my.Bag.someting);
    }




    你可以像操作其它变量一样来操作Struct变量: 你可以赋值变量给它们、也可以传递它们给函数、而且您也可以访问它们的成员。
    在Object类中定义了几个Structs,这些在整个的Unreal将一直会使用。你必须熟悉它们的操作,因为它们是脚本的基础构建模块。
    Struct (结构体)修饰符
    Structs也具有少量几个可以影响struct的所有实例的修饰符。修饰符在定义中位于 struct 关键字和结构体名称之间。
    atomic
    意味着这个struct要一直作为一个单独的单元进行序列化;如果在struct中的任何属性和它的默认值不同,那么struct中的所有元素都将被序列化。
    atomicwhencooked
    仅在使用已烘焙的包的数据时才应用'atomic'标志。
    immutable
    意味着这个结构体使用二进制序列化(减少磁盘空间占用并提高序列化性能);在没有增加包的版本的情况下从这个struct中增加/移除成员是不安全的。
    immutablewhencooked
    仅当使用已烘焙的包数据进行工作时才能应用'immutable'标志。
    strictconfig
    意味着当一个struct属性有'config/globalconfig'修饰符时,仅在这个结构体中标记为config/globalconfig的属性才能被从.ini文件中读取。(如果没有此标志,在struct中的所有属性都是可配置的)
     
  • 相关阅读:
    查找文献的BibTex
    123. 单词搜索(DFS)
    423 Locked
    Win7 ODBC驱动 Excel (转)
    存储过程如何传变量到like下
    表的倒数第二行数据
    oracle跟踪
    PL/SQL-FOR UPDATE 与 FOR UPDATE OF的区别
    oracle for loop
    sqlserver中sp_executesql使用实例(获取动态sql输出结果)
  • 原文地址:https://www.cnblogs.com/wodehao0808/p/6104710.html
Copyright © 2011-2022 走看看