Есть объект выступающий в роли корпуса. У него есть Mesh Collider, Rigidbody. Mesh Renderer'a нету. Этот объект является родителем для двух объектов-частей у которых есть только Mesh Filter и Mesh Renderer. Есть скрипт который висит на главном объекте-корпусе. Когда главный объект падает с высоты на пол, то в точках соприкосновения сдвигаются вершины, то есть происходит деформация. Я делаю так, что когда главный объект ударился, то деформация применяется к тем объектам - частям, а у главного объекта изменяется только Mesh Collider.
Проблема в том, что при столкновении как на скриншоте:
Должно получится вот так:
А получается вот так:
Скрипт:
Код
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class DeformationParts : MonoBehaviour {
public MeshFilter[] deformMeshes; Mesh[] meshes; public float minVelocity = 5f; public float deformRadius = 0.5f; public float multiply = 0.05f;
void Start () { meshes = new Mesh[deformMeshes.Length];
for (int i = 0; i < deformMeshes.Length; i++) { meshes[i] = deformMeshes[i].mesh; } }
Добавлено (22 Августа 2018, 10:19) --------------------------------------------- Вобщем это мне нужно для того чтобы сделать деформацию машины. Для этого нужно взять целый мешь машины, по нему сделать Mesh Collider, сам этот мешь сделать невидимым, и при столкновениях менять отдельные меши бамперов, капотов и т.д. А у этих мешей Mesh Collider'ов нету. При деформации менять меши отдельных частей, и Mesh Collider машины менять по изменениям этих отдельных мешей. Красочная сюжетно-ориентированная игра-головоломка
Сообщение отредактировал vampir0305 - Среда, 22 Августа 2018, 10:19