【问题标题】:In Unrealscript how do I have a config value for a resource in a class set a property of a component?在 Unrealscript 中,如何在类中设置资源的配置值来设置组件的属性?
【发布时间】:2011-06-21 03:58:24
【问题描述】:

我想在玩家执行特定操作时播放一个声音提示。我玩得很好,一切都很好,但我想让使用的资源来自配置文件,而不是硬编码。

所以我在我的类中添加了一个名为 MonsterNoiseSoundCue 的属性,如下所示:

var config SoundCue MonsterNoiseSoundCue;

然后在 DefaultProperties 部分中,我将以下内容添加到我创建的对象中,然后将其添加到我的 pawn 的组件集合中。

Begin Object Class=AudioComponent Name=MonsterActivatedSound1
         bAutoPlay=false
         SoundCue=MonsterNoiseSoundCue// This variable is a configured value.   SoundCue'CastleAudio.UI.UI_StopTouchToMove_Cue'
    End Object
    Components.Add(MonsterActivatedSound1);
    MonsterActivatedSound = MonsterActivatedSound1;

由于某种原因,它不会说“不允许将'config'与对象变量一起使用。”有谁知道解决这个问题的另一种方法?

【问题讨论】:

标签: unreal-development-kit unrealscript


【解决方案1】:

“不允许将'config'与对象变量一起使用。”消息是虚幻引擎 3 中的更改。

我现在无法测试,我是一名 UT2004 脚本编写者,但我会试试这个:

var SoundCue MonsterNoiseSoundCue;
var config string MonsterNoiseSoundCueName;

在您的 PreBeginPlay 函数(或类似函数)中,使用它来获取提示:

MonsterNoiseSoundCue = SoundCue(DynamicLoadObject(MonsterNoiseSoundCueName, class'SoundCue'));

如果声音提示不存在,您应该在日志中收到警告。

【讨论】:

  • 我刚刚注意到提示在音频组件中获取引用,因此可能必须使用类似的东西:MonsterActivatedSound1.SoundCue=SoundCue(DynamicLoadObject(/* ... */));
【解决方案2】:

你用什么函数来播放声音?

PlaySound 将动态创建一个 AudioComponent,因此您不需要在 defaultproperties 部分中有一个组件。

var config SoundCue MonsterNoiseSoundCue;

那么当你的动作发生时:

function OnMonsterAction()
{
    PlaySound(MonsterNoiseSoundCue);
}

【讨论】:

    【解决方案3】:

    潜在的选项是动态组件 '动态创建的组件

    要动态创建组件的实例,请使用 UnrealScript new 运算符并调用 actor 的 AttachComponent 方法将新组件附加到 actor。'

    simulated event PostBeginPlay()
    {
        local AudioComponent AudioComponent;
        Super.PostBeginPlay();
    
        AudioComponent = new(self) class'AudioComponent';
        AudioComponent.SoundCue = Cue;//var(audio) SoundCue Cue
        AudioComponent.bAutoPlay=true; // !!!
        AttachComponent(AudioComponent); // Attach copm. to actor's copm. array 
        // .....
    }
    

    要分离和释放您之前附加的组件,请使用 actor 的 DetachComponent 方法。

    http://wiki.beyondunreal.com/UE3:AudioComponent_(UDK)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-15
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      相关资源
      最近更新 更多