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.
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
Bonjour,
Je pense que ça peut t'aider :
http://docs.unity3d.com/ScriptReference/Transform.RotateAround.html
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
Montre la partie de script que tu as fait, qu'on puisse mieux t'aiguiller.
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
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.
Salut, d'abord merci de ta réponse, cela dit c'est pas exactement ce que je voulais savoir je me suis mal exprimé
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 :
Ce qui est normal donc. Mais ensuite quand je clique sur le bouton ça donne ça :
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 :
Donc au final c'est bien fonctionnel mais c'est pas viable d'avoir de tels problèmes d'interface.
Merci d'avoir lu
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+
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
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 ) mais ça devrait quand même fonctionner
Et pour appliquer ca a tous les enfants (qui eux memes ont des enfants on fait comment ?)
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 !!!
Ok merci.
Oui le bonjour / au revoir j'ai oublié :s
Derniere question : on peut faire du polymorphisme sur Unity ?
Bonjour.
Je voulais essayer de faire un jeu comme Minecraft pour m'entraîner.
J'ai trouvé cette image sur internet. Mais quand je l'applique à un cube, on dirait qu'Unity étale la texture :
Je voulais savoir comment éviter cela.
L'inspector :
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).
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.
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é :
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
J'espère que ça va régler tes soucis, donne moi ton retour
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.
Je rajoute ces images en espérant que ça puisse aider une personne qui veut bien m'aider. Merci beaucoup encore une fois.
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é.
Change ton material en Standard par exemple et ton problème sera réglé
Bonne chance sur ton projet, c'est un plaisir de t'aider
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
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.