Besoin de conseils graphismes et performances

Toutes les questions sur le développement Mobile, y compris la partie script.
Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Besoin de conseils graphismes et performances

Message par boubouk50 » 28 Sep 2018 13:34

DJ-OMZ a écrit :
28 Sep 2018 12:58
Le message complet :
"Cannot combine mesh that does not allow access: Combined Mesh (root: scene)
UnityEngine.Mesh:CombineMeshes(CombineInstance[])
CombineMeshes:Start() (at Assets/Scripts/CombineMeshes.cs:20)"
Je peux avoir aussi ton code stp? Entier.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
DJ-OMZ
Messages : 129
Inscription : 11 Jan 2017 13:15

Re: Besoin de conseils graphismes et performances

Message par DJ-OMZ » 28 Sep 2018 14:21

Oui j'ai simplement copié le bout de code que j'ai vu dans le lien :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CombineMeshes : MonoBehaviour {

    void Start()
    {
        MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>();
        CombineInstance[] combine = new CombineInstance[meshFilters.Length];
        int i = 0;
        while (i < meshFilters.Length)
        {
            combine[i].mesh = meshFilters[i].sharedMesh;
            combine[i].transform = meshFilters[i].transform.localToWorldMatrix;
            meshFilters[i].gameObject.active = false;
            i++;
        }
        transform.GetComponent<MeshFilter>().mesh = new Mesh();
        transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combine);
        transform.gameObject.active = true;
    }

    // Update is called once per frame
    void Update () {
		
	}
}

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Besoin de conseils graphismes et performances

Message par boubouk50 » 28 Sep 2018 14:29

DJ-OMZ a écrit :
28 Sep 2018 14:21
Oui j'ai simplement copié le bout de code que j'ai vu dans le lien :
Tu te doutes que c'est un exemple et qu'il n'a pas été fait pour ton jeu...
Ça serait bien quand même, arrivé à ce stade de la création de jeu, de comprendre le code. Tu risques de beaucoup ramer sinon.

Je te fais le commentaire:

Code : Tout sélectionner

//Tu récupères tous les MeshFilters (donc le mesh de base) des enfants du GameObject sur lequel ce script est posé
        MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>();
//Création/Initialisation des variables locales
        CombineInstance[] combine = new CombineInstance[meshFilters.Length];
        int i = 0;
        while (i < meshFilters.Length)
        {
//Pour chacun des meshFilters récupérés, on associe les Meshs et le transform puis on masque l'original.
            combine[i].mesh = meshFilters[i].sharedMesh;
            combine[i].transform = meshFilters[i].transform.localToWorldMatrix;
            meshFilters[i].gameObject.active = false;
            i++;
        }
 //On crée un nouveau mesh à partir de la combinaison que l'on affecte au mesh filter du GameObject sur lequel ce script est posé et on l'active
        transform.GetComponent<MeshFilter>().mesh = new Mesh();
        transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combine);
        transform.gameObject.active = true;
    }
Ceci implique que le parent qui possède ce script ait un Component MeshFilter! Surement non vide d'ailleurs. Il va ensuite Combiner TOUS ces enfants.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Besoin de conseils graphismes et performances

Message par Alesk » 28 Sep 2018 14:32

boubouk50 a écrit :
28 Sep 2018 14:29
Ça serait bien quand même, arrivé à ce stade de la création de jeu, de comprendre le code. Tu risques de beaucoup ramer sinon.
:super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super: :super:

Avatar de l’utilisateur
DJ-OMZ
Messages : 129
Inscription : 11 Jan 2017 13:15

Re: Besoin de conseils graphismes et performances

Message par DJ-OMZ » 28 Sep 2018 14:42

boubouk50 a écrit :
28 Sep 2018 14:29
Ceci implique que le parent qui possède ce script ait un Component MeshFilter! Surement non vide d'ailleurs. Il va ensuite Combiner TOUS ces enfants.
J'ai appliqué le script a Foret. Au départ j'avais une erreur, il fallait ajouter un Mesh a Foret.
C'est bien ce que j'ai fait, non vide.
Je lui ai mis un cube, et a l’exécution du jeu, le mesh passe de "cube" a "foret", mais rien de visible.

Merci pour les commentaires mais j'avais bien compris le code, c'est pour ça que je l'ai appliqué a mon empty GameObject Foret ce script et que je lui ai ajouté un mesh.

Est-ce que je passe a coté de quelque chose qui vous est évident ? Pourquoi rien n'apparait ? :-/

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Besoin de conseils graphismes et performances

Message par boubouk50 » 28 Sep 2018 15:34

Un scale peut-être?
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Besoin de conseils graphismes et performances

Message par Alesk » 28 Sep 2018 15:35

Tu n'as aucun autre message d'erreur ?
Un arbre contient combien de vertices, et combien de clones fais-tu au total ?

Avatar de l’utilisateur
DJ-OMZ
Messages : 129
Inscription : 11 Jan 2017 13:15

Re: Besoin de conseils graphismes et performances

Message par DJ-OMZ » 28 Sep 2018 20:42

boubouk50 a écrit :
28 Sep 2018 15:34
Un scale peut-être?
Un Mesh Renderer :? :? :? :? :? :? :? :? :? :? :?

Oh j'ai honte :gene:

Par contre il faut ajouter un Material, et donc comme disait boubouk50 plus tôt, lier chaque mesh ayant le même material, mais ça reste une opti énorme.

Merci beaucoup pour votre aide.
Une petite question quand-même : Y a-t-il un moyen de faire une opti sur un objet animé ?
Par exemple, je reprend ma foret mais je veux mettre une petite animation sur les feuilles, du coup je peux plus utiliser le combine meshes ?

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Besoin de conseils graphismes et performances

Message par boubouk50 » 01 Oct 2018 09:06

Tu crées un nouveau mesh à partir d'autres, l'animation ne saura pas retrouver les bons sommets à animer.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
DJ-OMZ
Messages : 129
Inscription : 11 Jan 2017 13:15

Re: Besoin de conseils graphismes et performances

Message par DJ-OMZ » 01 Oct 2018 12:00

D'accord donc du coup si j'ai des animations, je n'utilises pas le Combine Meshes...
Mais il existe un moyen de faire une opti sur les animations ? Si je sais que je vais avoir 10 objets identiques et tous animés...

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »