(Feat) Add Main Menu + Music Manger
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "GameFramework/Info.h"
|
||||
#include "MusicSubsystem.h"
|
||||
#include "MusicDirector.generated.h"
|
||||
|
||||
class UMusicPlaylistDataAsset;
|
||||
|
||||
/**
|
||||
* Declare la musique du jeu. UN SEUL exemplaire suffit, dans la premiere map
|
||||
* chargee -- typiquement la scene de menu.
|
||||
*
|
||||
* Il ne joue rien lui-meme et ne survit pas a sa map : il transmet sa consigne a
|
||||
* UMusicSubsystem, qui, lui, vit sur le GameInstance et traverse tous les
|
||||
* changements de niveau. C'est pour ca que les maps suivantes n'ont besoin de
|
||||
* rien : la musique continue toute seule, et la regle de transition a deja ete
|
||||
* posee ici.
|
||||
*
|
||||
* En poser un second dans une autre map reste possible : il change alors de
|
||||
* playlist a l'arrivee sur celle-la.
|
||||
*
|
||||
* Derive d'AInfo : aucun visuel, aucun tick, et AInfo se declare non
|
||||
* spatialement charge, donc il est present des le demarrage meme en World
|
||||
* Partition -- un acteur ordinaire hors de la zone de streaming ne ferait jamais
|
||||
* son BeginPlay.
|
||||
*/
|
||||
UCLASS(ClassGroup = "Audio", meta = (DisplayName = "Music Director"))
|
||||
class SURVIVAL_PROJET_API AMusicDirector : public AInfo
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
AMusicDirector();
|
||||
|
||||
protected:
|
||||
virtual void BeginPlay() override;
|
||||
|
||||
/**
|
||||
* La playlist a lancer en arrivant sur cette map.
|
||||
*
|
||||
* Si c'est deja elle qui tourne, elle n'est pas relancee. La laisser vide veut
|
||||
* dire "je ne change pas la musique en cours", et n'a d'interet que sur un
|
||||
* second Director pose uniquement pour changer la regle de transition.
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Musique")
|
||||
TObjectPtr<UMusicPlaylistDataAsset> Playlist;
|
||||
|
||||
/**
|
||||
* Ce que devient le morceau en cours a CHAQUE changement de scene suivant.
|
||||
*
|
||||
* Continue : il poursuit sa route par-dessus le chargement.
|
||||
* New : il s'eteint et le lecteur en demarre un autre -- tirage aleatoire
|
||||
* ou morceau suivant, selon le mode de la playlist.
|
||||
*
|
||||
* La consigne est envoyee au lecteur, qui la garde : les autres maps n'ont
|
||||
* rien a declarer.
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Musique")
|
||||
EMusicLevelChangeMode LevelChangeMode = EMusicLevelChangeMode::Continue;
|
||||
};
|
||||
Reference in New Issue
Block a user