Bonjour à tous !
Débutant sur Unity je me pose une question :
Sur un univers, puis-je attribuer des tableau de caractéristique à certains élements ?
Exemple : Sur une maison je m'approche d'une poutre en bois, en m'approchant de cette poutre et en appuyant sur une touche, une sorte de tableau de caractéristiques apparaît concercant cette poutre ?
Merci à ceux qui prendront le temps de me répondre
Affichage de caractéristiques
- boubouk50
- ModoGenereux
- Messages : 6247
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Affichage de caractéristiques
bah oui, mais faut le programmer.
Chaque élément possédera un Component Caracteristique qui contiendra les infos voulues.
Ensuite si tu cliques/pointes/vises/regardes un objet caractérisé (via Raycast par exemple), tu ouvriras un élément d'UI qui ira chercher ce Component et affichera les données internes.
Chaque élément possédera un Component Caracteristique qui contiendra les infos voulues.
Ensuite si tu cliques/pointes/vises/regardes un objet caractérisé (via Raycast par exemple), tu ouvriras un élément d'UI qui ira chercher ce Component et affichera les données internes.
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
-
- Messages : 3
- Inscription : 21 Déc 2017 17:40
Re: Affichage de caractéristiques
Merci boubouk de ta réponse rapide !
Je comprend le principe, étant débutant j'essaie d'allé au plus simple.
Je comprend le Raycast mais je ne sais pas programmé, il y aurait il un autre moyen ? Comme les portes quand on rentre dans une zone la porte s'ouvre, la je voudrai faire apparait le texte quoi ^^
Je comprend le principe, étant débutant j'essaie d'allé au plus simple.
Je comprend le Raycast mais je ne sais pas programmé, il y aurait il un autre moyen ? Comme les portes quand on rentre dans une zone la porte s'ouvre, la je voudrai faire apparait le texte quoi ^^
- boubouk50
- ModoGenereux
- Messages : 6247
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Affichage de caractéristiques
Euh, oui... Apprendre les bases de la programmation? (lien dans ma signature).Archibald44 a écrit : ↑22 Déc 2017 11:30Je comprend le principe, étant débutant j'essaie d'allé au plus simple.
[...]
Je comprend le Raycast mais je ne sais pas programmé, il y aurait il un autre moyen ?
Clairement faire un jeu sans programmer est hyper limité. Tu peux surement trouver des codes sur le net mais ils ne seront jamais spécifiques à ton projet, aussi souvent il faut sortir le portefeuille...
Sans réellement devenir un pro, les bases de la programmation te permettront de scripter ce genre de petites fonctionnalités, ce qui déjà en soi t'aidera à avancer beaucoup plus vite et pousser plus loin ton jeu.
Sinon pour les réticents, il y a playmaker, un système de scripting nodal, où tu relies des actions. Mais c'est payant.
J'avoue que je ne sais pas faire ce genre de choses sans coder... et je ne vois pas comment faire sans.
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
-
- Messages : 3
- Inscription : 21 Déc 2017 17:40
Re: Affichage de caractéristiques
Bon j'ai réussi à me débrouiller !
Donc quand mon First personne point avec la réticule l'objet, mes caractéristiques apparaissent ! ( Youpii )
Donc je me suis dis tien je vais le faire pour d'autres objets de la même scènes et la paf ... ne fonctionne plus !
Ma méthode : Crée un UI texte avec un canevas que je renomme display, je l'associe a mon objet en question ou je souhaite que le texte apparaissent, à cet objet je lui attribut ce script :
Donc la tout fonctionne pour un objet, mais quand je l'applique à un autre objet de la scène avec la même méthode mon texte reste apprant dès le début, est ce que parce que le script gère qu'un seul canveva renommé display ? ....
Donc quand mon First personne point avec la réticule l'objet, mes caractéristiques apparaissent ! ( Youpii )
Donc je me suis dis tien je vais le faire pour d'autres objets de la même scènes et la paf ... ne fonctionne plus !
Ma méthode : Crée un UI texte avec un canevas que je renomme display, je l'associe a mon objet en question ou je souhaite que le texte apparaissent, à cet objet je lui attribut ce script :
Code : Tout sélectionner
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class displayUI : MonoBehaviour {
public string myString;
public Text myText;
public float fadeTime;
public bool displayInfo;
// Use this for initialization
void Start () {
myText = GameObject.Find ("Text").GetComponent<Text> ();
myText.color = Color.clear;
//Screen.showCursor = false;
//Screen.lockCursor = true;
}
// Update is called once per frame
void Update ()
{
FadeText ();
/*if (Input.GetKeyDown (KeyCode.Escape))
{
Screen.lockCursor = false;
}
*/
}
void OnMouseOver()
{
displayInfo = true;
}
void OnMouseExit()
{
displayInfo = false;
}
void FadeText ()
{
if(displayInfo)
{
myText.text = myString;
myText.color = Color.Lerp (myText.color, Color.white, fadeTime * Time.deltaTime);
}
else
{
myText.color = Color.Lerp (myText.color, Color.clear, fadeTime * Time.deltaTime);
}
}
}
- boubouk50
- ModoGenereux
- Messages : 6247
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Affichage de caractéristiques
Aie, c'est pas très très jouli comme code tout ça.
Déjà, il faut que tu ailles voir du côté des coroutines au lieu de passer par l'Update ().
Ensuite, éviter à tout prix le Find. Tu as une variable publique, renseigne le text la dedans depuis l'éditeur. Ici, si tu as plusieurs objets appelés Text, alors Unity va te renvoyer le premier qu'il trouve.
Aussi, un Component appelé CanvasGroup a une propriété d'alpha qui permet le fade.
Enfin, et c'est la le plus important: ce script sera interprété pour CHACUN des gameObjects qui le possèdent. Donc tout le monde va appeler le FadeIn et Out en même temps. Et c'est le joyeux bordel.
Il faut repenser l'architecture. Ce script ne doit apparaître qu'une seule fois pour n'être pas exécuté plusieurs fois en même temps. Tu dois avoir un manager qui détecte les objets visés (ou se fait appeler par ces objets) et lui va envoyer l'information de fadeIn ou fadeOut.
Déjà, il faut que tu ailles voir du côté des coroutines au lieu de passer par l'Update ().
Ensuite, éviter à tout prix le Find. Tu as une variable publique, renseigne le text la dedans depuis l'éditeur. Ici, si tu as plusieurs objets appelés Text, alors Unity va te renvoyer le premier qu'il trouve.
Aussi, un Component appelé CanvasGroup a une propriété d'alpha qui permet le fade.
Enfin, et c'est la le plus important: ce script sera interprété pour CHACUN des gameObjects qui le possèdent. Donc tout le monde va appeler le FadeIn et Out en même temps. Et c'est le joyeux bordel.
Il faut repenser l'architecture. Ce script ne doit apparaître qu'une seule fois pour n'être pas exécuté plusieurs fois en même temps. Tu dois avoir un manager qui détecte les objets visés (ou se fait appeler par ces objets) et lui va envoyer l'information de fadeIn ou fadeOut.
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation