Re: Création d'une zone en surbrillance
Publié : 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)
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();
}
}