materialTemplate pour les terrains ne fonctionne plus

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
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
Avatar de l’utilisateur
rattle-snake
Messages : 187
Inscription : 23 Jan 2012 23:37

materialTemplate pour les terrains ne fonctionne plus

Message par rattle-snake » 09 Mars 2015 17:37

Bonjour à tous :)

Sous unity 4.5, j'utilisais ce type de code pour charger le material de mon terrain à la volée :

Code : Tout sélectionner

public var terrainObject : Terrain; 
public var terrainMaterial : Material;  

function Update() {    
 
if ( Input.GetMouseButtonDown(0) )  {        
terrainObject.materialTemplate = terrainMaterial;     
}

}
Cependant, en ouvrant mon projet sous unity 5, aucun changement de material ne s'opere...
Quelqu'un aurait-il une solution ? :D

Avatar de l’utilisateur
rattle-snake
Messages : 187
Inscription : 23 Jan 2012 23:37

Re: materialTemplate pour les terrains ne fonctionne plus

Message par rattle-snake » 09 Mars 2015 18:33

Je viens de me rendre compte, que sur la version 5, dans les parametres du terrain, ils ont ajoutés un menu déroulant sur le material :
- Built in Standart
- Built in Legacy Diffuse
- Built in Legacy Specular
- Custom

Manuellement en cliquant sur Custom, je peux importer correctement la texture.
Mais niveau programmation ils ont du changer quelque chose...

Avatar de l’utilisateur
rattle-snake
Messages : 187
Inscription : 23 Jan 2012 23:37

Re: materialTemplate pour les terrains ne fonctionne plus

Message par rattle-snake » 09 Mars 2015 22:02

Yeeeeeees

J'ai finis par trouver en tâtonnant en aveugle lol

Alors en avant première et alors que la doc n'est pas à jour :
http://docs.unity3d.com/412/Documentati ... rrain.html

Pour forcer le type custom il faut mettre :

Code : Tout sélectionner

terrain.GetComponent(Terrain).materialType = 3; // Le 3 correspond au custom
terrain.GetComponent(Terrain).materialTemplate = Resources.Load("NomDuMaterial") as Material; // On injecte le material comme d'habitude
J'espere que cette info pourra servir à quelqu'un :)

Avatar de l’utilisateur
Max
Messages : 8772
Inscription : 30 Juil 2011 13:57
Contact :

Re: materialTemplate pour les terrains ne fonctionne plus

Message par Max » 10 Mars 2015 09:58

remplacer

Code : Tout sélectionner

.materialType = 3; // Le 3 correspond au custom
par

Code : Tout sélectionner

.materialType = Terrain.MaterialType.Custom;
c'est pas mal aussi ;)
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
rattle-snake
Messages : 187
Inscription : 23 Jan 2012 23:37

Re: materialTemplate pour les terrains ne fonctionne plus

Message par rattle-snake » 10 Mars 2015 14:29

Hey Merci Max !!!

Effectivement j'avais le nez dans l'ancienne doc et pas la nouvelle :lol:
Le lien de la nouvelle :)
http://docs.unity3d.com/500/Documentati ... rrain.html

Verrouillé

Revenir vers « (Js) Javascript »