Pour les scripts écrits en C#
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
-
Max
- Messages : 8772
- Inscription : 30 Juil 2011 13:57
-
Contact :
Message
par Max » 24 Août 2019 17:06
personnellement, je partirais sur un code genre celui listé ci-dessous (écrit from scratch). A tester.
La fonction
OnDrawGizmos est là pour une application directe dans l'éditeur.
(le scale du plane à 1)
Code : Tout sélectionner
[ExecuteInEditMode]
public class DecalTerrain2 : MonoBehaviour
{
[SerializeField]
private Terrain terrain;
[SerializeField]
private float delta = 0.15f;
private Mesh mesh;
private Vector3[] vertices;
// Start is called before the first frame update
void Start()
{
mesh = GetComponent<MeshFilter>().mesh;
vertices = mesh.vertices;
ChangeHeight();
}
// adapte la composante Y du plane
void ChangeHeight()
{
Vector3 v;
for (var i = 0; i < vertices.Length; i++)
{
Vector3 vpos = v = vertices[i];
vpos += transform.position;
v.y = terrain.SampleHeight(vpos) + delta - transform.position.y + terrain.transform.position.y;
vertices[i] = v;
}
mesh.vertices = vertices;
mesh.RecalculateBounds();
mesh.RecalculateNormals();
}
void OnDrawGizmos()
{
ChangeHeight();
}
}
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
-
Nathrel
- Messages : 14
- Inscription : 29 Juin 2019 11:41
Message
par Nathrel » 24 Août 2019 23:44
Le souci reste le même, celui ci fonctionne que sur le Plane, et le mesh Collider au lieu d'etre sous le terrain se retrouve au dessus,et non à l'emplacement où se calle le Plane.
Car dans mon fonctionnement, je comptais creer une zone de récolte (en cercle) où tout les GameObject d'un certain tag serait référencer par le Collider Enter de cette zone.
-
Max
- Messages : 8772
- Inscription : 30 Juil 2011 13:57
-
Contact :
Message
par Max » 25 Août 2019 10:08
Bonjour,
Pour avoir la forme que tu souhaites (un cercle par exemple), il ne faut pas jouer sur le mesh, mais sur la texture que tu vas appliquer. Idem pour le collider, qui je pense va servir de Trigger pour une détection de zone (sinon aucun intérêt d'en mettre un, le collider du terrain est la pour cela). Donc tu ajoutes après par exemple une SphereCollider, dont tu ajustes les valeurs:
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
-
Nathrel
- Messages : 14
- Inscription : 29 Juin 2019 11:41
Message
par Nathrel » 26 Août 2019 14:03
Pour le Collider c'est exactement ce qu'il me faut, en revanche je n'ai pas bien compris la partie où je ne dois pas jouer sur le mesh mais sur la texture que je dois appliquer, il faut que j'ajoute un composant a mon Plane? Masquer quelque chose ?
Merci
-
Max
- Messages : 8772
- Inscription : 30 Juil 2011 13:57
-
Contact :
Message
par Max » 26 Août 2019 17:16
Nathrel a écrit : ↑26 Août 2019 14:03
je n'ai pas bien compris la partie où je ne dois pas jouer sur le mesh mais sur la texture que je dois appliquer, il faut que j'ajoute un composant a mon Plane? Masquer quelque chose ?
C'est au niveau du material de ton plane que cela se passe. Niveau shader tu passes par exemple en Cutout et tu choisis la texture qui te convient (avec une partie donc transparente).
Niveau doc ->
StandardShaderMaterialParameterRenderingMode et
TransparentCutoutFamily
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
-
Nathrel
- Messages : 14
- Inscription : 29 Juin 2019 11:41
Message
par Nathrel » 06 Sep 2019 20:10
Merci !
En revanche j'ai remarqué que quand je changé le scale de mon plane (et qu'il depasse 1) il ne prend pas bien la forme du terrain et passe en dessous. Tu saurai d'où cela peut venir?
Merci encore
-
Max
- Messages : 8772
- Inscription : 30 Juil 2011 13:57
-
Contact :
Message
par Max » 06 Sep 2019 20:31
Bonsoir,
Nathrel a écrit : ↑06 Sep 2019 20:10
En revanche j'ai remarqué que quand je changé le scale de mon plane (et qu'il depasse 1) il ne prend pas bien la forme du terrain et passe en dessous. Tu saurai d'où cela peut venir?
Normal, tu dois adapter le calcul en fonction du scale de ton plane si celui-ci n'est plus uniforme et n'est plus égale à 1.
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