DrawTexture Position au dessus d'un objet

Questions à propos du GUI, y compris la partie script.
Idolo
Messages : 89
Inscription : 11 Mars 2015 10:16

DrawTexture Position au dessus d'un objet

Message par Idolo » 17 Avr 2015 19:29

Bonjour désolé c'est encore moi... j'ai vue des posts parlant de:

Code : Tout sélectionner

			Vector3 objPos = (Camera.)WorldToScreenPoint(this.transform.position);
			GUI.DrawTexture(new Rect(objPos.x, objPos.y, hpBarLength, 10), HpBarTexture);
mais ça ne fonctionne pas...

Je voudrais "simplement" mettre ma Barre de HP au dessus d'un objet dans ma scéne seulement elle est en GUI.DrawTexture et je ne sais pas si c'est possible.
Voila le code en question (que j'ai trouvé et très peu modifié (pour qu'il marche)sur internet)

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class HpBar : MonoBehaviour {
	public float curHp = 300f;
	public float maxHp = 300f;
	public Texture HpBarTexture;
	private float hpBarLength;
	private float percentOfHp;	
	
	void OnGUI () {
		
		if (curHp > 0) {
			GUI.DrawTexture(new Rect(10, 10, hpBarLength, 10), HpBarTexture);
		}
	}
	
	void Update () {

		percentOfHp = curHp/maxHp;
		hpBarLength = percentOfHp*100;
		
		if(Input.GetKeyDown("h")) {
		curHp -= 10f;
		}
	}
}
Comment changé la position de GUI.DrawTexture pour qu'elle soit au dessus de l'objet sur lequel elle se trouve ?
Merci ^^' .

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: DrawTexture Position au dessus d'un objet

Message par giyomuSan » 18 Avr 2015 01:51

ca repond pas a ta question mais pourquoi s'emmerder avec GUI.DrawTexture, alors que ca serait tellement plus simple avec le nouveau system de GUI (uGUI ) d unity.

http://docs.unity3d.com/Manual/UICanvas.html

Idolo
Messages : 89
Inscription : 11 Mars 2015 10:16

Re: DrawTexture Position au dessus d'un objet

Message par Idolo » 18 Avr 2015 10:52

Alors déjà merci pour ta réponse ^^ ça semble être plutôt bien pour l'afficher.
Quelqu'un saurait comment faire pour que la taille se change de droite à gauche et non pas depuis les deux côtés ?
J'ai essayé de mettre l'image (script) en type: Filled,Fill method: Horizontal et Fill origin: left. Bizarrement ça ne marche pas.
Merci.

Idolo
Messages : 89
Inscription : 11 Mars 2015 10:16

Re: DrawTexture Position au dessus d'un objet

Message par Idolo » 19 Avr 2015 20:53

Je viens de voir que j'ai cette petite marque d'attention qui apparaît pour me prévenir que ??..L'échelle sera celle de l'objet auquel il est attaché parce que j'ai oublié quelque chose ...?? C'est ça ?

Code : Tout sélectionner

Parent of RectTransform is being set with parent property. Consider using the SetParent method instead, with the worldPositionStays argument set to false. This will retain local orientation and scale rather than world orientation and scale, which can prevent common UI scaling issues.
UnityEngine.Transform:set_parent(Transform)
HpBar:Update() (at Assets/HUDEnemy/HpBar.cs:16)
Pourtant quand je regarde l'image UI créer avec l'instantiate il y a bien le type d'image, type: Filled,Fill method: Horizontal et Fill origin: left.
Je dois faire quoi du coup ? ^^'

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: DrawTexture Position au dessus d'un objet

Message par giyomuSan » 20 Avr 2015 05:43

tout est la

http://docs.unity3d.com/ScriptReference ... arent.html
This method is the same as the parent property except that it's possible to make the Transform keep its local orientation rather than its global orientation by setting the worldPositionStays parameter to false.

Idolo
Messages : 89
Inscription : 11 Mars 2015 10:16

Re: DrawTexture Position au dessus d'un objet

Message par Idolo » 20 Avr 2015 09:10

Ah ok! Je croyais que ça se trouvais dans le UI :/ je comprend pourquoi je trouvais pas, merci.
Oui du coup j'ai mis:

Code : Tout sélectionner

HpBarTexture.transform.SetParent(transform,true);
Et je n'ai plus la marque d'attention, par contre j'ai beau mettre true ou false et l'image en type: filled method: horizontal origin: left ça s'enléve toujours des deux côtés... :/

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: DrawTexture Position au dessus d'un objet

Message par giyomuSan » 20 Avr 2015 11:19

regle les anchor de ton component image, par default c toujours au centre.

Idolo
Messages : 89
Inscription : 11 Mars 2015 10:16

Re: DrawTexture Position au dessus d'un objet

Message par Idolo » 20 Avr 2015 11:48

C'est fait, toujours pas :( ...

Edit: SI c'est bon !! j'ai mis le pivot X à 1 et c'est bon merci beaucoup !

Répondre

Revenir vers « L'interface GUI »