IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Unity Discussion :

Création dynamique d'objets dans un niveau


Sujet :

Unity

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Points : 52
    Points
    52
    Par défaut Création dynamique d'objets dans un niveau
    Bonjour à tous,

    Je dois insérer des objets prefabs dynamiquement dans mon niveau (selon un tableau deux dimension qui contient des valeurs entières.

    J'aimerais donc arranger les objets de façons qu'ils soient également placés dans mon espace de jeu. Pour une raison que j'ignore, j'ai un script qui prends en charge cette tache, mais tous les objets apparraissent à l'extérieur de la zone visible

    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    
    [FONT=Monospace]usingUnityEngine;
    usingSystem.Collections;
    
    publicclasssetLevel : MonoBehaviour {
    
    publicGameObjecttiles;
    constintmaxTilesX = 15;
    constintmaxTilesY = 6;
    boolhasDisplayed;
    
    int[,] tableau = newint[6,15] { {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
                                        ,{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
                                        ,{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
                                        ,{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
                                        ,{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
                                        ,{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}};
    
    //Usethisforinitialization
    voidStart () {
    
    hasDisplayed = false;
        }
    
    //Updateiscalledonceperframe
    voidUpdate () {
    if (hasDisplayed == false) {
    GameObjectsceneCamObj = GameObject.Find( "SceneCamera" );
    if ( sceneCamObj != null )
              {
    drawLevel(sceneCamObj.GetComponent<Camera>());
              }
    hasDisplayed = true;
           }
        }
    
    voiddrawLevel(CamerasceneCamera) {
    intscreenWidth = sceneCamera.pixelWidth;
    intscreenHeight = sceneCamera.pixelHeight;
    Debug.Log ("Screen Width = " + screenWidth + "\nScreen Height = " + screenHeight);
    
    intobjectWidth = (screenWidth - 20) / maxTilesX;
    intobjectHeight = (screenHeight - 20) / maxTilesY;
    Debug.Log ("Object Width = " + objectWidth + "\nObject Height = " + objectHeight);
    
    for (inti=0; i < maxTilesY; ++i) {
    for (intj=0; j < maxTilesX; ++j) {
    if (0 < tableau[i,j]) {
    Instantiate(tiles, newVector2(j*objectWidth,i*objectHeight),Quaternion.identity);
    Debug.Log("Line:" + j + ", Column:" + i + ",    position(" + j*objectWidth + "," + i*objectHeight + ")");
                    }
                }
            }
    
        }
    }[/FONT]
    Pourtant, ce qui sort des logs semblent bon. Je suis un peu embêté. Prenez-note que j'en suis environ a ma 30e ligne de code avec unity... Soyez indulgent!

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    salut

    1-quel techno(s) quelle middleware ?

    Apparemment c'est Unity si c'est le cas il faudrait préciser merci

    2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    intobjectWidth = (screenWidth - 20) / maxTilesX;
    intobjectHeight = (screenHeight - 20) / maxTilesY;
    est-ce que tu peux faire du déboguage pas-à-pas ?
    Pour voir si les valeurs sont cohérentes ?
    J'aimerais donc arranger les objets de façons qu'ils soient également placés dans mon espace de jeu. Pour une raison que j'ignore, j'ai un script qui prends en charge cette tache, mais tous les objets apparraissent à l'extérieur de la zone visible
    c'est peut-être l'objet Camera sceneCamera qui est mal paramètré


    http://docs.unity3d.com/ScriptReference/Camera.html

    Il faut peut-être définir la matrice de projection ,le champs de visualisation fieldofView regarder si tout cela est cohérent

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Points : 52
    Points
    52
    Par défaut
    C'est en effet sous unity.. Merci pour l'information, je vais y jeter un oeil plus tard ☺️

Discussions similaires

  1. création dynamique d'onglets dans d'autres onglets
    Par chourmo dans le forum Delphi
    Réponses: 4
    Dernier message: 18/07/2006, 12h12
  2. Création dynamique de TMemo dans un thread ?
    Par MaTHieU_ dans le forum Delphi
    Réponses: 2
    Dernier message: 07/07/2006, 12h35
  3. Création dynamique d'objets ?
    Par Arthur A. dans le forum C++
    Réponses: 6
    Dernier message: 15/06/2005, 23h55
  4. création dynamique d'objet, projet win32
    Par noinneh dans le forum MFC
    Réponses: 5
    Dernier message: 03/02/2005, 16h07
  5. [Reflexivite]création dynamique d'objet et Héritage
    Par norkius dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 26/10/2004, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo