UnrealScript教程 系列一(翻译自unreal wiki)
http://www.unreal.com.cn/forums/showthread.php?t=288
本文翻译自unreal wiki有关专有名词将不翻译,以便读者在看英文文章和与国外交流时不至于有障碍。
本文不需要读者有任何编程经验,但是你最好能对面象对像编程(OOP)有一点了解。如果你希望简单了解一下OOP,建议随便找本JAVA入门书看一下面象对像有关章节。
我们假设你已经安装了UT2004。
Unreal Script是一个和JAVA很像的面象对像语言。UnrealEngine的核心是由C++编写的,在UScript中我们称C++代码为native code。UScript运行于C++编写的核心引擎之上。关于UnrealEngine核心的介绍,请参看http://wiki.beyondunreal.com/wiki/Unreal_Engine_Core
下面我们将正式进入UScript编程教程
一、搭建编程环境。
首先你需要UT2004的UnrealScript源代码。你可以从这里下载最新版本的UnrealScript源代码然后解压缩到你的UT2004安装目录下。
你也可以打开你的UnrealEditor3,打开ScriptEditor窗口,然后选择导出源代码。 UnrealEd Main Menu → View → Show Script Editor 然后在该窗口中选 File → Export all scripts。我们并不推荐这样做,因为10有8,9UED会出错。并且它并没有正确导出所有的默认属性。特别是GUI2k4这个包中的内容。
如果现在你看一下你的UT2004目录,应该多出一堆新文件夹,在其中都有classes目录,里面都是后缀为uc的文件。.uc是UScript源文件的扩展名,而.u是编译后的代码文件。这些新文件夹,每一个都代表一个package包。package指的是一些特定类型文件的分组。UT2004的类文件有很多分组,不同类的文件放在不同包中,比如武器类和效果类被分在不同的包中。 uc文件都是文本文件,你可以用任何文本编辑打开编辑。
编程工具,你可以选择任何文本编辑工具编写uc文件,这里我推荐使用UDE(unreal development environment), 目前版本是3005, 下载地址:http://unreal.epicgames.com/Files/UDE3005.zip
如果你已经搞定了源文件,和编程工具,我们就可以开始正式编程了。
第一个Mutator,HelloWorld
在UT2004目录里新建一个MutHelloWorld文件夹,并在里面建立Classes目录。在里面新建HelloWorld.uc文件。(注意文件名是HelloWorld.uc不是HelloWorld.uc.txt)
现在我们开始编辑这个文件。注意下面第一行的HelloWorld必须和文件名完全一致。
代码:
class HelloWorld extends Mutator;
function PostBeginPlay()
{
Super.PostBeginPlay(); // 调用父类的这个函数(Mutator.PostBeginPlay).
Log("Hello World"); // 写信息到log文件
}
defaultproperties
{
FriendlyName="Hello World Mutator" //mutator的名字
Description="Log 'Hello World'." // mutator的介绍
}
这是helloworld需要的全部代码了。绿色字是注释。PostBeginPlay() 函数会在这个对象进入游戏后马上被调用。这个函数所做的只是在log文件中写入Hello World。保存这个文件。再次注意一下文件名不要写错了。
我们已经写好了所有需要的代码,现在我们要来编译它。先在UT2004\system里找到ut2004.ini,打开它。 在里面找到EditPackages=,在最后一行EditPackages=后面插入一行EditPackages=MutHelloWorld,然后保存,关闭文件。
在开始-运行中输入cmd打开命令行窗口,切换到ut2004\system目录, 然后输入
ucc make
这会运行编译程序。它会先查找不存在的包,因为helloworld是新文件, 所以发现它不存在后就会便宜我们的helloworld文件。如果不出现差错的话,一个新文件MutHelloWorld.u会产生在system目录里。
你还需要在命令窗口中输入
ucc dumpint MutHelloWorld.u
ucc exportcache MutHelloWorld.u
两条命令以生成相应的ucl和int文件。
现在我们已经完成了这个简单的mutator,我们可以进入ut2004看一下mutator中是否有这个新的mutator。加上这个mutator进入到游戏中,然后退出ut2004,在你的system里,打开ut2004.log文件,你应该能在里面找到hello world字样。如果找到了,说明我们的第一个Mutator成功了。
注意,如果你想要再编译一次的话,你要把MutHelloWorld.u这个文件删掉,ucc才会再次编译