CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : J'aide les gens dans Unity

DébutPage précedente
«1  ... 159160161162163164165166167168169  ... 180»
Page suivanteFin
baldoodlab baldoodlab
MP
Niveau 2
17 avril 2019 à 21:49:33

enfaite j'ai fais un script avec un collider Enter et Exit,
sauf que quand mon perso rentre dans le collider trigger de mon PNJ le texte ne s'affiche pas..
(ps : mon script est bon et je l'ai bien assigné)
askip ça vient des Layers mais je sais pas trop ce que c'est et comment résoudre le problème

TheRealMarco TheRealMarco
MP
Niveau 10
17 avril 2019 à 21:54:43

Le 17 avril 2019 à 21:49:33 baldoodlab a écrit :
enfaite j'ai fais un script avec un collider Enter et Exit,
sauf que quand mon perso rentre dans le collider trigger de mon PNJ le texte ne s'affiche pas..
(ps : mon script est bon et je l'ai bien assigné)
askip ça vient des Layers mais je sais pas trop ce que c'est et comment résoudre le problème

Difficile à deviner le problème comme ça.
Dans l'onglet Scene, tu peux confirmer que si le GameObject s'active / s'affiche mais tu peux pas le voir.

ludoxe ludoxe
MP
Niveau 10
19 avril 2019 à 13:34:55

Bonjour, j'ai une question, je veux créer un RPG (en 2D mais c'est pas si important)...
Le problème est le suivant, je veux créer un inventaire, mais je ne sais pas comment m'y prendre...
J veux le faire sans asset ou truc préfaits, du coup j'ai regardé ce tuto :
https://www.youtube.com/watch?v=mR47TBbmsAI

Je me dis que ça pourrait correspondre à ce que je veux faire, mais le problème est que les items sont déjà paramétrés dans les slots...
J voudrais créer des slots vides et pouvoir mettre les items dedans après...
Je me dis que j pourrais modifier donc les scripts du tuto mais maintenant s'ajoute un problème pas technique :

J voudrais créer plusieurs items dans mon jeu et les ajouter selon les besoins au cours du développement de mon projet...
J voudrais m inspirer des systèmes de plusieurs jeux... Attribuer à chaque item un numéro (une id dans leur jeu)...
Mais la plupart des jeux ont des items de la même catégorie dont leur numéro se suivent ...
Genre de 1 à 10 les items de bouffe puis de 10 à 37 les items d armes puis de 37 à 40 les potions etc.
Mais comme j ai pas encore créé tous les items et que j ai aucune idée de combien d items je vais devoir créer...
Je sais pas comment m'y prendre...

Un conseil ? Avis ?

Merci :)

TheRealMarco TheRealMarco
MP
Niveau 10
19 avril 2019 à 19:39:03

Je te conseil d'utiliser des scriptableObject pour gérer les items (rien à voir avec ta question, mais si tu connais pas les scriptableObject, je te recommande de te renseigner dessus).

Ce que tu vas devoir faire c'est stocker les objets qui peuvent être dans ton inventaire dans un tableau (ou une liste). Ainsi tu peux les ajouter au fur et à mesure du développement, et tu peux les ordonner. Grâce au tableau ou à la liste, tu peux récupérer l'index de chacun.

Je sais que tu as vu une vidéo pour faire un inventaire. Mais si tu ne connais pas Brackeys, je te le recommande. Il fait des vidéos cool sur YT (dont 2 sur les inventaires).
https://www.youtube.com/watch?v=w6_fetj9PIw

Message édité le 19 avril 2019 à 19:41:40 par TheRealMarco
ludoxe ludoxe
MP
Niveau 10
20 avril 2019 à 16:31:16

Merci, je vais opter je pense pour le scriptableObject...
En ce qui concerne Brackeys, je ne le connaissais pas, c'est vrai qu il parle très clairement et synthétiquement mais je ne parle pas très bien anglais, il va un peu trop vite pour moi...

J ai néanmoins vu son tuto et je pense composer avec tous les tutos que j ai vu...

Encore une fois, merci

ludoxe ludoxe
MP
Niveau 10
24 avril 2019 à 10:43:07

Bonjour, du coup je me suis renseigné sur les Scriptable Object...
J'ai créé un inventaire avec des slots sans vraiment suivre de tutos mais plus en m'inspirant de la conception de différents tuto sur Internet...
Néanmoins je ne suis pas sûr de bien m'y être pris au niveau des Scriptables Objects...

1. Quand je regarde des assets correspondants aux items in game dans l inspector, j'ai la variable grisé Script qui m'affiche None (Mono Script)
2. De façon random, des fois, quand je regarde un asset dans l inspector, je ne vois que ce message "unity the associated script cannot be loaded scripteable object"

J ai du m y prendre mal quelque part ?

Merci

TheRealMarco TheRealMarco
MP
Niveau 10
24 avril 2019 à 18:17:45

ScriptableObject c'est pour "stocker" des données. MonoBehavior c'est pour faire des actions.

Je pense que tu essaies de mettre un ScriptableObject à la place d'un Objet Monobehavior.

Regarde sur internet, je pense que beaucoup de monde a déjà eu ton problème, donc il y a des solutions.
https://answers.unity.com/questions/1385671/why-the-associated-script-can-not-be-loaded-for-so.html

Message édité le 24 avril 2019 à 18:17:55 par TheRealMarco
ludoxe ludoxe
MP
Niveau 10
27 avril 2019 à 14:29:13

Le 24 avril 2019 à 18:17:45 TheRealMarco a écrit :
ScriptableObject c'est pour "stocker" des données. MonoBehavior c'est pour faire des actions.

Je pense que tu essaies de mettre un ScriptableObject à la place d'un Objet Monobehavior.

Regarde sur internet, je pense que beaucoup de monde a déjà eu ton problème, donc il y a des solutions.
https://answers.unity.com/questions/1385671/why-the-associated-script-can-not-be-loaded-for-so.html

Bon, j'essayais juste de stocker des données, mais je me suis renseigné et le problème est que j'avais mis plusieurs classes dans mon ScripteableObject pour différents types d'assets... C'est tout...

Merci en tout cas :)

ludoxe ludoxe
MP
Niveau 10
28 avril 2019 à 12:53:34

Bonjour, je reviens ici, j'ai encore des problèmes avec les ScriptablesObject, quand elles étendent d'autres ScriptablesObjects .
Cette fois c'est plus concret...
Après avoir réussi à créer mon système d'inventaire assez rudimentaire (des slots et items pouvant être mis dedans ), je souhaite créer une fenêtre qui affiche les caractéristiques de chaque Items...
Rien de compliqué je créer un script qui modifie un Text et qui donne les caractéristiques de l'asset de donnée en question, le problème est celui-ci :
Je mets dans mon texte les caractéristiques de mon Item (variable name) trouvable dans le scriptableObject ItemData...
J veux ensuite mettre les caractéristiques de Food (variable food), trouvable dans un autre scriptableObject FoodData, hérité de ItemData...

Mon bout de code approximatif :


public ItemData Item ;

void ShowInfoItem() {
GetComponent<Text>().text = "Nom: " + Item.name ;

if(Item is FoodData){
GetComponent<Text>().text += "\n Nourriture: " + Item.food
}
}

Bien sur ça fonctionne pas, parce que food appartient à FoodData :-(
Comment faire ? Sachant que je voudrais que mon script fonction pour n importe quel asset autre variable de n importe quelle autre scriptableObject hérité de ItemData...
Merci :)

TheRealMarco TheRealMarco
MP
Niveau 10
28 avril 2019 à 13:25:55

Tu veux changer dynamiquement le type (cast).

(Item as FoodData).food

à la place de

Item.food

Ça devrait marcher.

Par contre, c'est pas propre niveau programmation. Les concepts de POO ne seront pas respectés. C'est les descendants d'Item qui devraient gérer ce genre de chose. Pas le composant qui gère l'affichage.

ludoxe ludoxe
MP
Niveau 10
28 avril 2019 à 15:30:01

Le 28 avril 2019 à 13:25:55 TheRealMarco a écrit :
Tu veux changer dynamiquement le type (cast).

(Item as FoodData).food

à la place de

Item.food

Ça devrait marcher.

Par contre, c'est pas propre niveau programmation. Les concepts de POO ne seront pas respectés. C'est les descendants d'Item qui devraient gérer ce genre de chose. Pas le composant qui gère l'affichage.

Merci ça fonctionne, du coup, si j'ai bien compris, pour respecter le concept de la POO, j dois donc mettre toutes les variables dans mon ItemData dans les autres scriptableObjects hérités ? Soit, la variable nom dans FoodData et les autres (que j ai pas encore créé) comme par exemple, PotionData ou WeaponData ?

ludoxe ludoxe
MP
Niveau 10
30 avril 2019 à 11:59:59

Bonjour, encore des questions à poser ici :)

J veux créer un systeme de combat style jeu d'action dans mon jeu 2D...
Le jeu est comme une sorte de platformer...

Je voudrais pour créer un aspect stratégique pouvoir mettre sur différents plans le joueur et les ennemis...
Genre une maison, quand on saute dessus, on atterrit sur le toit (2eme plan)...
On peut pas mettre de boxcollider2d sur le toit sinon on peut pas sauter par dessus la maison...
Du coup j me suis dit un trigger qui détecte quand le joueur est au dessus du toit et qui active le collider...
Mais avec 2 persos ça ne sera pas faisable...

Je me penche donc sur les layers et les collisions... Mais ça risque de compliquer la suite de mon code...n y a t il pas d autres alternatifs ?

Message édité le 30 avril 2019 à 12:00:14 par ludoxe
TheRealMarco TheRealMarco
MP
Niveau 10
30 avril 2019 à 17:56:23

Le 30 avril 2019 à 11:59:59 ludoxe a écrit :
Bonjour, encore des questions à poser ici :)

J veux créer un systeme de combat style jeu d'action dans mon jeu 2D...
Le jeu est comme une sorte de platformer...

Je voudrais pour créer un aspect stratégique pouvoir mettre sur différents plans le joueur et les ennemis...
Genre une maison, quand on saute dessus, on atterrit sur le toit (2eme plan)...
On peut pas mettre de boxcollider2d sur le toit sinon on peut pas sauter par dessus la maison...
Du coup j me suis dit un trigger qui détecte quand le joueur est au dessus du toit et qui active le collider...
Mais avec 2 persos ça ne sera pas faisable...

Je me penche donc sur les layers et les collisions... Mais ça risque de compliquer la suite de mon code...n y a t il pas d autres alternatifs ?

Je sais pas comment on fait, mais je sais qu'il y a une manière simple de la mettre en oeuvre sur Unity.
Regarde sur internet.
https://www.google.fr/search?q=2D+one+side+collider+unity

Le 28 avril 2019 à 15:30:01 ludoxe a écrit :

Le 28 avril 2019 à 13:25:55 TheRealMarco a écrit :
Tu veux changer dynamiquement le type (cast).

(Item as FoodData).food

à la place de

Item.food

Ça devrait marcher.

Par contre, c'est pas propre niveau programmation. Les concepts de POO ne seront pas respectés. C'est les descendants d'Item qui devraient gérer ce genre de chose. Pas le composant qui gère l'affichage.

Merci ça fonctionne, du coup, si j'ai bien compris, pour respecter le concept de la POO, j dois donc mettre toutes les variables dans mon ItemData dans les autres scriptableObjects hérités ? Soit, la variable nom dans FoodData et les autres (que j ai pas encore créé) comme par exemple, PotionData ou WeaponData ?

Y'a plusieurs moyens de le faire plus proprement. Je dirai que tu peux simplement faire une fonction
getAllAttributes() qui retourne un tableau de string. Cette fonction serait dans ton ItemData. Avec le modificateur override les classes héritées pourront redéfinir le résultat de cette méthode (en réutilisant la base créée par ItemData si besoin avec base.getAllAttributes()).

Ainsi, la méthode qui affiche le deviendra :
void ShowInfoItem() { GetComponent<Text>().text = ""; // vide au début   foreach(attribut in Item.GetAllAttributes()) {    GetComponent<Text>().text += attribut } }

ludoxe ludoxe
MP
Niveau 10
30 avril 2019 à 22:59:41

Le 30 avril 2019 à 17:56:23 TheRealMarco a écrit :

Le 30 avril 2019 à 11:59:59 ludoxe a écrit :
Bonjour, encore des questions à poser ici :)

J veux créer un systeme de combat style jeu d'action dans mon jeu 2D...
Le jeu est comme une sorte de platformer...

Je voudrais pour créer un aspect stratégique pouvoir mettre sur différents plans le joueur et les ennemis...
Genre une maison, quand on saute dessus, on atterrit sur le toit (2eme plan)...
On peut pas mettre de boxcollider2d sur le toit sinon on peut pas sauter par dessus la maison...
Du coup j me suis dit un trigger qui détecte quand le joueur est au dessus du toit et qui active le collider...
Mais avec 2 persos ça ne sera pas faisable...

Je me penche donc sur les layers et les collisions... Mais ça risque de compliquer la suite de mon code...n y a t il pas d autres alternatifs ?

Je sais pas comment on fait, mais je sais qu'il y a une manière simple de la mettre en oeuvre sur Unity.
Regarde sur internet.
https://www.google.fr/search?q=2D+one+side+collider+unity

Le 28 avril 2019 à 15:30:01 ludoxe a écrit :

Le 28 avril 2019 à 13:25:55 TheRealMarco a écrit :
Tu veux changer dynamiquement le type (cast).

(Item as FoodData).food

à la place de

Item.food

Ça devrait marcher.

Par contre, c'est pas propre niveau programmation. Les concepts de POO ne seront pas respectés. C'est les descendants d'Item qui devraient gérer ce genre de chose. Pas le composant qui gère l'affichage.

Merci ça fonctionne, du coup, si j'ai bien compris, pour respecter le concept de la POO, j dois donc mettre toutes les variables dans mon ItemData dans les autres scriptableObjects hérités ? Soit, la variable nom dans FoodData et les autres (que j ai pas encore créé) comme par exemple, PotionData ou WeaponData ?

Y'a plusieurs moyens de le faire plus proprement. Je dirai que tu peux simplement faire une fonction
getAllAttributes() qui retourne un tableau de string. Cette fonction serait dans ton ItemData. Avec le modificateur override les classes héritées pourront redéfinir le résultat de cette méthode (en réutilisant la base créée par ItemData si besoin avec base.getAllAttributes()).

Ainsi, la méthode qui affiche le deviendra :
void ShowInfoItem() { GetComponent<Text>().text = ""; // vide au début   foreach(attribut in Item.GetAllAttributes()) {    GetComponent<Text>().text += attribut } }

Ok merci pour tout :)

maatth4 maatth4
MP
Niveau 7
09 mai 2019 à 14:15:05

Bonjour a tous,

Dans le cadre de mon TFE, j'ai réalisé une maison en 3D sur AutoCad. Je l'exporte en FBX pour l'utiliser dans unity 3D.
Jusque la tout vas bien!

J'essaye d'appliquer une texture de brique sur un mur... J'obtiens un mur simplement brun.
J'ai essayer en créant un cube depuis unity et mettre la meme texture et la cela marche parfaitement.

Auriez vous une solution pour moi ?

Merci

Pseudo supprimé
Niveau 9
21 mai 2019 à 20:37:16

Le 09 mai 2019 à 14:15:05 Maatth4 a écrit :
Bonjour a tous,

Dans le cadre de mon TFE, j'ai réalisé une maison en 3D sur AutoCad. Je l'exporte en FBX pour l'utiliser dans unity 3D.
Jusque la tout vas bien!

J'essaye d'appliquer une texture de brique sur un mur... J'obtiens un mur simplement brun.
J'ai essayer en créant un cube depuis unity et mettre la meme texture et la cela marche parfaitement.

Auriez vous une solution pour moi ?

Merci

Ouais, si cest comme 3dsmax tu dois créer tes uvmap dans le logiciel avant d'exporter en FBX.

]sliman[ ]sliman[
MP
Niveau 30
08 juin 2019 à 22:44:09

Salut,
j'ai une question à propos de la physique :
Si on veut pouvoir faire en sorte que 2 objets entrent en collision, on doit obligatoirement passer par AddForce si on veut déplacer l'objet par code ? Parce que visiblement, si je déplace l'objet via son transform sans lui appliquer de force, les collisions ne semblent pas se faire. Je fais une espèce de casse-briques et j'aimerais diriger la barre avec la souris tout en profitant des collisions a droite et a gauche pour empêcher la barre de sortir du cadre.
Merci.

Messide Messide
MP
Niveau 12
15 juin 2019 à 12:14:09

Hello,

Question très rapide

Quelque'un sait pourquoi dans mon Visual Studio je n'ai pas toutes les mots clefs coloré comme on peut voir sur les tuto youtube :
https://www.noelshack.com/2019-24-6-1560593485-unity.png

De plus, je n'ai pas l'explication des fonctions comme c'est le cas dans cette video par ex : https://youtu.be/DL96YoqGhuc?t=176

Etant débutant, cela m'aiderait grandement.
Un peu d'aide svp les gars?

]sliman[ ]sliman[
MP
Niveau 30
15 juin 2019 à 14:15:20

Regarde en haut a gauche, il est écrit "fichiers divers", ca veut dire qu'il y a un problème de lien entre unity et VS.
La solution est ici, en anglais, la première réponse à 168 like https://stackoverflow.com/questions/42597501/autocompletion-not-working-in-visual-studio

thelastofus2 thelastofus2
MP
Niveau 25
15 juin 2019 à 14:46:26

Le 08 juin 2019 à 22:44:09 ]sliman[ a écrit :
Salut,
j'ai une question à propos de la physique :
Si on veut pouvoir faire en sorte que 2 objets entrent en collision, on doit obligatoirement passer par AddForce si on veut déplacer l'objet par code ? Parce que visiblement, si je déplace l'objet via son transform sans lui appliquer de force, les collisions ne semblent pas se faire. Je fais une espèce de casse-briques et j'aimerais diriger la barre avec la souris tout en profitant des collisions a droite et a gauche pour empêcher la barre de sortir du cadre.
Merci.

Oui il faut utiliser une force si tu veux que ton objet rentre en collision avec un autre objet ayant un corps physique. Tu peux utiliser AddForce, ou alors tu modifies la variable "velocity" de ton Rigidbody en lui appliquant un vecteur.

Après pour un case brique, je doute de l'utilité d'utiliser le moteur physique pour déplacer la barre. Tu ne pourrais pas simplement faire avec le transform, et ne pas mettre de Rigidbody à ta barre ? D'expérience, si tu utilises le moteur physique pour faire ce type de manipulation, tu auras un résultat bizarre. Par exemple, si tu déplaces rapidement la barre vers une limite, elle va surement s'enfoncer un peu dans le décors...

Via ton script, tu interdis simplement à ta barre d'avoir une position en dehors des limites que tu as imposé. Ta barre est un sprite j'imagine, donc tu peux te servir de cette variable : https://docs.unity3d.com/ScriptReference/Sprite-bounds.html
Plus précisément : https://docs.unity3d.com/ScriptReference/Bounds-extents.html
Comme ca tu fais une condition pour ne pas déplacer ta barre vers la gauche quand sa position ET la moitié de sa taille sur l'axe x (c'est à dire on_sprite.bounds.extends.x) sont inférieurs à la limite gauche.

Presque idem pour le côté droit

Message édité le 15 juin 2019 à 14:47:13 par thelastofus2
DébutPage précedente
Page suivanteFin
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
La vidéo du moment