수색…
Colliders
박스 콜라이더
속성
Is Is Trigger - 체크되면 Box Collider는 물리학을 무시하고 Trigger Collider가됩니다.
Material - 지정된 경우 Box Collider의 물리학 자료에 대한 참조입니다.
Center - 로컬 공간에서 Box Collider의 중심 위치
Size - 로컬 공간에서 측정 된 Box Collider의 크기입니다.
예
// Add a Box Collider to the current GameObject.
BoxCollider myBC = BoxCollider)myGameObject.gameObject.AddComponent(typeof(BoxCollider));
// Make the Box Collider into a Trigger Collider.
myBC.isTrigger= true;
// Set the center of the Box Collider to the center of the GameObject.
myBC.center = Vector3.zero;
// Make the Box Collider twice as large.
myBC.size = 2;
구형 충돌 장치
속성
Is Trigger - Sphere Collider는 물리를 무시하고 Trigger Collider가됩니다.
Material - Sphere Collider의 물리학 자료에 대한 참조 (지정된 경우).
Center - Sphere Collider의 로컬 공간에서의 중심 위치
Radius - Collider의 반지름
예
// Add a Sphere Collider to the current GameObject.
SphereCollider mySC = SphereCollider)myGameObject.gameObject.AddComponent(typeof(SphereCollider));
// Make the Sphere Collider into a Trigger Collider.
mySC.isTrigger= true;
// Set the center of the Sphere Collider to the center of the GameObject.
mySC.center = Vector3.zero;
// Make the Sphere Collider twice as large.
mySC.radius = 2;
캡슐 콜리더
속성
Is Is Trigger - 체크하면 Capsule Collider가 물리학을 무시하고 Trigger Collider가됩니다.
Material - 지정된 경우 Capsule Collider의 물리학 자료에 대한 참조입니다.
센터 - 로컬 공간에서 캡슐 콜 라이더의 중심 위치
반경 - 로컬 공간의 반지름
Height - Collider의 총 높이
방향 - 로컬 공간의 방향 축
예
// Add a Capsule Collider to the current GameObject.
CapsuleCollider myCC = CapsuleCollider)myGameObject.gameObject.AddComponent(typeof(CapsuleCollider));
// Make the Capsule Collider into a Trigger Collider.
myCC.isTrigger= true;
// Set the center of the Capsule Collider to the center of the GameObject.
myCC.center = Vector3.zero;
// Make the Sphere Collider twice as tall.
myCC.height= 2;
// Make the Sphere Collider twice as wide.
myCC.radius= 2;
// Set the axis of lengthwise orientation to the X axis.
myCC.direction = 0;
// Set the axis of lengthwise orientation to the Y axis.
myCC.direction = 1;
// Set the axis of lengthwise orientation to the Y axis.
myCC.direction = 2;
휠 콜라이더
속성
질량 - 바퀴 충돌 자의 질량
반경 - 로컬 공간의 반지름
휠 감쇠율 - 휠 충돌기의 감쇠 값
서스펜션 거리 - 로컬 공간에서 Y 축을 따른 최대 확장
강제 앱 지점 거리 - 힘이 적용될 지점,
센터 - 지역 우주의 휠 콜리더 센터
서스펜션 스프링
Spring - Wheel이 목표 위치로 되돌아 가려고하는 비율
댐퍼 - 값이 클수록 속도가 느려지고 서스펜션이 느리게 움직입니다.
목표 위치 - 기본값은 0.5이고, 0은 정지 상태이며, 1은 전체 확장 상태입니다.
앞으로 / 옆쪽 마찰 - 전진 또는 옆으로 굴러갈 때의 타이어 동작 방식
예
메쉬 콜라이더
속성
Is Is Trigger - 체크되면 Box Collider는 물리학을 무시하고 Trigger Collider가됩니다.
Material - 지정된 경우 Box Collider의 물리학 자료에 대한 참조입니다.
Mesh - Collider가 기반으로하는 메쉬에 대한 참조입니다.
볼록 - 볼록 메쉬 충돌자는 255 개의 다각형으로 제한됩니다. 사용 가능한 경우이 Collider는 다른 메시 충돌 자와 충돌 할 수 있습니다
예
GameObject에 두 개 이상의 Collider를 적용하면이를 Compound Collider라고 부릅니다.
휠 콜라이더
화합의 내부에있는 바퀴 충돌자는 Nvidia의 PhysX 휠 충돌 장치를 기반으로하므로 많은 유사한 속성을 공유합니다. 기술적으로 단일성은 "단위가없는"프로그램이지만 모든 것을 이해하기 위해서는 몇 가지 표준 단위가 필요합니다.
기본 속성
- 질량 - 바퀴의 무게 (킬로그램)로, 휠 운동량과 회전시 interia 순간에 사용됩니다.
- 반지름 - 미터로, 충돌 자의 반지름입니다.
- Wheel Damping Rate - 바퀴가 토크에 "얼마나 반응"하는지를 조정합니다.
- Suspension Distance - 휠이 이동할 수있는 총 이동 거리 (미터)
- Force App Point Distance - 부모 rigidbody에 적용되는 서스펜션에서의 힘
- 중심 - 휠의 중심 위치
서스펜션 설정
- 스프링 - 이것은 스프링 상수 K를 뉴턴 / 미터로 나타낸 방정식입니다.
힘 = 스프링 상수 * 거리
이 값의 좋은 출발점은 차량의 총 질량을 바퀴 수로 나눈 값을 50에서 100 사이의 숫자로 곱한 값이어야합니다. 예를 들어 4 개의 바퀴가 달린 2,000kg의 자동차가 있으면 각 바퀴는 500kg을 지원합니다. 이것을 75로 곱하면 스프링 상수는 37,500 뉴턴 / 미터가되어야합니다.
- 댐퍼 - 자동차의 쇼크 업소버와 동등합니다. 속도가 높을수록 서스펜스가 "더 강하게"되고 속도가 낮아지면 "부드럽고"진동이 더 커집니다.
나는 이것에 대한 단위 나 방정식을 모른다. 나는 물리학의 주파수 방정식과 관련이 있다고 생각한다.
측면 마찰 설정
단일성의 마찰 곡선은 휠이 원하는 위치에서 실제 위치까지 미끄러지는 정도 (m / s)에 의해 결정되는 슬립 값을가집니다.
Extremum Slip - 이것은 견인력을 잃기 전에 바퀴가 미끄러질 수있는 최대량 (m / s)입니다.
극한값 (Extremum Value) - 이것은 바퀴에 적용되어야하는 마찰의 최대량입니다.
Exrtremum Slip의 값은 대부분의 실제 자동차의 경우 0.2m에서 2m / s 사이 여야합니다. 2m / s는 초당 약 6 피트 또는 5mph입니다. 이는 많은 실수입니다. 실수로 2m / s보다 높은 값을 필요로한다고 판단되면 최대 마찰 (최대 값)을 높이는 것을 고려해야합니다.
최대 분수 (극한치)는 다음 방정식의 마찰 계수입니다.
마찰력 (뉴톤 단위) = 마찰 계수 * 하향 추력 (뉴턴 단위)
이것은 1의 계수로, 슬립 방향과 반대 방향으로 카 + 서스펜션의 전체 힘을 가하는 것을 의미합니다. 실제 응용 프로그램에서는 1보다 높은 값은 드물지만 불가능하지는 않습니다. 건조 아스팔트 타이어의 경우 .7과 .9 사이의 값은 현실적이므로 기본값 인 1.0을 사용하는 것이 좋습니다.
이 값은 이상한 행동이 발생하기 시작할 때 현실적으로 2.5를 초과해서는 안됩니다. 예를 들어, 우회전하기 시작하지만,이 값이 너무 높기 때문에, 큰 힘이 당신의 방향과 반대 방향으로 가해지고, 멀리가 아닌 선회로 넘어 가기 시작합니다.
두 값을 모두 채우면 점근선 값과 값을 올리기 시작해야합니다. Asymptote Slip은 0.5m / s와 2m / s 사이에 있어야하며, 점근선 슬립을 지나면 슬립 값에 대한 마찰 계수를 정의합니다. 견인력이 떨어질 때까지 차량이 잘 동작하는 것을 발견하면, 그것이 얼음 위에있는 것처럼 동작하는 지점에서 점근 값을 올려야합니다. 차량이 표류 할 수 없다는 것을 알게되면 값을 낮춰야합니다.
전진 마찰
전진 마찰은 옆쪽 마찰과 동일하지만 휠이 운동 방향에 얼마나 견인을 가하는지를 제외하고는 값이 너무 낮 으면 차량은 번 아웃을하고 타이어를 앞으로 돌리면서 천천히 돌립니다. 너무 높으면 차량에 무리가 있거나 더 나쁜 행동을하는 경향이 있습니다.
추가 참고 사항
단순히이 값을 조정하여 GTA 클론이나 다른 레이싱 클론을 만들 수있을 것으로 기대하지 마십시오. 대부분의 운전 게임에서 이러한 값은 속도, 지형 및 회전 값에 따라 스크립트에서 지속적으로 변경됩니다. 또한, 키를 누를 때 휠 콜리 더에 일정한 토크를 가하는 경우 게임은 현실적으로 작동하지 않습니다. 현실 세계에서 자동차는 바퀴에 적용되는 토크를 변경하기 위해 토크 곡선과 변속기를 가지고 있습니다.
최상의 결과를 얻으려면 자동차가 적절하게 응답 할 때까지이 값을 조정 한 다음 스크립트의 휠 토크, 최대 회전 각도 및 마찰 값을 변경해야합니다.
wheel colliders에 대한 자세한 내용은 Nvidia의 문서 http://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/Vehicles.html 에서 확인할 수 있습니다.
트리거 Colliders
행동 양식
-
OnTriggerEnter()
-
OnTriggerStay()
-
OnTriggerExit()
OnTriggerEnter()
, OnTriggerStay()
및 OnTriggerExit()
메서드를 사용하려면 Collider를 트리거 로 만들 수 있습니다. 트리거 콜 리더는 물리적 인 충돌에 반응하지 않으며, 다른 게임 객체는 충돌을 단순히 통과합니다. 그것들은 다른 GameObject가 특정 영역에 있는지 여부를 감지하는데 유용합니다. 예를 들어, 아이템을 수집 할 때, 우리는 그것을 실행할 수 있기를 원할 것입니다.
트리거 Collider 스크립팅
예
아래의 메서드는 다른 콜 라이더가 GameObject의 콜 리더 (플레이어 등)에 언제 들어 왔는지 탐지하는 트리거 리스너의 예입니다. 트리거 메소드는 GameObject에 할당 된 모든 스크립트에 추가 할 수 있습니다.
void OnTriggerEnter(Collider other)
{
//Check collider for specific properties (Such as tag=item or has component=item)
}