2011-02-04 3 views
1

私は、プレイヤーが特定の操作を行うたびに再生したいと思う健全な合図を持っています。私はそれをうまくやっているすべてを持っているが、私は使用されるリソースがハードコードされているのではなく、構成ファイルから来るようにしたい。UnrealScriptでクラス内のリソースのコンフィグレーション値を持つコンポーネントのプロパティを設定するにはどうすればよいですか?

次のようにだから私はMonsterNoiseSoundCueと呼ばれる私のクラスにプロパティを追加しました:

var config SoundCue MonsterNoiseSoundCue; 

そして、デフォルトプロパティ]セクションで、私はその後、その後、私の質屋のコンポーネントコレクションに追加された作成したオブジェクトに次を追加しました。

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'を使用できません」という記述はありません。誰かがこれにアプローチする別の方法を知っていますか?

+0

おそらくhttp://gamedev.stackexchange.comに属し? – tenpn

答えて

2

これは、 "オブジェクト変数で 'config'を使用することはできません。あなたのPreBeginPlay機能(または類似)で

var SoundCue MonsterNoiseSoundCue; 
var config string MonsterNoiseSoundCueName; 

、これを使用します。メッセージは、私は今テストすることはできませんし、私はUT2004のスクリプターだけど、私はこれをしようとUnrealEngine 3の変化

ましたキューを取得:

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

サウンドキューが存在しない場合は、ログに警告を取得する必要があります。

+0

私はちょうどキューがオーディオコンポーネント内で参照を取得していることに気づいたので、代わりにこのようなものを使用する必要があります: 'MonsterActivatedSound1.SoundCue = SoundCue(DynamicLoadObject(/ * ... * /));' – pdinklag

0

どのような機能を使用してサウンドを再生していますか?

PlaySoundは、その場でAudioComponentを作成するので、defaultpropertiesセクションにコンポーネントを持つ必要はありません。

その後
var config SoundCue MonsterNoiseSoundCue; 

あなたのアクションが起こる:

function OnMonsterAction() 
{ 
    PlaySound(MonsterNoiseSoundCue); 
} 
0

潜在的なオプションは、動的コンポーネントのインスタンスを作成するには、動的コンポーネント 「動的に作成されたコンポーネント

あり、UnrealScriptの新しい演算子とコールを使用アクタの新しいコンポーネントをアタッチするAttachComponentメソッド。

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 
    // ..... 
} 

以前に添付したコンポーネントをデタッチして解放するには、アクタのDetachComponentメソッドを使用します。

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

関連する問題