Script retour Main (menu) ?

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Alkyss
Messages : 28
Inscription : 29 Mai 2015 13:38

Script retour Main (menu) ?

Message par Alkyss » 18 Mars 2019 10:36

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

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6185
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Script retour Main (menu) ?

Message par boubouk50 » 18 Mars 2019 10:50

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
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Alkyss
Messages : 28
Inscription : 29 Mai 2015 13:38

Re: Script retour Main (menu) ?

Message par Alkyss » 18 Mars 2019 10:52

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:

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6185
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Script retour Main (menu) ?

Message par boubouk50 » 18 Mars 2019 11:07

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.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Alkyss
Messages : 28
Inscription : 29 Mai 2015 13:38

Re: Script retour Main (menu) ?

Message par Alkyss » 07 Avr 2019 13:56

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 ?.

Avatar de l’utilisateur
Max
Messages : 8763
Inscription : 30 Juil 2011 13:57
Contact :

Re: Script retour Main (menu) ?

Message par Max » 07 Avr 2019 14:35

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 ?
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Alkyss
Messages : 28
Inscription : 29 Mai 2015 13:38

Re: Script retour Main (menu) ?

Message par Alkyss » 07 Avr 2019 18:31

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. :) ;-)
Pièces jointes
Capture2.JPG
Capture2.JPG (222.95 Kio) Consulté 4473 fois
Capture.JPG
Capture.JPG (170.64 Kio) Consulté 4473 fois

Avatar de l’utilisateur
Max
Messages : 8763
Inscription : 30 Juil 2011 13:57
Contact :

Re: Script retour Main (menu) ?

Message par Max » 07 Avr 2019 18:40

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.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Alkyss
Messages : 28
Inscription : 29 Mai 2015 13:38

Re: Script retour Main (menu) ?

Message par Alkyss » 07 Avr 2019 19:09

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:

Moi 1971
Messages : 727
Inscription : 29 Sep 2015 13:38

Re: Script retour Main (menu) ?

Message par Moi 1971 » 08 Avr 2019 08:37

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 ?

Répondre

Revenir vers « Scripting »