====== RigidBody ====== * Physic 영향을 받게끔 한다. * 리지드바디를 넣으면, 힘이나 토크(회전력)의 영향을 받아 움직이게끔 할 수 있다. * 중력의 영향을 받게 된다. ===== Component 파라미터 ===== ==== Mass ==== 단위는 임의로 결정. 리지드바디간 100배 차이가 나지 않게 설정하는 것이 추천한다네. 어떤 요소에 영향을 주는 걸까.. ==== Drag ==== * 공기에 대한 저항력. 0은 영향을 받지 않는다. * 기본 중력 설정에서 10정도 주면 아주 느리게 떨어진다. * 당연히 Mass는 떨어지는 속도에 영향을 주지 않는다. ==== Angular Drag ==== * 회전력에 대한 감소율. 0은 영향을 받지 않는다. 그렇다고 0 이라고해서 멈추지 않는 것인 아니다. 숫자가 클수록 영향을 많이 받는다. === 테스트 === * Physical Collider를 추가하고 Material (Physical Material)을 Bouncy로 설정. * 임의의 오브젝트를 살짝 기울인 상태로 * Angular Drag의 값을 0 ~ 20까지 ====== 프로그래밍 ====== * Velocity : 벡터의 길이가 현재 가해진 힘의 크기. // 샘플, Velocity가 1보다 크면 힘이 가해진 상태이므로 붉은색으로 표시 if(rigidbody.velocity.magnitude > 1) gameObject.renderer.material.color = impactColor; //아니면 그냥 표시 else gameObject.renderer.material.color = stableColor; ====== 최적화 ====== ===== Physics ===== * 충돌체가 많은 경우 + 메쉬충돌체를 써야하는 경우, * 충돌용 메쉬는 아주 최소한의 삼각형만 갖는 버젼을 따로 만들어서 쓰면 * **확실하게 효과 있다** * 충돌용 메쉬는 작으면서 복잡한 것에, 단순한 체크용 메쉬를 쓰면 효과가 좋다. * 큰 메쉬에는 되려 효과가 없다. ===== TimeManager ===== * Fixed Timestep : 기본값 0.02 에서 조금 더 늘린다. 0.03정도.. 늘릴 수록 물린 연산 횟수가 줄어든다. * 0.025도 인식된다. * **이 값을 변경하는 경우, 움직이는 중요 오브젝트(RigidBody를 사용하는)에 인터폴레이션을 추가하면 좀 더 낫다**