Se connecter

Informatique

Création de Jeux

Sujet : J'aide les gens dans Unity
VaultDeveloper
Niveau 5
07 juin 2016 à 22:53:40

Tous les projets ont une organisation du code différente, donc je peux pas te dire. En général, on ne fait pas un script (ou une classe) juste pour effectuer une animation. Donc je te conseil plutôt d'intégrer ça dans une fonction.

RDJ60
Niveau 5
09 juin 2016 à 15:04:11

Bonjour, Je cherche le moyen de faire tourner un gameobject autour d' un autre gameobject en fonction de l' emplacement de la souris. Merci d'avance

VaultDeveloper
Niveau 5
09 juin 2016 à 15:46:20

Bonjour,
Je pense que ça peut t'aider :
http://docs.unity3d.com/ScriptReference/Transform.RotateAround.html

RDJ60
Niveau 5
09 juin 2016 à 16:00:01

Oui c'est ce que j essaie d'utiliser la il tourne tout seul mais pas encore Avec la souris ^^ merci de ta réponse

VaultDeveloper
Niveau 5
09 juin 2016 à 19:15:18

Montre la partie de script que tu as fait, qu'on puisse mieux t'aiguiller.

Emin3ms
Niveau 10
16 juin 2016 à 18:31:50

Oy, je suis en train de faire un menu et j'ai un soucis avec les dropdowns.
Je cherche à faire une liste déroulante qui propose les différentes armes que le joueur possède, du coup les options ne sont pas fixes. Le soucis c'est que quand je clique sur le bouton, il n'y a que des "Option A" dans la liste. Alors si j'ai bien compris cela provient du Dropdown/Template/Viewport/Content/Item/ItemLabel mais le soucis c'est que je sais pas comment modifier ce texte via un script.
J'ai bien trouvé une fonction Dropdown.itemText.text mais la ligne où je lui attribue une valeur fait planter le jeu. Vous savez comment ça marche ?
Merci

Helliot_Ness
Niveau 5
17 juin 2016 à 13:32:32

Bonjour Emin3ms,

Regarde peut être du coté de Dropdown.AddOptions https://docs.unity3d.com/ScriptReference/UI.Dropdown.AddOptions.html
Et bien sur du coté de Dropdown.ClearOptions https://docs.unity3d.com/ScriptReference/UI.Dropdown.ClearOptions.html

Bonne continuation.

Emin3ms
Niveau 10
17 juin 2016 à 19:33:31

Salut, d'abord merci de ta réponse, cela dit c'est pas exactement ce que je voulais savoir je me suis mal exprimé :p)
Je crée les options avec la commande :
GunDropDown.options.Add (new Dropdown.OptionData(_wp.Name + " (" + _wp.WearPoints + "cc)"));
Et j'utilise bien le ClearOptions pour reset, mais le problème est ailleurs.
Au départ je tombe sur ça : https://www.noelshack.com/2016-24-1466184262-01.png
Ce qui est normal donc. Mais ensuite quand je clique sur le bouton ça donne ça : https://www.noelshack.com/2016-24-1466184266-02.png
Il y a bien les 5 champs mais dans le menu déroulant la string qui les représente n'est pas affichée. Je tombe seulement sur le texte de l'objet du Template comme expliqué dans mon poste précédent. Ce texte était par défaut "Option A" et là j'ai effacé donc "".
En revanche je retrouve bien ce que je veux quand je clique sur une des options du menu déroulant : https://www.noelshack.com/2016-24-1466184270-03.png

Donc au final c'est bien fonctionnel mais c'est pas viable d'avoir de tels problèmes d'interface.
Merci d'avoir lu :o))

Helliot_Ness
Niveau 5
19 juin 2016 à 18:46:23

Re Emin3ms,

En effet le composant Dropdown comporte quelques anomalies de fonctionnement dans le cas ou saa liste d'items est vide et que l'on lui ajoute des éléments.

Tu peut éventuellement déjouer ce bug mineur en sélectionnant toi même un indice hors limite de la liste dès l'ajout du premier item.

Voici en exemple un bout de code en exemple qui démontre la résolution du problème.
J'ai juste un Button qui fait référence à un composant Dropdown et qui au clic appelle la méthode DropDownAddItem.OnButtonAdd() (la mise en place est assez simple).

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class DropDownAddItem : MonoBehaviour {

	public Dropdown MyDropdown;
	private int _number = 0;

	void Start ()
	{
		MyDropdown.ClearOptions();
	
	}
	
	public void OnButtonAdd()
	{
		MyDropdown.options.Add(new Dropdown.OptionData(string.Format("Item {0}.",_number)));
		if (MyDropdown.options.Count < 2)
			MyDropdown.value = 1;
		_number++;
	}
}

A+

Batagogo
Niveau 13
21 juin 2016 à 19:39:27

Y'a moyen de mettre une animation qui se declenche en meme temps sur plusieurs gameobject ? Je souhaite mettre une fenetre semi transparente qui devient opaque quand on passe dessus

-Adridu84-
Niveau 10
22 juin 2016 à 03:08:03

Pas besoin d'animation pour ça, ce serait un peu 'lourd'.
A ta place, si la fenêtre est une Image dans un canvas (de l'interface UI de Unity5), je mettrais un EventTrigger sur ma fenêtre qui déclenche à l'entrée et à la sortie du curseur de la fenêtre deux méthode placées dans un script gérant ta fenêtre ou ton HUD.

Tes méthodes (void) vont dire dans un bool si la souris est sur la fenêtre. La void Update agis en conséquence sur la composante alpha de l'image de ta fenêtre.

Exemple :


private bool mouseOver;
public float FadeSpeed = 2f;
public Image _img;

void OnPointerEnter()
{
    mouseOver = true;
}

void OnPointerExit()
{
    mouseOver = false;
}

void Update()
{
    if(mouseOver &&  _img.color.a < 1)
    {
         _img.color += new Color(0, 0, 0, Time.deltaTime*ReactionSpeed);
    }
    else if(!mouseOver && _img.color.a > 0.5)
    {
         _img.color -= new Color(0, 0, 0, Time.deltaTime*ReactionSpeed);
    }

}

Il existe sûrment un moyen plus optimisé (il y en a toujours un :ok: ) mais ça devrait quand même fonctionner :)

Batagogo
Niveau 13
22 juin 2016 à 19:33:17

Et pour appliquer ca a tous les enfants (qui eux memes ont des enfants on fait comment ?)

Helliot_Ness
Niveau 5
22 juin 2016 à 21:00:21

Hello batagogo,

en fait la solution proposée par Adrien, est partit du fait que tu utilisais à priori des composants de UnityEngine.UI.
C'est cela à quoi que l'on pense dès que tu parle de fenêtre (on va dire de container de type GUI)...

Si tu n'utilise pas cette API, le problème est bien sur résolvable, mais ils faut nous donner plus d'infos sur ce que nomme une fenêtre ainsi que le type d'objets que comporte ses enfants.

Peut être ton architecture sera une impasse par rapport à ce que tu souhaite obtenir.

A+ , dans l'attente de plus d'infos.

Ha oui, et aussi une chose très simple qui pour moi semble couler de source...
Un p'tit bonjour ça fait pas de mal.
Un pt'it merci au mec qui à pris la peine de te lire et tenté de t'aider non plus.

Autre chose qui n'a rien à voir avec ton sujet....
C'est vraiment complètement débile le mec qui à fait le cahier des charges de ce site.
Tu ne peut modifier ton message après un certain moment, par contre ta juste à le supprimer et à le refaire !!!

Batagogo
Niveau 13
23 juin 2016 à 18:40:20

Ok merci.

Oui le bonjour / au revoir j'ai oublié :s

Derniere question : on peut faire du polymorphisme sur Unity ?

TheRealMarco
Niveau 10
24 juin 2016 à 13:44:46

Bonjour.

Je voulais essayer de faire un jeu comme Minecraft pour m'entraîner.
https://www.noelshack.com/2016-25-1466768035-stone.png

J'ai trouvé cette image sur internet. Mais quand je l'applique à un cube, on dirait qu'Unity étale la texture :
https://www.noelshack.com/2016-25-1466768501-screenshot-1.png

Je voulais savoir comment éviter cela.
L'inspector :
https://www.noelshack.com/2016-25-1466768552-screenshot-2.png

Je suppose que le dois changer le material ou le type de Shader (je ne m'y connais pas du tout là dedans).
De plus, j'aimerai que l'intensité de la lumière soit visible sur le cube (il faut une UV map ou quelque chose comme ça ?). Pour l'instant, tout le cube est constamment éclairé.

Merci de votre aide (j'ai toujours fait de la 2D pour l'instant).

-Adridu84-
Niveau 10
24 juin 2016 à 14:40:11

Salut !
Tout d'abords, tu dois savoir que Unity va "adoucir" les textures pour respecter une haute résolution, si ton image est du pixel art, alors le rendu est ignoble car il étale quelques pixels sur une résolution beaucoup plus haute.
:d) La solution est simple, va sur ta texture (celle d'origine, pas le material) et passe le 'Filter mode' en 'Point'.

Pour le problème d'éclairage il peut y avoir deux causes :
- Tu n'as pas de directional light dans ta scène
- Ce petit bouton est appuyé :
https://www.noelshack.com/2016-25-1466771861-616254d546c3435f94694b5f8aa6d7572.png

:d) Ajoute une directional light si il n'y en a pas et décoche le bouton indiqué.

Je te conseille aussi de passer à la dernière version de Unity(Si c'est pas déjà le cas) qui as fait de grands progrès sur l'éclairage :hap:

J'espère que ça va régler tes soucis, donne moi ton retour :ok:

TheRealMarco
Niveau 10
24 juin 2016 à 16:21:07

Merci beaucoup pour cette réponse rapide.

Le filter mode a parfaitement réglé mon problème de texture.

Par contre pour l'éclairage, j'ai désactivé le bouton indiqué, mais rien ne change. Et j'avais bien mis une directional light dans la scène, juste à côté et en direction des blocs. :ok:

https://www.noelshack.com/2016-25-1466777978-screenshot-3.png https://www.noelshack.com/2016-25-1466777978-screenshot-4.png https://www.noelshack.com/2016-25-1466778037-screenshot-5.png

Je rajoute ces images en espérant que ça puisse aider une personne qui veut bien m'aider. Merci beaucoup encore une fois.

-Adridu84-
Niveau 10
24 juin 2016 à 18:36:43

Trouvé !
Le material assigné à tes cubes est 'Unlit' Ce type de material fait que l'objet est toujours affiché à l'écran même si il est derrière d'autres objets et qu'il n'est pas affecté par la lumière mais auto-éclairé.

:d) Change ton material en Standard par exemple et ton problème sera réglé :ok:

Bonne chance sur ton projet, c'est un plaisir de t'aider :hap:

GalaxysTeam
Niveau 3
24 juin 2016 à 19:44:43

Bonjour

j'ai donc un personnage a la 1er personne avec dedans une caméra et dans la caméra une armes .

Donc lorsque je lance le jeu et que je regarde vers le haut, la camera ( je crois ) étire mon arme, donc son scale augmente ce qui rend le jeu moche et l'armes aussi :'( puis si je regarde vers le milieu, le scale diminue et vers la bas sa augmente ... :'(

merci d'avance

TheRealMarco
Niveau 10
24 juin 2016 à 19:50:02

Merci beaucoup, ça marche parfaitement (après avoir compris que la texture doit être appliqué à l'élément Emission et non Albedo).

Par contre, il faut bien que le petit symbole de lumière soit sélectionné dans l'onglet Scene, sinon on ne voit pas de changement en décalant la lumière. J'ai déjà de quoi expérimenté avec ces petites nouvelles connaissances.

Je voulais aussi savoir comment faire pour que les blocs n'aient pas forcément la même texture sur chaque côté (comme pour la terre avec l'herbe dans Minecraft). J'ai vu qu'il y avait Skybox/6sided comme type de shader, j'imagine que c'est pas fait pour, donc comment faire ?

Merci vraiment à toi.

Sujet : J'aide les gens dans Unity
   Retour haut de page
Consulter la version web de cette page