UDK脚本中有关within的用法
发表于2015-08-20
最近开发的时候看到一个关键字within,虽然之前无数次看到过,文档里也看到过,但是用不到的时候强制自己去理解也没有必要。
今天用到了,再细读一下文档才明白,同时也理解了Outer的含义。
class UTPlayerInput extends UDKPlayerInput within UTPlayerController;
这里的within意思是 UTPlayerInput类实例的存在必须存在于UTPlayerController的实例之下。
这时候就可以在UTPlayerInput里面随意调用UTPlayerController类里的变量了。
所以在UTPlayerController类中创建UTPlayerinput类实例的时候必须这样写:
PlayerInput = new(Self) class'UTPlayerInput ';
把Self填入到Outer的位置,就相当于说,UTPlayerController类是你的外罩(Outer),你在外罩里面可以随意使用外罩UTPlayerController的东西。
以下为官方解释:
- Within ClassName
- Advanced. Indicates that objects of this class cannot exist without an instance of ClassName. In order to create an object of this class, you must specify an instance of ClassName as theOuter object. This keyword must be the first to follow the class declaration itself.