Salut,
Je n'ai pas trop utilisé les vidéos mais je pense que c'est tout simplement qu'entre 2 vidéos et entre 2 appels de ta coroutine il y aucune vidéo de charger ou en attente du coup cela affiche de base l'arrière plan de ta scène ce qui cause ce bug.
Tu as parcourus la doc ? https://docs.unity3d.com/ScriptRefer...deoPlayer.html
Il y a des trucs du genre
1 2 3 4 5 6 7 8 9 10
| // VideoPlayer automatically targets the camera backplane when it is added
// to a camera object, no need to change videoPlayer.targetCamera.
var videoPlayer = camera.AddComponent<UnityEngine.Video.VideoPlayer>();
// By default, VideoPlayers added to a camera will use the far plane.
// Let's target the near plane instead.
videoPlayer.renderMode = UnityEngine.Video.VideoRenderMode.CameraNearPlane;
// This will cause our scene to be visible through the video being played.
videoPlayer.targetCameraAlpha = 0.5F; |
Il doit y avoir moyen de dire quelque part ou par code "quand tu n'as pas de vidéo en cours tu m'affiches cette image ou un écran noir"
Par exemple en rajoutant un autre script pour ton player avec les Events du type
loopPointReached Invoked when the VideoPlayer reaches the end of the content to play.
Soit quand tu as ça tu lui indique de cacher ton player, de lui changer son randermode ou autre vu au dessus pour qu'entre deux vidéo tu affiches ce que tu veux ou pourquoi pas carrément tester un script qui remplace ton yield return du genre
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
(je fais en grande ligne, pas du tout écrit comme il faut)
public COMPTEUR_VIDEO integer = 1;
Void start {
LIRE_VIDEO( COMPTEUR)
}
On events loopPointReached {
COMPTEUR_VIDEO += 1;
Si COMPTEUR_VIDEO < 3
{
LIRE_VIDEO( COMPTEUR);
}
sinon
{
Detruire/cacher le lecteur;
}
} |
Reste à voir si cela évite la saccade entre deux vidéos d'utiliser les Events ou si cela revient exactement au même que ta coroutine, je ne sais pas du tout ^^
TontonNico
Partager