I. Introduction▲
Cette série explique comment jouer une vidéo dans une scène Unity.
Vous pouvez retrouver les autres épisodes de cette série dans le sommaire dédié.
II. Vidéo▲
Unity - Jouer une vidéo
III. Résumé▲
Nous souhaitons maintenant afficher le temps de la vidéo dans notre interface. Pour cela, vous devez améliorer le script de contrôle de la vidéo :
using
System.
Collections;
using
System.
Collections.
Generic;
using
UnityEngine;
using
UnityEngine.
Video;
using
UnityEngine.
UI;
public
class
WorldSpaceVideo :
MonoBehaviour {
public
Material playButtonMaterial;
public
Material pauseButtonMaterial;
public
Renderer playButtonRenderer;
public
VideoClip[]
videoClips;
public
Text currentMinutes;
public
Text currentSeconds;
public
Text totalMinutes;
public
Text totalSeconds;
private
VideoPlayer videoPlayer;
private
int
videoClipIndex;
void
Awake
(
)
{
videoPlayer =
GetComponent<
VideoPlayer>
(
);
}
// Use this for initialization
void
Start (
)
{
videoPlayer.
clip =
videoClips [
0
];
}
// Update is called once per frame
void
Update (
)
{
if
(
videoPlayer.
isPlaying)
{
SetCurrentTimeUI (
);
}
}
public
void
SetNextClip
(
)
{
videoClipIndex++;
if
(
videoClipIndex >=
videoClips.
Length)
{
videoClipIndex =
videoClipIndex %
videoClips.
Length;
}
videoPlayer.
clip =
videoClips [
videoClipIndex];
SetTotalTimeUI (
);
videoPlayer.
Play (
);
}
public
void
PlayPause
(
)
{
if
(
videoPlayer.
isPlaying)
{
videoPlayer.
Pause (
);
playButtonRenderer.
material =
playButtonMaterial;
}
else
{
videoPlayer.
Play (
);
SetTotalTimeUI (
);
playButtonRenderer.
material =
pauseButtonMaterial;
}
}
void
SetCurrentTimeUI
(
)
{
string
minutes =
Mathf.
Floor ((
int
)videoPlayer.
time /
60
).
ToString (
"00"
);
string
seconds =
((
int
)videoPlayer.
time %
60
).
ToString (
"00"
);
currentMinutes.
text =
minutes;
currentSeconds.
text =
seconds;
}
void
SetTotalTimeUI
(
)
{
string
minutes =
Mathf.
Floor ((
int
)videoPlayer.
clip.
length /
60
).
ToString (
"00"
);
string
seconds =
((
int
)videoPlayer.
clip.
length %
60
).
ToString (
"00"
);
totalMinutes.
text =
minutes;
totalSeconds.
text =
seconds;
}
double
CalculatePlayedFraction
(
)
{
double
fraction =
(
double
)videoPlayer.
frame /
(
double
)videoPlayer.
clip.
frameCount;
return
fraction;
}
}
L'interface est définie dans l'espace monde. De plus, le texte des minutes et celui des secondes sont séparés afin de diminuer le nombre d'opérations sur les chaînes de caractères.
IV. Ressources▲
Vous pouvez télécharger les ressources pour ce projet ici.
V. Commenter▲
Vous pouvez commenter et donner vos avis dans la discussion associée sur le forum.