Charger une Objet 3D dans un GUI
Charger une Objet 3D dans un GUI
Bonjour,
J'aimerai donner la possibilité d'afficher un objet 3D dans un GUI et ainsi pouvoir manipuler (regarder l'objet sous tous les angles) le tout dans une scène 3D.
Si quelqu'un a des idées ... je suis preneur.
Merci.
J'aimerai donner la possibilité d'afficher un objet 3D dans un GUI et ainsi pouvoir manipuler (regarder l'objet sous tous les angles) le tout dans une scène 3D.
Si quelqu'un a des idées ... je suis preneur.
Merci.
kealkeal
Re: Charger une Objet 3D dans un GUI
30sec de recherche, pour trouver un script qui fait de la rotation d'objet avec la souris, avec un effet de décélération au lâché de souris:
http://answers.unity3d.com/questions/34 ... wn-on.html
Je vois pas le rapport avec le GUI
http://answers.unity3d.com/questions/34 ... wn-on.html
Je vois pas le rapport avec le GUI
Re: Charger une Objet 3D dans un GUI
Merci pour le script de la camera, ça j'avais déjà !
Pour le GUI, imaginons que je sois dans un musée avec des statues, lorsque je clique sur un bouton , un GUI s'affiche avec mon objet 3D, ici ma statue, et je peux tourner autour de ma statue, afficher des infos ...
Espérant que ma demande soit plus précise.
Pour le GUI, imaginons que je sois dans un musée avec des statues, lorsque je clique sur un bouton , un GUI s'affiche avec mon objet 3D, ici ma statue, et je peux tourner autour de ma statue, afficher des infos ...
Espérant que ma demande soit plus précise.
kealkeal
Re: Charger une Objet 3D dans un GUI
Bha pour le GUI tu fais comme d'hab.
Imaginons que ton script GUI est sur ta caméra, et que ton objet sera "enfant" de cette caméra, tu peux le placer en utilisant les coordonnées "écran" via ce code là:
A noter que l'objet sera placer au centre de l'écran, et que Y = 0 est le bas de l'écran.
Le nombre 22 est une distance depuis la caméra, ça détermine le Z normalement.
Ensuite tu n'a plus qu'à positionner ton objet 3d (qui est enfant de la caméra, avec parent = maCamera...) avec :
Il est important de faire la transition des coordonnées monde vers locales étant donné que ton objet suivra la caméra, même si cette dernière bouge, comme un "vrai" GUI.
Imaginons que ton script GUI est sur ta caméra, et que ton objet sera "enfant" de cette caméra, tu peux le placer en utilisant les coordonnées "écran" via ce code là:
Code : Tout sélectionner
Ray ray = Camera.main.ScreenPointToRay (new Vector3(Screen.width/2,(Screen.height/2,0));
Vector3 pos = Camera.main.transform.InverseTransformPoint(ray.origin +( ray.direction*22f));
Le nombre 22 est une distance depuis la caméra, ça détermine le Z normalement.
Ensuite tu n'a plus qu'à positionner ton objet 3d (qui est enfant de la caméra, avec parent = maCamera...) avec :
Code : Tout sélectionner
transform.localPosition = pos;
- artemisart
- Messages : 1893
- Inscription : 21 Juin 2011 19:51
- Localisation : Centre
- Contact :
Re: Charger une Objet 3D dans un GUI
Mon idée : tu crée une 2ème caméra (qui s'affiche au-dessus de la première et qui ne prend pas tout l'écran) et tu instancie un objet devant cette caméra (avec un layer différent si besoin).
Et quand tu n'as plus besoin de cette caméra tu la désactive(par un clic sur un GUI.Button par exemple).
Parce que de la 3D en GUI, c'est techniquement impossible (ou alors de la 3D précalculée, mais c'est pas super ).
Et quand tu n'as plus besoin de cette caméra tu la désactive(par un clic sur un GUI.Button par exemple).
Parce que de la 3D en GUI, c'est techniquement impossible (ou alors de la 3D précalculée, mais c'est pas super ).
Re: Charger une Objet 3D dans un GUI
Clair.
La méthode de Cayou consiste à faire croire que l'objet 3D fait partie intégrante du GUI en le plaçant au bon endroit (x et y) .Par exemple dans un fenêtre crée par le GUI. Seul souci, trouver la bonne profondeur (z).
JP
La méthode de Cayou consiste à faire croire que l'objet 3D fait partie intégrante du GUI en le plaçant au bon endroit (x et y) .Par exemple dans un fenêtre crée par le GUI. Seul souci, trouver la bonne profondeur (z).
JP
Re: Charger une Objet 3D dans un GUI
Tout à fait, je me sers de cette méthode afin de faire des systèmes "GUI" via des 3DText ou Plane. On s'en sert avec les coordonnées écran, il suffit de penser à faire tous les objets du "GUI" enfant de la caméra.ZJP a écrit :Clair.
La méthode de Cayou consiste à faire croire que l'objet 3D fait partie intégrante du GUI en le plaçant au bon endroit (x et y) .Par exemple dans un fenêtre crée par le GUI. Seul souci, trouver la bonne profondeur (z).
JP
Et comme tu dis, il faut y aller à tâtons avec le z, qui dépend de la longueur du Raycast.
Re: Charger une Objet 3D dans un GUI
Si t'es sous Unity pro utilise simplement un Render Texture dans un Gui
Code : Tout sélectionner
var renderTexture : Texture;
function OnGUI() {
if (GUI.Button(Rect(10,70,64,64),renderTexture)) {
// code...
}
}
Re: Charger une Objet 3D dans un GUI
"RendreTexture" va permettre d'afficher un Objet 3D dans le GUI ... ?
De ce que j'ai vu cela ne permet que d'afficher un Texture 2D, non ?
De ce que j'ai vu cela ne permet que d'afficher un Texture 2D, non ?
kealkeal
Re: Charger une Objet 3D dans un GUI
ca va te permettre d'afficher une vue de caméra dans un élément GUI (label, button etc)kealkeal a écrit :"RendreTexture" va permettre d'afficher un Objet 3D dans le GUI ... ? ?
http://unity3d.com/support/documentatio ... xture.html