CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • Black Friday
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • 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  ... 144145146147148149150151152153154  ... 180»
Page suivanteFin
TheRealMarco TheRealMarco
MP
Niveau 10
30 avril 2018 à 15:49:30

Le 30 avril 2018 à 15:32:24 pifpafpouf07 a écrit :
Bonjour à tous, j'ai un petit soucis avec les AssetBundles :

WWW www = new WWW(Application.dataPath + "/AssetBundles/immeubles");

Quand j'utilise la ligne suivante le bundle se charge dans l'éditeur mais mais dans la version build, quand j'utilise le chemin absolu ça fonctionne dans les deux cas, si quelqu'un pouvait m'expliquer pourquoi. J'ai cherché sur le net mais ça n'a pas été concluant.

Je voulais utiliser les bundles pour remplacer l'utilisation du dossier resources qui est pas tellement conseillée selon la doc.

Le dossier Resources n'est pas conseillée dans la doc ??? Lien ?

Il faut modifier l'url en fonction de la plateforme de build.
Genre sur Android ça n'existe pas.
https://docs.unity3d.com/ScriptReference/Application-dataPath.html

Essaie d'utiliser https://docs.unity3d.com/ScriptReference/Application-streamingAssetsPath.html à la place. :ok:

pifpafpouf07 pifpafpouf07
MP
Niveau 10
30 avril 2018 à 16:02:41

https://unity3d.com/fr/learn/tutorials/topics/best-practices/resources-folder

2.1. Best Practices for the Resources System

Don't use it.

Ah ouais j'étais pas allé voir la doc du ApplicationDataPath, effectivement ce que tu as link semble plus pratique ^^

Edit : merci, ça fonctionne et ça m'a pris 30 secondes à changer !

Message édité le 30 avril 2018 à 16:06:19 par pifpafpouf07
TheRealMarco TheRealMarco
MP
Niveau 10
30 avril 2018 à 16:10:43

Le 30 avril 2018 à 16:02:41 pifpafpouf07 a écrit :
https://unity3d.com/fr/learn/tutorials/topics/best-practices/resources-folder

2.1. Best Practices for the Resources System

Don't use it.

Ah ouais j'étais pas allé voir la doc du ApplicationDataPath, effectivement ce que tu as link semble plus pratique ^^

Edit : merci, ça fonctionne et ça m'a pris 30 secondes à changer !

Merci pour l'info, c'est pas la doc, donc je trouvais pas. :noel:

Nonovitch Nonovitch
MP
Niveau 10
01 mai 2018 à 18:53:55

Hello,
Je bloque pour la réalisation d'une ScrollBar dans mon jeu :
Le jeu dispose de X armes au total et le joueur n'en possède que Y.
Je récupère toutes les armes dont le joueur dispose (dans une liste)

Je voudrais avoir une scrollbar qui affiche uniquement les armes possédées, et lorsqu'il clique sur une, un texte à côté de la scrollbar s'actualise et affiche les infos.
Problème : Je ne sais pas du tout comment créer dynamiquement des objets.
Un tuto ou une explication?

Pour résumer :
https://www.noelshack.com/2018-18-2-1525193623-explic.png
Merci d'avance!

GrouilleOignon GrouilleOignon
MP
Niveau 2
02 mai 2018 à 12:13:57

Salut Nonovitch,

Du coup il faudrait déclencher une mise à jour du HUD lorsque le joueur ramasse ou drop une arme (ça peut être autre chose selon ton jeu). Dans ton scriptHUD, tu vas avoir deux prefab :
- Un prefab pour la liste dans la scrollbar qui représentera le nom de ton Item dans la liste. Pour la suite on va appeler ceci scrollPrefab.
- Un prefab pour représenter les infos de ton arme dans le rectangle sur ta droite. On va appeler celui-ci infoPrefab.

Du scriptHUD va récupérer la liste de tes armes sur ton joueur, et pour chaque arme tu vas instancier scrollPrefab et infoPrefab, dans lesquels tu mettras à jour les valeurs visuelles en fonction de ton arme.

Après il faut lier les deux, de façon à ce que quand tu clic sur un scrollPrefab , cela t'affiche le infoPrefab correspondant. Pour cela il te faut un script sur ton scrollPrefab (que l'on va appeler ListHandler) sur lequel tu vas attacher une référence à ton scriptHUD et à infoPrefab. Sur ListHandler tu implémentes l'interface IPointerDownHandler pour pouvoir détecter quand on clic sur le Transform associé au script, et dans la fonction OnPointerDown tu dis à scriptHUD de désactiver le infoPrefab actuel, et d'activer celui associé à ListHandler.

Voilà ça devrait faire l'affaire. Pour ce qui est du scroll en lui même, je te laisse chercher, il y a une tonne de tutos sur ce sujet ;)

GrouilleOignon GrouilleOignon
MP
Niveau 2
02 mai 2018 à 12:30:51

Et niveau code ça te donnera quelque chose comme ça dans ton scriptHUD :

foreach(Weapon weapon in playerWeaponList)
{
    GameObject infoPrefabObject = Instantiate(infoPrefab, infoContainerTransform);
    infoPrefabObject.transform.Find("Statistics").GetComponent<Text>().text = weapon.Statistics;
    // Autres infos à mettre à jour
    infoPrefabObject.SetActive(false);

    GameObject scrollPrefabObject = Instantiate(scrollPrefab, scrollListTransform);
    infoPrefabObject.transform.Find("ItemName").GetComponent<Text>().text = weapon.Name;
    ListHandler listHandler = infoPrefabObject.GetComponent<ListHandler>();
    listHandler.scriptHUD = this;
    listHandler.infoPrefab = infoPrefabObject.transform; 
}
Nonovitch Nonovitch
MP
Niveau 10
02 mai 2018 à 18:34:28

Merci pour ta réponse GrouilleOignon!
Je galère avec les tutos de ScrollBar à vrai dire (si jamais t'en as un bon hésite pas à me conseiller :hap:), je vais continuer mes recherches.
Je bloquais aussi sur comment créer un élément (une arme dans la scrollbar par exemple) via les scripts, merci pour ton code :)

Hytrq Hytrq
MP
Niveau 3
02 mai 2018 à 20:54:36

Bonjour,
Excusez moi de m'incrustez par ici, mais cette fois-ci je galère avec les animations :noel:
Vous ne sauriez pas comment, dans un script, prendre le compte le temps d'une animation par hasard?
Pour faire une boucle du genre : "Tant que l'animation n'est pas fini, faire..."
Ou si ce n'est pas possible, au moins faire un timer : "Attendre ... s, puis faire" . Il y a bien "WaitForSeconds", mais ça ne marche que dans une coroutine, non?

TheRealMarco TheRealMarco
MP
Niveau 10
02 mai 2018 à 21:57:13

Le 02 mai 2018 à 20:54:36 Hytrq a écrit :
Ou si ce n'est pas possible, au moins faire un timer : "Attendre ... s, puis faire" . Il y a bien "WaitForSeconds", mais ça ne marche que dans une coroutine, non?

Et alors ? tu mets le reste de ton code dans la coroutine. Ou tu le mets dans une autre fonction et la Coroutine appelle la fonction quand elle a terminé. Ou tu peux faire un timer en utilisant la fonction Update. :ok:

Le 02 mai 2018 à 20:54:36 Hytrq a écrit :
Bonjour,
Excusez moi de m'incrustez par ici, mais cette fois-ci je galère avec les animations :noel:
Vous ne sauriez pas comment, dans un script, prendre le compte le temps d'une animation par hasard?
Pour faire une boucle du genre : "Tant que l'animation n'est pas fini, faire..."

Tu peux mettre un animationevent à la fin de ton animation pour appeler une fonction : https://docs.unity3d.com/Manual/animeditor-AnimationEvents.html
Si c'est pour recommencer l'animation, tu n'as même pas besoin de tout ça.

Hytrq Hytrq
MP
Niveau 3
03 mai 2018 à 20:41:47

Et alors ? tu mets le reste de ton code dans la coroutine. Ou tu le mets dans une autre fonction et la Coroutine appelle la fonction quand elle a terminé. Ou tu peux faire un timer en utilisant la fonction Update. :ok:

Effectivement, maintenant que tu le dis, ça me semble logique :noel:

Tu peux mettre un animationevent à la fin de ton animation pour appeler une fonction : https://docs.unity3d.com/Manual/animeditor-AnimationEvents.html

Si c'est pour recommencer l'animation, tu n'as même pas besoin de tout ça.

Merci beaucoup pour la réponse et le lien ! J'ai réussi à résoudre mon problème :cool:
Aussi, je me demandais, dans un script en C#, on est obligé de mettre "private" ou "public" avant chaque déclaration de variable au début ?
De la même manière, est ce qu'on est obligé de mettre le code entre { } après un " if " ?

TheRealMarco TheRealMarco
MP
Niveau 10
03 mai 2018 à 21:09:58

Le 03 mai 2018 à 20:41:47 Hytrq a écrit :
Aussi, je me demandais, dans un script en C#, on est obligé de mettre "private" ou "public" avant chaque déclaration de variable au début ?

Non, par défaut les variables et les fonctions sont en private.

Le 03 mai 2018 à 20:41:47 Hytrq a écrit :
De la même manière, est ce qu'on est obligé de mettre le code entre { } après un " if " ?

C'est facultatif uniquement s'il n'y a qu'une seule ligne dans le if. Sinon c'est obligatoire, par contre, les tabulations sont facultatives, c'est uniquement pour une meilleur lisibilité.

ThetaTauTau ThetaTauTau
MP
Niveau 8
03 mai 2018 à 21:22:55

Aussi, je me demandais, dans un script en C#, on est obligé de mettre "private" ou "public" avant chaque déclaration de variable au début ?

Non, si on met rien c'est private par défaut

De la même manière, est ce qu'on est obligé de mettre le code entre { } après un " if " ?

Non, si le code entre {} ne fait qu'une ligne on n'est pas obligé.

pifpafpouf07 pifpafpouf07
MP
Niveau 10
04 mai 2018 à 09:48:21

Salut à tous, savez vous s'il est possible de mettre un coroutine en pause ?
J'utilise une coroutine pour lire une liste de sons (je fais un wait for seconds de la durée du son en cours avant de jouer le suivant) et j'aimerais pouvoir mettre cette coroutine en pause pour en lancer une autre dans certains cas, est ce que c'est possible ou alors je dois faire autrement ?

Nonovitch Nonovitch
MP
Niveau 10
07 mai 2018 à 13:44:47

Petite question au niveau de l'architecture :
Comment gérez-vous vos scènes? 1 scène = 1 niveau, 1 scène = 1 menu.. ?

TheRealMarco TheRealMarco
MP
Niveau 10
07 mai 2018 à 14:36:42

Le 04 mai 2018 à 09:48:21 pifpafpouf07 a écrit :
Salut à tous, savez vous s'il est possible de mettre un coroutine en pause ?
J'utilise une coroutine pour lire une liste de sons (je fais un wait for seconds de la durée du son en cours avant de jouer le suivant) et j'aimerais pouvoir mettre cette coroutine en pause pour en lancer une autre dans certains cas, est ce que c'est possible ou alors je dois faire autrement ?

https://answers.unity.com/questions/904429/pause-and-resume-coroutine-1.html
Apparemment tu peux faire comme ça.

Mais je pense que si tu as besoin de mettre en pause des coroutines, c'est que tu n'as pas réellement besoin de coroutine.

Le 07 mai 2018 à 13:44:47 Nonovitch a écrit :
Petite question au niveau de l'architecture :
Comment gérez-vous vos scènes? 1 scène = 1 niveau, 1 scène = 1 menu.. ?

J'imagine que ça dépend du jeu et des besoins, mais classiquement c'est comme ça oui. Sauf pour les menus In Game, qui sont inclus dans une autre scene (un autre niveau).

Message édité le 07 mai 2018 à 14:37:20 par TheRealMarco
pifpafpouf07 pifpafpouf07
MP
Niveau 10
09 mai 2018 à 09:46:38

Le 07 mai 2018 à 14:36:42 TheRealMarco a écrit :

Le 04 mai 2018 à 09:48:21 pifpafpouf07 a écrit :
Salut à tous, savez vous s'il est possible de mettre un coroutine en pause ?
J'utilise une coroutine pour lire une liste de sons (je fais un wait for seconds de la durée du son en cours avant de jouer le suivant) et j'aimerais pouvoir mettre cette coroutine en pause pour en lancer une autre dans certains cas, est ce que c'est possible ou alors je dois faire autrement ?

https://answers.unity.com/questions/904429/pause-and-resume-coroutine-1.html
Apparemment tu peux faire comme ça.

Mais je pense que si tu as besoin de mettre en pause des coroutines, c'est que tu n'as pas réellement besoin de coroutine.

Je me suis débrouillé autrement, j'avais trouvé cette solution mais ça me plaisait pas trop du coup j'ai fait autrement, merci quand même ! :merci:

Kalixio Kalixio
MP
Niveau 6
11 mai 2018 à 01:40:48

Bonjour

Je travaille avec le NetworkLobbyManager et je veux pouvoir spawned tel ou tel prefab selon la plateforme sur laquelle le joueur joue. J'ai fait un override sur la fonction OnLobbyServerCreateGamePlayer mais c'est toujours le prefab du serveur qui est spawn sur tous les clients. Un peu d'aide ne serait pas de refus, je m'arrache les cheveux dessus depuis une journée ^^

https://pastebin.com/NnU6dVCi

Beeknies Beeknies
MP
Niveau 10
15 mai 2018 à 14:58:08

Salut, je m'exerce un peu sur Unity et je suis confronté à un problème dont je ne trouve aucune solution.
Je fais un platformer 2d, le décor est crée à partir d'une Grid et d'une Tilemap "Ground" qui possède un CompositeCollider2D. J'ai une autre Tilemap sans collider qui me sert de layer, pour rajouter par exemple une échelle sur le décor.

https://www.noelshack.com/2018-20-2-1526388735-capture.png

Avez vous une piste vers laquelle je devrais me pencher ? Faire un scriptable tile ?

pifpafpouf07 pifpafpouf07
MP
Niveau 10
16 mai 2018 à 10:42:26

Bonjour à tous, je reviens encore avec un problème de streaming assets/ asset bundle, tout fonctionne bien dans l'editor mais quand je build mon jeu sur ma tablette les assets ne sont pas chargés.

IEnumerator loadAudio()
    {
        WWW www = new WWW(Application.streamingAssetsPath + "/audioPratique");
        yield return www;
        AssetBundle bundleAudio = www.assetBundle;
        if(bundleAudio == null)
        {
            yield break;
        }
        else
        {
            AssetBundleRequest request = bundleAudio.LoadAllAssetsAsync<AudioClip>();
            clips = request.allAssets;
            yield return clips;
        }
        bundleAudio.Unload(false);
    }

Voilà le code, comme conseillé plus tôt j'ai remplacé l'utilisation de application.dataPath par celle de streamingAssetsPath et d'après la doc y'a pas de changements entre les plateformes donc si quelqu'un a une idée d'où pourrait venir le problème je prends :-)

PS : Le code montré est celui pour le chargement des sons mais c'est la même chose pour les sprites.

pifpafpouf07 pifpafpouf07
MP
Niveau 10
16 mai 2018 à 11:05:25

J'avais oublié de rebuild mes assets bundles pour android du coup je l'ai fait et j'ai ajouté une condition if (Application.platform == RuntimePlatform.Android) pour que ça puisse fonctionner sur les deux plateformes MAIS ça ne fonctionne toujours pas :rire:

DébutPage précedente
Page suivanteFin
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
La vidéo du moment