Page 1 sur 2

Script retour Main (menu) ?

Publié : 18 Mars 2019 10:36
par Alkyss
Bonjour j'ai besoin de votre aide car j'ai créé un projet dans lequel j'utilise le player vidéo de Unity mais j'utilisais avant un plug In (easy movie texture), j'avais donc créé avec un ami un script pour revenir au menu général (main) et cela fonctionnait bien.

Mais là utilisant le player vidéo de Unity, mon script marche plus quand je l'ajoute dans l'inspector.

Voici le script que h'ai et qui marchait :

Code : Tout sélectionner

using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;

public class VideoControl : MonoBehaviour {

	public MediaPlayerCtrl m_srcVideo;
	public GameObject m_Canvas;

	public float Compteur = 0f;


	// Use this for initialization
	void Start () {
	}
	
	// Update is called once per frame
	void Update () {
//		if (!ApplicationModel.AffichageVR) {
//			Compteur += Time.deltaTime;
//
//			if (Compteur > 3f) {
//				if (ApplicationModel.AffichageCanevas == true) {
//					m_Canvas.SetActive (false);
//					ApplicationModel.AffichageCanevas = false;
//				}
//				Compteur = 0f;
//			} else {
//				if (Input.GetMouseButtonDown (0)) {
//					if (ApplicationModel.AffichageCanevas == false) {
//						if (m_Canvas != null) {
//							m_Canvas.SetActive (true);
//							ApplicationModel.AffichageCanevas = true;
//						}
//					} else {
//						Compteur = 0f;
//					}
//				}
//			}
//		}


	}

	public void Play()
	{
		if (m_srcVideo != null) {
			m_srcVideo.Play ();
		}
	}

	public void Pause()
	{
		if (m_srcVideo != null) {
			m_srcVideo.Pause ();
		}
	}
	public void Back()
	{
		SceneManager.LoadScene ("Main");
	}


}
Comment faire pour créer un retour au menu "Main" lorsque la vidéo est terminée en l'ajoutant a l'inspector svp ?

Car si je créé un script juste avec la fin du retour au menu, évidemment j'ai une erreur.

Je débute dans le code :-/ :]

Voici la partie (photo ci jointe) où j'aimerais intégrer ce code pour qu'il revienne a la scène du menu "main"

Image

Re: Script retour Main (menu) ?

Publié : 18 Mars 2019 10:50
par boubouk50
As-tu regardé la documentation du VideoPlayer?
Tu as tout ce qu'il te faut pour répondre à ton problème. Exactement comme avec ton plugin.
Il y a même des événements tout faits pour déterminer le moment où la vidéo s'arrête:
https://docs.unity3d.com/ScriptReferenc ... ached.html

Re: Script retour Main (menu) ?

Publié : 18 Mars 2019 10:52
par Alkyss
Pour présenter le contexte :

J'ai deux scène, une du menu et une de lecture du film VR.

j'utilise donc le "video player" Unity sur une sphère Octaedron. Mais une fois la vidéo terminée, il y a aucun retour à la scène "Main".

J'utilisais donc avant un scrpti "video manager" qui intégrait le retour au menu :

Code : Tout sélectionner

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;

public class ManagerVideo : MonoBehaviour {

	public MediaPlayerCtrl scrMedia;

	// Use this for initialization
	void Start () {
		scrMedia.OnEnd += OnEnd;
	}

	void OnEnd()
	{
		SceneManager.LoadScene ("Main");
	}

}
 ! Message de : boubouk50
Les balises code stp
Mais si je l'adjoint à l'inspector ça ne fonctionne pas. :triste1:

Re: Script retour Main (menu) ?

Publié : 18 Mars 2019 11:07
par boubouk50
Dans ce cas, je vais t'expliquer, puisque je t'ai déjà donné la réponse.

Ton script ManagerVideo n'a qu'une seule utilité: associer une fonction à un événement; l'événement OnEnd, c'est à dire, un événement activé lors de la fin de la vidéo.
Donc, une fois la vidéo terminée, un événement OnEnd est appelé qui lui appelle la fonction OnEnd ()de ton script qui elle, charge la scène appelée Main.
Il te faut donc faire exactement la même chose avec l'événement associé à la fin de lecture d'une vidéo de la classe VideoPlayer. Je te l'ai donné, il s'agit de VideoPlayer.loopPointReached.

Re: Script retour Main (menu) ?

Publié : 07 Avr 2019 13:56
par Alkyss
Bonjour ^^

Merci pour vos réponses :) Et merci Boucbouk50.

J'ai essayé de créer une boucle je n'y suis pas arrivé.

J'ai donc demandé à un ami, il m'a fait un script pour recharger la première scene "Film1". ce script fonctionne très bien.

Je donc dupliqué le script que j'ai nommé pareil avec le chiffre 2, j'ai changé le nom de la scène par "Film2" maislà il ne fonctionne pas.

:(

le script qui marche pas :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.Video;



public class VideoPlayerUnityCtrl2 : MonoBehaviour {

	public VideoPlayer vid;

	// Use this for initialization
	void Start () {
		// on fait en sorte que lorsqu'on arrive à la fin de la vidéo, point de départ d'une éventuelle boucle, on execute la procédure CheckOver.
		vid.loopPointReached+=CheckOver;

	}
	
	void CheckOver(UnityEngine.Video.VideoPlayer vp)
	{
		SceneManager.LoadScene ("Film2");	
	}

}


Le script qui marche :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.Video;



public class VideoPlayerUnityCtrl : MonoBehaviour {

	public VideoPlayer vid;

	// Use this for initialization
	void Start () {
		// on fait en sorte que lorsqu'on arrive à la fin de la vidéo, point de départ d'une éventuelle boucle, on execute la procédure CheckOver.
		vid.loopPointReached+=CheckOver;

	}
	
	void CheckOver(UnityEngine.Video.VideoPlayer vp)
	{
		SceneManager.LoadScene ("Film1");	
	}

}
.
 ! Message de : Max
Utilisez les balises code SVP, deuxième rappel.
Merci de lire la Charte et sa FAQ, en particulier Comment insérer un script dans un messages ?.

Re: Script retour Main (menu) ?

Publié : 07 Avr 2019 14:35
par Max
Bonjour,

Cela veut dire quoi "qui ne marche pas " ? Essais d'être plus précis.
Le nom du fichier du second script ("VideoPlayerUnityCtrl2") est-il identique au nom de la classe définie ?
Une scène "Film2" existe-t-elle ? et est-elle intégré au buildsetting ?

Re: Script retour Main (menu) ?

Publié : 07 Avr 2019 18:31
par Alkyss
Bonsoir Max,

Alors je commence à me former mais je ne saurais te dire si le nom est identique avec la Classe.
Il faut regarder ça où ?

je te met un screen.

Sinon > Une scène "Film2" existe-t-elle ? et est-elle intégré au buildsetting ?

Oui, je te mets aussi un autre screen.

merci à toi pour ton aide. :) ;-)

Re: Script retour Main (menu) ?

Publié : 07 Avr 2019 18:40
par Max
Tu ne sembles pas avoir de scène nommé "Film1" à priori (mais "Film" et "Film2"). Ce qui est bizarre, vu que c'est lié au second script que tu dit fonctionnel.
Alkyss a écrit :
07 Avr 2019 18:31
Alors je commence à me former mais je ne saurais te dire si le nom est identique avec la Classe.
Il faut regarder ça où ?
Le nom du fichier contenant le script doit être identique à celui de la classe qu'il contient (sinon, tu ne pourras pas l'employer comme Component). D'après le screen ,cela semble être ok.

Re: Script retour Main (menu) ?

Publié : 07 Avr 2019 19:09
par Alkyss
J'ai bien mis Film là... :)

Et ça marche mais étrange que le deuxième script ne marche pas alors qu'il a les mêmes instructions :snif: :pleur4:

Re: Script retour Main (menu) ?

Publié : 08 Avr 2019 08:37
par Moi 1971
Bonjour, comme te l'a dit Max "...le deuxième script ne marche pas..." ça ne veut rien dire.
Il faut que tu nous décrives précisément ce qui se passe.
Peux-tu nous faire un copier/coller du texte qui s'affiche dans la console débogue? Les messages d'erreurs sont très importants pour comprendre ce qui bogue.
De plus, je remarque que dans ta première capture d'écran, en haut à droite, "Vid" est renseigné à "None (Video Player). Est-ce normal ?