Вот реализация получения деформации для soft body отсюда можно отталкиваться
Используется csharp
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class SoftBodyTest : MonoBehaviour {
List<GameObject> CubeObject = new List<GameObject>(); // массив частиц
List<Vector3> startPos = new List<Vector3>(); // начальные позиции частиц
int CountObj = 10; // количество частиц
float stifСoef = 1; // коэфициент жесткости
void Start()
{
for (int a = 0; a < CountObj; a++)
{
GameObject TGO = GameObject.CreatePrimitive(PrimitiveType.Cube);
TGO.transform.parent = transform;
TGO.transform.localPosition = new Vector3(a * 3,0,0);
TGO.AddComponent<Rigidbody>().useGravity = false;
TGO.GetComponent<Rigidbody>().freezeRotation = true;
CubeObject.Add(TGO);
startPos.Add(TGO.transform.localPosition);
}
}
void FixedUpdate()
{
for (int a = 0; a < CountObj - 1; a++)
{
Vector3 leiht = startPos[a + 1] - startPos[a];
Vector3 newLeigt = CubeObject[a + 1].transform.localPosition - CubeObject[a].transform.localPosition - leiht;
Vector3 newLeigtA = new Vector3(Mathf.Abs(newLeigt.x), Mathf.Abs(newLeigt.y), Mathf.Abs(newLeigt.z));
Vector3 delenie = Vector3.zero;
if (newLeigtA.magnitude > 0)
{
delenie = newLeigt / newLeigt.magnitude;
}
Vector3 minus = newLeigtA;
Vector3 deformationF = new Vector3(delenie.x * minus.x, delenie.y * minus.y, delenie.z * minus.z) * stifСoef;// деформация * коэфициент жесткости
Vector3 deformationS = deformationF * -1;
if (a != 0)
{
CubeObject[a].transform.localPosition += deformationF / 2;
}
if (a + 1 != CountObj - 1)
{
CubeObject[a + 1].transform.localPosition += deformationS / 2;
}
else
{
CubeObject[a + 1].transform.localPosition += deformationS;
}
}
}
}
эта деформация взята из системы масса-пружина, из этого можно сделать вмятины на машине,
так вот возникли вопросы: как гасить силу, я конечно могу сам расписать все коряво, но может есть метод более изящный. Еще один вопрос: слышал о механике сплошных тел, так вот на сколько затратно это в реал тайме или все же стоит лучше расшаривать систему масса-пружина.