[Resolu][MY-AL]Changer la vue de la SceneView par script

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
EmileF
Messages : 673
Inscription : 18 Mars 2017 19:39

[Resolu][MY-AL]Changer la vue de la SceneView par script

Message par EmileF » 18 Jan 2019 10:25

Bonjour,

Je suis en train de me créer une WindowEditeur pour me faciliter l'édition d'une partie de mon jeu.
Dans le script de mon WindowEditeur je voudrais pouvoir changer de point de vue dans la sceneView comme si on cliquait sur le Gismo pour avoir la vue de face ou de dessus.

Je n'arrive pas à trouver les commandes qui me permettraient de faire ça.

Est-ce que quelqu'un pourrait me mettre sur la piste?

merci d'avance
Dernière édition par EmileF le 18 Jan 2019 20:53, édité 1 fois.
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

Avatar de l’utilisateur
Sebela
Messages : 141
Inscription : 25 Juin 2014 21:39

Re: [MY-AL]Commander Gismo par script

Message par Sebela » 18 Jan 2019 16:57

Hello,

moi je te dirais de partir sur une rotation d'un pivot (gameobject vide) dont le child serait ta caméra.
Tu places ton pivot à (0, 0, 0) et ta caméra à (0, 0, -5), et tu fais quelque chose du style :

Code : Tout sélectionner

public class CameraHandler{

	[SerializedField]
	private GameObject _pivot;
	
	private void Update(){
		if (Input.GetKeyDown(KeyCode.up){
			_pivot.transform.Rotate(0, 0, 90);
		}
		if (Input.GetKeyDown(KeyCode.down){
			...
		}
		...
	}
	
}
ps : j'ai écris le code en direct sans tester, à adapter à ton besoin ;-)
Et si tu veux un effet de transition comme quand tu cliques sur le gizmo, tu peux utiliser une Coroutine :

Code : Tout sélectionner

private IEnumerator Rotate(float rotationAmount, int direction){
	var rotationSpeed = time.deltaTime * Mathf.Sign(rotationAmount);
	while (rotationAmount > 0){
		switch (direction){
			case 0:
				_pivot.transform.Rotate(rotationSpeed, 0, 0);
				break;
			case 1:
				_pivot.transform.Rotate(0, 0, rotationSpeed);
				break;
		}
		rotationAmount -= rotationSpeed;
		yield return null;
	}
}
Encore une fois, pas testé :)

EmileF
Messages : 673
Inscription : 18 Mars 2017 19:39

Re: [MY-AL]Changer la vue de la SceneView par script

Message par EmileF » 18 Jan 2019 17:38

Sebala, merci pour ta réponse.

Je ne pense pas que ta solution soit adaptée à ce que je souhaite. Je suis dans l'éditeur et pas dans le jeu.
C'est l'orientation de la sceneView que je souhaite modifier par script et non la camera dans le game.

Mais je te remercie quand même d'avir bien voulu répondre.

J'ai trouvé une solution à mettre dans le OnGUI du script EditorView

Code : Tout sélectionner

        if (GUILayout.Button("Vue de dessus"))
        {
            SceneView.lastActiveSceneView.rotation = Quaternion.Euler(new Vector3(90, 0, 0)); //up
            SceneView.lastActiveSceneView.Repaint();
        }
        if (GUILayout.Button("Vue de gauche"))
        {
            SceneView.lastActiveSceneView.rotation = Quaternion.Euler(new Vector3(0, 180, 0)); //left
            SceneView.lastActiveSceneView.Repaint();
        }

Il faudra peut-être ajuster la position de la scène avec SceneView.lastActiveSceneView.pivot, qui si j'ai bien compris modifie la position de la sceneView.

Merci pour votre aide.

Petit message pour les animateurs du forum.
Il serait peut-être souhaitable d'ajouter une rubrique Editor, pour savoir où poster ce genre de question qui concerne UnityEditor et pas UnityEngine.
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

Avatar de l’utilisateur
Sebela
Messages : 141
Inscription : 25 Juin 2014 21:39

Re: [MY-AL]Changer la vue de la SceneView par script

Message par Sebela » 18 Jan 2019 18:06

Re,

Excuse-moi, j'avais zappé qu'il était question de l'éditor.
Je ne pourrai pas t'aider sur ce sujet-là malheureusement...

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

Re: [MY-AL]Changer la vue de la SceneView par script

Message par Max » 18 Jan 2019 18:46

Bonsoir,
emile121153 a écrit :
18 Jan 2019 17:38
Petit message pour les animateurs du forum.
Il serait peut-être souhaitable d'ajouter une rubrique Editor, pour savoir où poster ce genre de question qui concerne UnityEditor et pas UnityEngine.
On reste dans le giron du code. Après c'est à voir.
Personnellement, je pense qu'il est difficile de créer une section pour chaque spécificité lié au code. Surtout pour des thèmes où les sujets ne sont pas légion.
Par contre, ce qui pourrait éventuellement être fait, ce sont des "étiquettes" lors de la création d'un nouveau sujet, genre "Editor", "Algo", "Reseau", etc... genre:

Image

Image
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

EmileF
Messages : 673
Inscription : 18 Mars 2017 19:39

Re: [MY-AL]Changer la vue de la SceneView par script

Message par EmileF » 18 Jan 2019 20:49

J'avais remarqué lors de mes recherche que ce genre de sujet ne fait pas légion.
Et je me doutais que mon idée était difficilement réalisable,sinon je pense que ça aurait été déjà fait.
Par contre, l'histoire des étiquettes supplémentaires me parait bien pour mieux renseigner les lecteurs sur le sujet du post.

au plaisir.
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

Répondre

Revenir vers « (C#) CSharp »