Envoyé par
Mat.M
je parlais de l'algorithme; créer la hiérarchie l'auteur de ce message est capable de le faire.
Négatif chef:
Envoyé par
Mat.M
vi ça c'est l'énoncé du problème mais encore faut-il trouver la logique pour créer une hiérarchie entre les objets...
Bon
*se sors un doigt du c** car oui je suis un glandeur*
Timer (XX minutes . XX secondes):
00.00 je commence par lancer unity et je vais voir sur developpez le topic pour déplacer un cube
01.00 topic trouvé car il est encore dans le top 10 des sujets unity, je regarde un peu la conversation et je copie le code (merci @ PixelJuice au passage donc)
01.30 j'ai pris mon projet 3D random pour faire mes tests, j'ai fais un nouveau script C# et je copie le code dedans
05.00 j'essaye de comprendre le code et je le test en créant un cube de base.
J'avoue que moi non plus j'aurais jamais trouvé ce code moi même je pense ou avec pas mal de recherche, c'est de la magie mais cela fonctionne!
Même si j'ai un niveau en prog beaucoup plus bas que beaucoup sur ce site (vous êtes dans les étoiles pour moi quand je vois les discussions techniques), je suis pas totalement à la ramasse et j'arrive facilement à identifier ce qui fait bouger le cube (faut pas être un devin non plus vous me direz hein)
movingObject.transform.position = ray.GetPoint(rayDistance) + positionZero;
05.10 j'ai créé mon empty parent et mis 2 cubes dedans
05.40 je réfléchie à comment mettre en place ma solution dont je parlais (les cubes dans un GO et on fera bouger le GO ce qui fera bouger automatiquement tous les cubes dedans)
05.45 c'est parti pour tester: je modifie le script et comme je suis une feignasse je fait une var en public pour la glisser dans l'inspector
05.53 je mets la ligne de code qui fait bouger en commentaire et je rajoute mon test
1 2
| //movingObject.transform.position = ray.GetPoint(rayDistance) + positionZero;
Toto.transform.position = ray.GetPoint(rayDistance) + positionZero; |
06.03 je glisse mon parent dans toto, je test et cela semble bien réagir, mes 2 cubes bougent en même temps
06.13 j'attache le script au deuxième cube, je test et idem cela semble bien réagir sauf une "téléportation" des cubes des fois quand je les sélectionne
06.45 en réfléchissant c'est surement le décalage d'origine entre mes cubes et le parent qui font cette "téléportation" car bon PixelJuice n'a pas fait son code d'origine pour cette application , il faudrait garder en mémoire/calculer l'offset pour l'inclure dans le calcul de déplacement
07.05 après un essai complètement foiré je trouve ou rajouter un petit log pour la vidéo que je vais faire pour bien voir quand je sélectionne un cube ou l'autre à cet endroit du code:
1 2
| movingObject = hit.transform.gameObject;
Debug.Log("GO selectionné: " + hit.transform.gameObject.name); |
07.25 tout à l'air de bien tourner, bon bin je me prépare psychologiquement
07.30 *commence à se sortir un deuxième doigt du c** pour régler le souci d'offset... oué mais nan faut pas abuser*
petite vidéo du résultat, au final j'ai tester d'autre truc et surement un peu sous estimer mes temps, on va partir sur x2 soit 15min au total:
J'ai passé quand même plus de temps à faire ce message et régler bandicam que j'utilise 2 fois par ans que de chercher et tester sur unity
Après comme toujours faut voir ce que julius1983 a vraiment en tête et il y a 90% de chance qu'il reformule 10 fois sa demande mais voila quoi, avec le code magique de PixelJuice et un peu de connaissance d'unity c'est pas la fin du monde je pense mais tout comme moi faut se sortir un peu les doigts sinon il avancera jamais en attendant qu'on lui fasse tout
A bon entendeur
Partager