[RESOLU] Charger un Physical material

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
ced_le_dingue
Messages : 53
Inscription : 29 Oct 2019 21:58

[RESOLU] Charger un Physical material

Message par ced_le_dingue » 21 Sep 2020 02:32

Salut les copains,

Dans un script, j'ai crée un cube, et je souhaite lui assigner un Physical material que j'ai déjà crée (et qui s'appelle "Rebond") mais je n'y arrive pas.

Voilà ma hiérarchie:
Image
(bon par contre j'ai pas pensé à faire un dossier PhysicalMaterial au debut de mon projet, c'est pour ça que dans mon script je vais chercher dans mon dossier "Material" au lieu de "PhysicalMaterials")

Et voici le script avec lequel j'essaye de réccupérer mon "Rebond":
(ma pièce2 a déjà un box collider, raison pour laquelle je n'en crée pas un)

Code : Tout sélectionner

	GameObject piece2;
        piece2 = GameObject.CreatePrimitive(PrimitiveType.Cube);

        //ajout de la physique
        piece2.AddComponent<Rigidbody>();
        piece2.GetComponent<Rigidbody>().mass = 3f;

	// Voici les façons différentes que j'ai essayé (il en faut qu'une seule bien entendu, mais  		 
        // c'est pour vous montrer ce que j'ai essayé:
        var mat = Resources.Load<PhysicMaterial>("Materials/Rebond");
        var mat = Resources.Load<PhysicMaterial>("Assets/Materials/Rebond");
        var mat = Resources.Load<Material>("Assets/Materials/Rebond");

        piece2.GetComponent<BoxCollider>().material = new PhysicMaterial(mat.name);
        piece2.GetComponent<BoxCollider>().material = (PhysicMaterial)Resources.Load("Materials/Rebond");
Pour toutes ces façons, Unity ne me met aucune erreur, seulement quand je lance le jeu et que je vais voir dans le material de ma Box Collider, il n'y a rien :cry:

Sauriez vous comment faire? Merci à vous :gene3:
Dernière édition par ced_le_dingue le 22 Sep 2020 14:07, édité 1 fois.

Avatar de l’utilisateur
jmhoubre
Messages : 273
Inscription : 05 Oct 2019 22:05

Re: Charger un Physical material

Message par jmhoubre » 21 Sep 2020 11:09

Bonjour,
tu t'embêtes bien avec la création de ton cube par script. Pourquoi ne pas faire un prefab ? Tu crées ton cube, tu lui mets le matériau physique, c'est plus simple.

ced_le_dingue
Messages : 53
Inscription : 29 Oct 2019 21:58

Re: Charger un Physical material

Message par ced_le_dingue » 21 Sep 2020 11:18

Salut Jm,

Non je ne peux pas passer par des prefabs car je modifie la taille de mon objet dynamiquement (cet objet fait partie d'une boucle qui crée des objet à la place de plus gros, en guise de particules pour une explosion, et la taille de ces particules sera variable).

Du coup tu as une idée de comment je peux faire pour lui attribuer un phyisical material déjà existant? :gene:

Merci à toi : :gene3:

Avatar de l’utilisateur
jmhoubre
Messages : 273
Inscription : 05 Oct 2019 22:05

Re: Charger un Physical material

Message par jmhoubre » 21 Sep 2020 11:40

Bonjour,

je viens de le faire, c'est enfantin. As-tu lu la documentation des ressources ou celle du dossier Resources ? Cette dernière te renvoie sur le guide de bonnes pratiques, dans lequel je note ceci :
* We now recommend using Addressables for your projects ;
* Best Practices for the Resources System : Don't use it.

Cela me semble assez clair.

Par ailleurs, si tu instancies un prefab, tu peux modifier sa taille dynamiquement, cela n'est pas un problème.

ced_le_dingue
Messages : 53
Inscription : 29 Oct 2019 21:58

Re: Charger un Physical material

Message par ced_le_dingue » 21 Sep 2020 11:51

Ah mince... oui en effet je peux modifier aussi leur taille... Je vais faire comme tu as dit et passer par des prefabs alors, désolé d'avoir été réfractaire... Et j'avais pas vu ces conseils donnés sur le site même de Unity qui te déconseille d'utiliser les ressources, c'est fou haha, pourquoi l'ont ils integré alors si ils ne conseillent pas de l'utiliser à cause des problèmes que ça peut créer?!!? :happy1: :shock:

(nb: j'avais vu cette documentation là mais comme c'était pas exactement ce que je voulais, j'ai adapté ce que j'avais vu)

Merci beaucoup Jm

Avatar de l’utilisateur
jmhoubre
Messages : 273
Inscription : 05 Oct 2019 22:05

Re: Charger un Physical material

Message par jmhoubre » 21 Sep 2020 12:05

Sinon, il faut mettre ton matériau dans un dossier nommé "Resources", sinon, cela ne fonctionnera pas. Lee dossier peut être n'importe tout dans Assets, et exister en plusieurs exemplaires.
Et pourquoi tu n'utilises pas un système de particules ? J'avoue que cela m'intrigue un peu...

Pourquoi Unity conserve les ressources ? Je pense que c'est pour conserver une compatibilité avec les anciennes versions. Unity est maintenant une construction gigantesque, et maintenir l'édifice en état de marche est déjà une prouesse, et en plus il faut également faire fonctionner tous les anciens projets. Franchement, je leur tire mon chapeau...

ced_le_dingue
Messages : 53
Inscription : 29 Oct 2019 21:58

Re: Charger un Physical material

Message par ced_le_dingue » 21 Sep 2020 13:04

Ouai grave, ce logiciel est vraiment complexe alors continuer tout en preservant la compatibilité est incroyable c'est vrai.

Je n'ai pas utilisé un système de particule, car ça je ne pensais pas pouvoir arriver à ce résultat que j'obtiens avec mon script:

Image

Penses tu qu'on peut faire la même chose avec Particules? ie génerer des particules de cubes?

Avatar de l’utilisateur
jmhoubre
Messages : 273
Inscription : 05 Oct 2019 22:05

Re: Charger un Physical material

Message par jmhoubre » 21 Sep 2020 13:12

Refaire ce que tu fais, je ne sais pas.
Mais on peut faire des particules cubiques.

ced_le_dingue
Messages : 53
Inscription : 29 Oct 2019 21:58

Re: Charger un Physical material

Message par ced_le_dingue » 21 Sep 2020 14:11

Ok cool, je vais regarder ça alors, merci ;)

Avatar de l’utilisateur
jmhoubre
Messages : 273
Inscription : 05 Oct 2019 22:05

Re: Charger un Physical material

Message par jmhoubre » 21 Sep 2020 16:13

Re,
j'ai fait une tentative, je pense que c'est plutôt bien, si on considère que je n'ai que ton Gif pour me guider. Le 2ème essai essaie de montrer quelques possibilités du système, mais je ne suis pas sûr que cela se voit bien sur la vidéo.
Il faut être patient, et parcourir les dizaines de paramètres des modules intéressants, mais c'est très personnalisable, et la documentation est assez complète.
ServImg ne prenant pas les vidéos, j'ai mis la vidéo de mes essais sur mon drive, j'espère qu'elle sera accessible, quand Google aura fini de la traiter.

Bon courage

Répondre

Revenir vers « Scripting »