Unity3D Physics2D отключить деформацию - PullRequest
2 голосов
/ 18 марта 2019

Я пытаюсь использовать Physics2D в Unity и просто размещать блоки друг над другом.Настройка моего проекта:

У меня спрайт в качестве пола с коллайдером Box2D.У меня есть префаб, который также является спрайтом со шкалой 1,5 x 0,5 x 1, а также коллайдером коробки и жестким телом 2D.

Что я делаю, так это размещаю блоки друг над другом на одной оси x:мой код:

public GameObject testInstance; //Prefab Box
public float m_fSpawnY = -3.1f; //Start Y for first box
public float m_fSpawnYAdd = 0.5f; //for next box


// Update is called once per frame
void Update()
{
    if (Input.GetKeyDown(KeyCode.N))
    {
        Instantiate(testInstance, new Vector3(0, m_fSpawnY , 0), Quaternion.identity);
        m_fSpawnY += m_fSpawnYAdd ;
    }
}

Теперь моя проблема в том, что чем больше я добавляю блоков, тем больше «сжатых» объектов ниже, что может быть правильным для реальной физики, но для моего варианта использования я бы хотелполностью отключить деформацию, потому что строительная башня становится нестабильной, чем больше я ставлю сверху.

Можно ли как-то деактивировать деформацию?Я пытался использовать Physics Material 2D, но он только дает трение и упругость, но я установил bucyness на 0, и это не имеет никакого эффекта.

Спасибо и наилучшими пожеланиями

1 Ответ

2 голосов
/ 18 марта 2019

Вы можете решить эту проблему, изменив некоторое значение в настройках вашего проекта, в основном «итерации скорости» и «итерации положения». Это будет потреблять больше ресурсов, но будет генерировать более точный ход и, следовательно, меньше «подпрыгивать». Вы должны поиграть с этим значением, чтобы найти то, что лучше всего подходит для вашего проекта.

Я думаю, что это побочный эффект "частоты дискретизации", при которой вычисляется физика, приводящая к небольшому перекрытию объекта и затем отклоняемая, создавая этот эффект бодрости. чем выше ваша «частота дискретизации», тем точнее обнаружение столкновений, но используется больше ресурсов.

...