머터리얼
개요
모든 PhysicsBody에는 PhysicsMaterial(Quantum 데이터 에셋)이 필요합니다. PhysicsMaterial은 물리 엔진이 충돌, 힘과 속도의 통합을 해결하는 데 필요한 속성을 가지고 있습니다.
PhysicsMaterial 데이터-에셋
PhysicsMaterial에는 다음 파라미터가 있습니다.
- 보상(때로는 "바운티" 또는 "바운스"라고도 합니다).
- 복원 결합 함수
- 정적 마찰
- 동적 마찰
- 마찰 결합 함수
PhysicsMaterial 에셋이 슬롯에 포함되지 않은 경우 기본 물리 머터리얼이 할당되고 SimulationConfig 물리 설정에 연결된 기본 물리 머터리얼이 됩니다.
PhysicsMaterial 에셋은 직접 PhysicsCollider에 할당될 수 있습니다:
C#
var material = f.FindAsset<PhysicsMaterial>("steel");
collider.Material = material;
f.Set(entity, collider);
중요한 노트
PhysicsMaterial은 데이터 에셋이며 Quantum 에셋 데이터베이스에 저장됩니다. 에셋은 롤백 가능한 게임 상태에 포함되지 않으므로 모든 PhysicsMaterial은 런타임 시 불변으로 간주됩니다. 게임이 실행되는 동안 속성을 변경하면 비결정론적 행동으로 이어집니다.
PhysicsMaterial는 다른 데이터 에셋과 동일한 규칙을 따릅니다.
C#
// this is NOT safe and cannot be rolled-back:
collider->Material.Restitution = FP._0;
// switching a reference is safe and can be rolled back:
var newMaterial = f.FindAsset<PhysicsMaterial>("ice");
collider->Material = newMaterial;
함수 결합
각 충돌 매니폴드(충돌 쌍)의 복원 및 마찰을 해결하는 데 사용되는 결합 함수는 결합 함수의 우선 순서에 따라 결정됩니다. 물리 시스템은 두 개의 충돌기 중에서 가장 높은 선례를 가진 기능을 선택합니다.
우선순위는 다음과 같습니다.
- 최대
- 최소
- 평균
- 곱
콜라이더 A 및 콜라이더 B가 있는 콜라이더 매니폴드를 예로 들 수 있습니다. 콜라이더 A의 물리 머터리얼은 복원 결함 함수를 Max 로 설정하고 콜라이더 B의 물리 머터리얼은 Average 로 설정합니다. Max는 Average보다 우선순위가 높으므로 이 충돌에 대한 보상은 Max 함수를 사용하여 해결됩니다.
부분 결합 함수에도 동일한 로직이 적용됩니다.
주의: 부분 결합 함수와 복원 결합 함수는 별도로 해결되므로 설정이 다릅니다.
Back to top