UnrealScript有很多数据类型,选择用什么数据类型取决于我们想做什么。
因为百科已经写的很详细了,有的地方我就不说那么多了。
变量
变量类型
内置类型 (Built-in types)
这里有一些在 UnrealScript 中宣告变量的例子:
var int a; // 宣告一个名称为"A"的整数变量。
var byte Table[64]; // 宣告一个长度64的静态 1-byte 阵列。
var string PlayerName; // 宣告一个名称为"PlayerName"的字串变量。
var actor Other; // 实体化 Actor 类别,并命名为"Other"。
var() float MaxTargetDist; // 宣告一个名称为"MaxTargetDist"的浮点数变量,并且它的值可以从 UnrealEd 的属性窗口中修改。
变量在 UnrealScript 能出现在两种地方:实体变量,它可以在整个类别内使用,在宣告完类别或 struct 后立即出现。局部变量,出现在函数中,只有在函数执行时有效。实体变量使用关键字 var 宣告。局部变量用关键字 local 宣告,
但在声明局部变量的时候,必须在声明全部局部后,才能编写功能函数.
以下是 UnrealScript 中支持的内置变量类型:
byte: 1-byte 值,范围从 0 到 255。
int: 32-bit 整数值。
bool: 布林运算值: 不是 true 就是 false。
float: 32-bit 浮点数值。
string: 一个字串(see Unreal Strings)。
constant: 不能修改的变量。
enumeration: 一个能够代表多个预先设定的整数值中的其中一个值。例如:在 Actor 内定义为 enumeration 的变量ELightType 描述了一个动态光源,它的值可以像 LT_None、LT_Pulse、LT_Strobe,等等...。
数组
数组使用以下语法声明:
var int MyArray[20];
UnrealScript仅支持一维数组,但你可以通过自己来设置 行/列 的数学处理来模拟多维数组。
动态数组
声明一个叫IntList的动态整型数组:
var array<int> IntList;
声明一个类型为 class<PlayerController> 、名称为Players的动态数组:
var array<class<PlayerController> > Players;
这节我们首先来讲解Boolean(布尔值)
布尔值是“真” true 或“假” false 中的一个。动作脚本也会在适当时将值 true 和 false 转换为 1 和 0。
我们来声明一个布尔变量
var bool bIsSunday;
var是我们要声明一个变量。什么变量?变量是bool。变量的名字是什么?变量名是bIsSunday。
(关于变量名的命名规则,大家可以百度下,大多数也是通用的。建议用简单易看懂的英文字母,实在不懂英文用拼音也行)
比如我的这个变量名,b? 即布尔, 是否。 Is 是 Sunday星期天,比如一看就知道意思是是否星期天了。
现在我们要把布尔值取到调试信息面板进行输出。
我们学过用`log进行输出,现在我们要用@号进行取变量名
这时代码应该是
Class MyUSGame extends actor
placeable;
var bool bIsSunday;
function postbeginplay()
{
`log("Is it Sunday today?"@bIsSunday);
}
@,我们贴吧常用的@某个人时用的符号 比如@电锯糖心 @乐乐570929726
他们就会过来,现在我要@变量名,它就会过来,取而代之显示的就是它的值。
好了我们编译一下
这时`log内” ”引号内内容原样输出,@后面的值显示,即False
为什么是FALSE如果真的是星期天那不应该是TRUE吗?
我们每次声明变量的时候它都会有一个默认的值,布尔的默认值就是FALSE
那么我们试着让它今天变成星期天
这时函数应该是
function postbeginplay()
{
bIsSunday=true;
`log("Is it Sunday today?"@bIsSunday);
}
编译运行后
如果看到True 那么今天就会变成星期天了
标识符和关键字
修饰符是程序员为他们想引用的项所取的名称,比如类、变量及函数名。在UnrealScript中,所有的修饰符都是大小写不敏感的,这意味着RegenPerSecond、REGENperSECOND和 ReGeNpErSeCoNd都被认为是同一个标识符。
当提到标示符名称时,有几个需要知道的规则:
1.所有的标示符必须以字母或下划线(_)开始。
2.后面可以跟随任何字母、数字或下划线的组合物。
3.标识符不能包含空格。
4.标示符不能和关键字一样。
有效标识符的几个例子:
___ValidIdentifierValid_IdentifierValid123Identifier456
无效标识符的几个例子:
3_InvalidInv@lidInvalid Identifierclass
关键字是编译器保留的特殊单词,它们对应着特定的功能。在我们的示例脚本中,我们看到了几个不同的关键字:class function var defaultproperties。和标识符一样,关键字也是大小写不敏感的。