Я создавал симуляцию, включающую вращающийся барабан, который должен проходить go через грубую почву. Чтобы смоделировать это, я сделал проект в Unity и импортировал этот CAD-дизайн барабана и добавил кучу сфер для грязи. Затем я добавил в барабан коллайдер me sh, коллайдеры сферы - в грязь, а твердые тела - во все. Я также включил непрерывное динамическое обнаружение столкновений c как на грязи, так и на барабане, и позаботился о том, чтобы включить isTrigger и isKinemati c в обоих. Но всякий раз, когда я запускаю сим, возникает одна и та же проблема: сферы просто go прямо через барабан, и я ничего не могу сделать, чтобы это исправить. Я пытался посмотреть на другие темы, но все эти решения не работают. Могу ли я получить помощь? Спасибо.
Изображение барабана перед столкновением с шарами
Изображение барабана в центре сфер, ничто не мешает
Изображение компонентов на вращающемся барабане
Изображение компонентов на сферах (Все они имеют одинаковую настройку)
код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RotateScript : MonoBehaviour
{
public float thrust = 0.1f;
public float torque = 0.5f;
public Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
rb.AddForce(0, 0, -thrust, ForceMode.Impulse);
}
private void FixedUpdate()
{
float turn = Input.GetAxis("Horizontal");
rb.AddTorque(transform.up * torque * turn);
if(Input.GetKeyDown(KeyCode.W))
{
rb.AddForce(0, 0, (thrust * 2), ForceMode.Impulse);
}
if(Input.GetKeyDown(KeyCode.S))
{
rb.AddForce(0, 0, (-thrust * 2), ForceMode.Impulse);
}
}
}