Page 1 sur 1

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

Publié : 15 Mai 2019 22:30
par Zenden
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.

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

Publié : 16 Mai 2019 10:13
par zebilamouche
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.

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

Publié : 17 Mai 2019 13:08
par Zenden
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.