Se connecter

Informatique

Création de Jeux

Sujet : J'aide les gens dans Unity
GrouilleOignon
Niveau 2
07 juin 2018 à 10:43:49

Il faut surtout que tu étudies mieux l'API quand tu essayes des fonctions que tu ne connais pas : https://docs.unity3d.com/Manual/Coroutines.html

Grosso modo il te manque des boucles à l'intérieur de ta coroutine, la ton code va juste s'exécuter une fois.

TheRealMarco
Niveau 10
11 juin 2018 à 13:35:04

Normalement c'est bon si le transform du GameObject Terre est bien ce qui se déplace.

Pour info, ce tuto peut t'intéresser https://www.youtube.com/watch?v=Ouu3D_VHx9o

UnityCoder
Niveau 6
11 juin 2018 à 13:49:09

Bonjour,
@LarryLuckMan,
Je pense que tu as attaché ton script à un autre GameObject que "Lune".
Si c'est le cas un simple :
Lune.transform.RotateAround(Terre.transform.position, Vector3.down, speed * Time.deltaTime);
à la place de
transform.RotateAround(Terre.transform.position, Vector3.down, speed * Time.deltaTime);
devrait faire l'affaire.

GrouilleOignon
Niveau 2
11 juin 2018 à 18:17:18

Lune.transform.RotateAround(Terre.transform.position, Vector3.down, speed * Time.deltaTime);

ça me semble un peu plus logique d'après ce que tu veux faire.

Edit : quelqu'un t'a déjà dit comment faire au dessus en plus, tu as essayé... ?

UnityCoder
Niveau 6
11 juin 2018 à 19:57:10

Hello @LarryLuckMan,
En fait je pense que tu te complique la vie...
Reprenons, ce que tu souhaites réaliser :
C'est donc un objet céleste (Terre, Lune, Mars ou autre qui effectue une certaine rotation sur lui même dans un temps donné, et que celui-ci effectue une rotation orbitale dans un temps donné (de type circulaire) autour du centre d'un autre objet céleste.
Pour l'aspect orbital on remarque d'entrée qu'il existe une notion de parent à enfant.

Par exemple dans notre système solaire, le soleil tourne sur lui même mais orbite aussi autour du centre de notre galaxie.
Pour la Terre, elle tourne sur elle même mais orbite aussi autour du centre du soleil.
Pour la Lune, elle tourne sur elle même mais orbite aussi autour de la terre.
Et même tu peux concevoir que autour de la Lune, d'autres objets célestes orbitent autour de celle ci.

Donc voici un script assez simple qui semble résoudre cette problématique.
Tu as juste a glisser celui sur tes objets céleste (Soleil, Terre, Lune et autres) et définir sur quel autre objet céleste il doit orbiter.


using UnityEngine;

public class RotateCelestialObject : MonoBehaviour
{
    // Objet céleste autour dusquel on tourne.
    public Transform CelestialParent;

    // Vitesse de rotation orbitale
    public float SpeedOrbital = 10f;

    // Vitesse de rotation de l'objet céleste
    public float SpeedLocalrotation = 1f;

    // Update
    void Update()
    {
        // Rotation de l'objet céleste sur lui même.
        this.transform.Rotate(Vector3.down, SpeedLocalrotation * Time.deltaTime);

        // Rotation de l'objet céleste autour de son orbite.
        if (CelestialParent)
            this.transform.RotateAround(CelestialParent.position, Vector3.down, SpeedOrbital * Time.deltaTime);
    }
}

Bonne continuation

UnityCoder
Niveau 6
18 juin 2018 à 20:18:09

@LarryLuckMan,
De rien...

Bonne continuation.

eytanh
Niveau 5
24 juin 2018 à 18:46:07

Bonjour à tous!

À chaque fois que je veut build mon jeu sur Android c'est toujours compliqué j'ai des messages d'erreurs et je passe des journées à les résoudres alors que sur IOS je le fais en un claquement de doigt.

Je suis obligé à chaque fois d'éditer des fichiers manuellement, en supprimer d'autres c'est épuisant.

Rencontrez-vous aussi ce type de problème?

Actuellement j'essaye de build mon jeu sur Android et j'ai cette erreur si vous pouviez m'aider:

CommandInvokationFailure: Failed to re-package resources.
C:\Users\Eytan\AppData\Local\Android\Sdk\build-tools\28.0.0\aapt.exe package --auto-add-overlay -v -f -m -J "gen" -M "AndroidManifest.xml" -S "res" -I "C:/Users/Eytan/AppData/Local/Android/Sdk\platforms\android-28\android.jar" -F bin/resources.ap_ --extra-packages com.facebook.android:com.facebook.applinks:com.facebook.common:com.facebook.core:com.facebook.login:com.facebook.messenger:com.facebook.places:com.facebook.share:com.google.unity.ads -S "L:\Software\Unity Project\Rebound\Temp\StagingArea\android-libraries\facebook-android-wrapper-7.11.1\res" -S "L:\Software\Unity Project\Rebound\Temp\StagingArea\android-libraries\facebook-applinks\res" -S "L:\Software\Unity Project\Rebound\Temp\StagingArea\android-libraries\facebook-common\res" -S "L:\Software\Unity Project\Rebound\Temp\StagingArea\android-libraries\facebook-core\res" -S "L:\Software\Unity Project\Rebound\Temp\StagingArea\android-libraries\facebook-login\res" -S "L:\Software\Unity Project\Rebound\Temp\StagingArea\android-libraries\facebook-messenger\res" -S "L:\Software\Unity Project\Rebound\Temp\StagingArea\android-libraries\facebook-places\res" -S "L:\Software\Unity Project\Rebound\Temp\StagingArea\android-libraries\facebook-share\res"

stderr[
L:\Software\Unity Project\Rebound\Temp\StagingArea\android-libraries\facebook-common\res\values\values.xml:72: error: Error retrieving parent for item: No resource found that matches the given name '@style/Theme.AppCompat.NoActionBar'.

L:\Software\Unity Project\Rebound\Temp\StagingArea\android-libraries\facebook-common\res\values\values.xml:77: error: Error retrieving parent for item: No resource found that matches the given name '@style/Theme.AppCompat.Dialog'.

]

Merci

eytanh
Niveau 5
26 juin 2018 à 19:21:36

Bon ba j'ai trouvé la solution.

TheRealMarco
Niveau 10
30 juin 2018 à 14:18:56

Aussi j'aimerais faire en sorte que si le joueurs appuie sur + le temps se découle deux fois plus vite, bon j'avoue j'ai pas trop forcé mes recherches la dessus mais le seul truc que j'ai essayé qui est la dernière ligne de code, ne fonctionne pas...

Tu dois modifier la valeur du timescale et la mettre à 2.

https://docs.unity3d.com/ScriptReference/Time-timeScale.html

Pour ton problème de mois : Une fois que tu as dépassé 28512000 millisecondes, tu es en janvier de l'année 1940. Le problème, c'est que lorsque tu seras l'année prochaine, le nombre de millisecondes sera forcément supérieur à celui de l'année 1940. Mais ton code affiche décembre si le nombre de millisecondes est supérieur à 28512000.

Tu auras des problèmes à gérer les années bissextiles, et d'autres trucs, je te conseille donc d'utiliser un objet DateTime.
https://msdn.microsoft.com/en-us/library/system.datetime%28VS.80%29.aspx
Chaque seconde passée dans Unity, tu l'ajoutes à ton objet:
DateTime dateTime = new DateTime(1940, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); dateTime = dateTime.AddSeconds(1);
(non testé)

(Et comme ça c'est plus simple pour doubler la vitesse. :noel:

Pour connaître la date, le mois etc... C'est super simple, il y a des méthodes. :ok:

TheRealMarco
Niveau 10
01 juillet 2018 à 13:44:43

Le 30 juin 2018 à 23:35:45 LarryLuckMan a écrit :
mais je ne comprends toujours pas comment faire pour que les mois se nomment octobre décembre etc et non 1, 2 ...

date.ToString("MMMM", CultureInfo.InvariantCulture);
Pseudo supprimé
Niveau 6
10 juillet 2018 à 00:04:13

Bonjour tout le monde !
J'ai un problème de texture, on dirait qu'elles sont bizarre et en miroir voire bugué...
Voici l'image :
https://www.noelshack.com/2018-28-2-1531173608-img.png
Merci ! Bon développement !

Pseudo supprimé
Niveau 6
11 juillet 2018 à 12:16:44

Voilà je cherchai le mot, elles sont vitreuses

Liven28
Niveau 5
11 juillet 2018 à 12:36:02

Un truc qui pourrait nous aider à t'aider serait de nous montrer la texture elle même pour qu'on puisse se rendre comte de ce qu'elle devrait donner.
Les paramètres de la texture (et du matériau tant qu'à faire) serait aussi bien venus.
Aller, fait chauffer ta touche impr ecran

Pseudo supprimé
Niveau 6
13 juillet 2018 à 00:39:21

Salut ! ça remarche, enfaite dans l'éditeur elles sont vitreuses mais quand je joue, totalement normal.
Merci ! Bon développement !

thelastofus2
Niveau 29
18 juillet 2018 à 21:36:23

Salut,
C'est quoi vos solutions dans Unity 2D pour éviter que le joueur se coince sur un mur lorsqu'il saute et se dirige vers le mur ? J'avais fait un truc pour empêcher le joueur d'aller vers le mur pour éviter qu'il se coince (quand je détecte un mur et que je suis en plein saut), mais je voulais faire un truc plus propre.
J'ai vu qu'on pouvait gérer ça avec les frictions, seulement si on met la friction du mur à 0 pour éviter que le joueur se coince, on glisse sur ce mur quand on essaye de se poser dessus (normal). Et la solution avec des edges Collider 2D pour les côtés avec une friction 0 et un pour la surface du mur avec une friction normale (5 par exemple) ne fonctionne pas non plus parce que :
-Soit on imite un box collider 2D avec 3 edge collider 2D, mais le joueur peut quand même se coincer dans le mur quand il atteint le niveau du edge collider 2D avec friction à 5
-Soit on essaie de ne pas faire comme un box collider 2D, et le edge collider avec friction 5 est un peu décalé de façon à ne pas dépasser du mur, seulement on peut parfois se coincer entre les autres edge colliders à friction 0.

Puis il y a aussi la solution de mettre un collider pour les pieds à friction 5, et un pour le corps à friction 0, mais quand je fais ça, étrangement ça bug beaucoup. C'est à dire que je traverse certaines plateforme quand j’atterris dessus et je reste bloqué.

J'ai aussi essayé de changer la friction de la hitbox du joueur dynamiquement, en fonction de si on est dans les airs ou pas, mais ça ne marche pas. J'ai l'impression que ça met un certain temps à changer la friction, et du coup je me retrouve à glisser sur le sol (de temps en temps).

Liven28
Niveau 5
18 juillet 2018 à 22:35:57

C'est curieux, à une époque j'ai rencontré ce problème, mais cela ne concernait que des éléments pas parfaitement verticaux (donc pas des murs).

Si tes murs ne sont pas droit, ça vaut peut être la peine de les redresser.

Sinon pour régler ce problème (dans une grotte en occurrence), j'avais fait un système pour checker l'angle de la normale de la surface avec laquelle le player était en contact. Si cet angle indiquait que j'étais sur une pente trop raide, j'appliquais une petite force (ou un petit décalage) dans le sens opposé à l'obstacle pour en "décoller" le player.

PS : sinon en checkant vite fait sur ce que j'avais fait à l'époque , je vois aussi que je changeais la valeur de ma "slope limte" sur le "caractere controler" pendant les sauts : au sol j'étais à 90 (les côtes étaient gérées autrement) et en l'air à 45. Par contre je ne sais plus trop pourquoi, mais peut être que si tu trouve pas ta solution tu peux creuser au niveau de la "slope limite"

thelastofus2
Niveau 29
19 juillet 2018 à 10:27:53

Le 18 juillet 2018 à 22:35:57 Liven28 a écrit :
C'est curieux, à une époque j'ai rencontré ce problème, mais cela ne concernait que des éléments pas parfaitement verticaux (donc pas des murs).

Si tes murs ne sont pas droit, ça vaut peut être la peine de les redresser.

Sinon pour régler ce problème (dans une grotte en occurrence), j'avais fait un système pour checker l'angle de la normale de la surface avec laquelle le player était en contact. Si cet angle indiquait que j'étais sur une pente trop raide, j'appliquais une petite force (ou un petit décalage) dans le sens opposé à l'obstacle pour en "décoller" le player.

PS : sinon en checkant vite fait sur ce que j'avais fait à l'époque , je vois aussi que je changeais la valeur de ma "slope limte" sur le "caractere controler" pendant les sauts : au sol j'étais à 90 (les côtes étaient gérées autrement) et en l'air à 45. Par contre je ne sais plus trop pourquoi, mais peut être que si tu trouve pas ta solution tu peux creuser au niveau de la "slope limite"

Ok merci je vais investiguer à ce niveau. J'ai pas d'angle autre que droit pour l'instant, mais je pense au moins faire des angles de 45 degrés.

GriendLuck
Niveau 1
21 juillet 2018 à 18:41:24

Bonjour.
Tout d'abord je tiens a précisé que je suis sur unity 2D et microsoft visual studio.
Je suis un train re régler quelque bug sur mon jeu et j'ai rencontré un problème après en avoir résolu un autre. Ce problème étant que lorsque je tire avec mon gameobject son bullet trail ne se manifeste plus du a la collision de son collider 2d j'ai deja essayer de différencier le gameobject avec le tag et le layer pour le mettre en not to hit mais mon problème persiste.
Si quelqu'un a deja rencontrer se problème s'il vous plais contacté moi.
Merci de votre compréhension et bonne journée.

TheRealMarco
Niveau 10
21 juillet 2018 à 19:25:01

Dur de te répondre avec si peu d'informations.
Le bullet trail a vraiment besoin d'un collider ? J'imagine que quand tu tires, une balle part, elle doit avoir une collision, le trail suit la balle mais n'a pas besoin de collision lui...

GriendLuck
Niveau 1
22 juillet 2018 à 00:32:16

j'ai réuni les 2 ensembles et je n'ais pas mis de collider sur mon bulet j'ai juste mis un responcer pour qu'il puisse fonction meme avec A*.
Menfin je viens de trouver l'érreure enfin j'imagine que c'est sa ... j'espère.
Quand mon awake a fini j'ai mon spawner qui fait spawner 2 gameobject en même temps sauf que je ne trouve point le probleme.
Merci bonne soirée.

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