Le but au départ était de reproduire la démo UNITY du "ballon dégonflé" en jouant sur l'option Pressure.
ClothCustomMesh.js
- On drop le script sur l'objet qui vous intéresse.
- le script remplacera la mesh par défaut de l'interactiveCloth par celle de votre objet ou par une primitive
Code : Tout sélectionner
//ajoute les composants nécessaires au bon fonctionnement du script
@script RequireComponent(InteractiveCloth)
@script RequireComponent(ClothRenderer)
var DefaultMesh : PrimitiveType;
var RemoveMeshRenderer : boolean = true;
var RemoveCollider : boolean = true;
function Awake() {
//indique si on va utiliser une MESH par défaut
var useDefaultMesh =(this.GetComponent(MeshFilter)==null);
//indique quel GameObject on va utiliser comme modèle: objet courant ou une primitive (sphere,box,...)
var useObject : GameObject= useDefaultMesh ? GameObject.CreatePrimitive(DefaultMesh) : this.gameObject;
//on copie le modèle si c'est possible
var thisCloth = this.GetComponent(InteractiveCloth);
var thisMeshFilter = useObject.GetComponent(MeshFilter);
if (thisCloth!=null && thisMeshFilter!=null)
{
//copie la forme
thisCloth.mesh=thisMeshFilter.mesh;
//supprime le meshRenderer parce qu'on a déjà le clothRenderer
if (RemoveMeshRenderer && this.GetComponent(MeshRenderer))
Destroy(this.GetComponent(MeshRenderer));
//supprime le collider parce qu'on a déjà la physique de l'interactiveCloth
if (RemoveCollider && this.collider)
Destroy(this.collider);
}
//supprime le GameObject si le modèle est basé sur une primitive
if (useDefaultMesh)
{
Destroy(useObject);
}
}
function Update () {
}