[DB-AL] Quadrillage en 3D à la Minecraft mais avec des petits cube

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Zenden
Messages : 6
Inscription : 11 Mars 2018 12:51

[DB-AL] Quadrillage en 3D à la Minecraft mais avec des petits cube

Message par Zenden » 15 Mai 2019 22:30

Salut, j'ai fait une verison simple d'une système de construction d'un jeu en voxel ( Comme Starmade ) mais quand je pose un petit bloc sur un grand j'ai des soucis pour arrondir la valeur.

Comme vous pouvez le voir sur l'image, le cube dissident c'est le bleu.

_blocKPosRound = 0.0625

Scale of little cube is 0.125f

Scale of the big cube is 0.5f

Code : Tout sélectionner

if(Input.GetMouseButtonDown(1))          
            {
                GameObject fBlock = Instantiate(selectedBlock,Vector3.one,hit.transform.rotation);
                float roundT = hit.transform.lossyScale.x;
 
                Debug.DrawRay(cam.transform.position,point,Color.red,10f);
 
                print("Valeur AB : " + point.x);
                print("Valeur 1 : " + Mathf.Round(point.x));
                print("Valeur 2 : " + Mathf.Round(point.x / _blocKPosRound));
                print("Valeur 3 : " + Mathf.Round(point.x / _blocKPosRound)  * _blocKPosRound);
 
               
 
               
                Vector3 _position = new Vector3(
                Mathf.Round(point.x / _blocKPosRound) * _blocKPosRound,
                Mathf.Round(point.y / _blocKPosRound) * _blocKPosRound,
                Mathf.Round(point.z / _blocKPosRound) * _blocKPosRound);
 
                fBlock.GetComponent<Renderer>().material.color = Random.ColorHSV();
 
 
                fBlock.transform.position = _position;
 
 
            }

Image


Merci.

zebilamouche
Messages : 38
Inscription : 17 Juin 2016 20:34

Re: [DB-AL] Quadrillage en 3D à la Minecraft mais avec des petits cube

Message par zebilamouche » 16 Mai 2019 10:13

Salut,

je t'avoue ne pas complètement comprendre ton problème. En effet, le cube bleu n'est pas alligné par rapport aux autres, mais que veux tu faire exactement ?
Tu veux que le petit cube soit posé au centre de la surface du gros ? Dans ce cas la position est presque la même que le gros, puisque son point de pivot se trouve au centre, il te suffit juste dans changer un seul axe pour que ton petit cube soit à la surface du gros.

Zenden
Messages : 6
Inscription : 11 Mars 2018 12:51

Re: [DB-AL] Quadrillage en 3D à la Minecraft mais avec des petits cube

Message par Zenden » 17 Mai 2019 13:08

Salut, mon script fait que je pose automatiquement le bloc mais je veux qu'il puisse être centré par apport aux autres cubes.

Par exemple, en "X" les positions de la première ligne sont en parlent de la droite :

0.1875
0.0625
-0.0625
-0.1875

j'ai donc une différence de 0.125 à chaque fois sauf quand je passe de 0.0625 à -0.0625. Maintenant ce que je cherche c'est comment directement passer par ces valeurs la sans me retrouver avec des valeurs entre deux.

Répondre

Revenir vers « (C#) CSharp »