사용자 도구

사이트 도구


language:unity:4-physics

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를 사용하는)에 인터폴레이션을 추가하면 좀 더 낫다
language/unity/4-physics.txt · 마지막으로 수정됨: 2024/04/23 22:44 저자 127.0.0.1