Ich würde den Kegel in Blender zeichnen und als .obj exportieren bzw. in Unity importieren (die Blender Dateien lassen sich auch direkt in Unity öffnen). In Unity kann man auf alles zugreifen, hier im Speziellen auf die Vertices. Diese lassen sich versetzen, was zu einer Deformation des Objektes führt. Das wäre eine Lösung (von vielen), wenn du es mathematisch magst. Ansonsten kann man u.a. in Blender eine Deformation, falls diese bekannt ist, als Animation erstellen und in Unity beliebig (vorwärts, rückwerts, langsam, schnell,... ) mit einem Variablen abspielen.
Anbei ein ungetesteter Codestück der das Vorgehen verdeutlichen soll:
Mesh bart = GameObject.Find("Bart").transform.Find("Cylinder").gameObject.GetComponent<MeshFilter>().mesh;
List<Vector3[]> list_bart_vertices = bart.vertices;
foreach(var vert in list_bart_vertices)
{
vert.x += 0.1 * vert.y; // irgend eine komplexere Gleichung: Konizität = f(h)
}
bart.vertices = list_bart_vertices;









Kommentar