본문 바로가기

분류 전체보기14

유니티의 Rigidbody Rigidbody 컴포넌트는 물리학 용어의 강체를 의미한다. 유니티에서의 Rigidbody 역시 강체의 의미가 있고 충돌 감지 또는 물리 시뮬레이션을 위한 중요한 컴포넌트다. Mass 질량, 상대적인 의미의 질량으로 1kg, 1g 등의 무게 단위가 아니다. 즉 A물체의 Mass가 1이고 B물체는 10이라 한다면 B가 A보다 10배 더 무겁다고 해석해야 한다ㅣ 하지만 편의상 1kg으로 가정하고 작업하는 것이 일반적이다. Drag 이동할 때 적용되는 마찰계수(저항) Angular Drag 회전할 때 적용되는 마찰계수(저항) Use Gravirt 중력 적용 여부 is Kinematic 체크하면 물리 시뮬레이션을 이용해 이동하지 않고 Transform 컴포넌트를 이용해 이동한다. 즉 이 옵션을 체크하면 물리 엔.. 2021. 10. 28.
유니티의 정규화 벡터 3탄 nomalized 실습 벡터의 크기(Magnitude)는 Vector3.Magnitude 함수를 이용해 가져올 수 있습니다. void Start () { float vec1 = Vector3.Magnitude(Vector3.forward); float vec2 = Vector3.Magnitude(Vector3.forward + Vector3.right); float vec3 = Vector3.Magnitude(Vector3.forward + Vector3.right).normalized); Debug.Log (vec1); Debug.Log (vec2); Debug.Log (vec3); } 위 코드를 실행하면 콘솔창에 [00:42:10] 1 UnityEngine.Debug:Log (object) [00:42:10] 1.41421.. 2021. 10. 26.
유니티 velocity 기능에 대해 찾다가.. 이번 포스팅 주제는 총알 오브젝트를 특정 힘과 방향으로 발사하는 기능을 구현하는 과정에서 알게된 내용입니다. 유니티에서 제공하는 rigidbody를 사용하여 물체가 특정 속도로 날아가도록 할 수 있습니다. 다음은 가장 많이 사용하는 두가지 방법입니다. Velocity : rigidbody의 속도를 나타냅니다. velocity를 지정하면 오브젝트의 질량과 상관없이 일정 속도를 줍니다. rigidbody2d 컴포넌트가 있어야만 velocity를 사용할 수 있습니다. 아래와 같이 x,y 의 속도를 지정할 수 있습니다. Rigidbody2D.velocity = new Vector2(xSpeed, ySpeed); Addforce : rigidbody에 힘을 가해 가속도를 줍니다. addforce는 'F=ma' 공.. 2021. 10. 25.
유니티의 정규화 벡터 2탄 nomalized 더보기 "유니티 방향 벡터" "유니티 노말라이즈드" 오브젝트 균일한 이동을 위하여 벡터의 정규화가 필요합니다. 그 이유는 모든 방향의 벡터 길이가 1 이어야 방향에 따른 이동 속도가 같아지기 때문이지요. magnitude(벡터의 길이를 변환)를 통해 예시를 보겠습니다. VectorDebuger.cs 1 2 3 4 5 6 7 8 9 10 11 public class VectorDebuger : MonoBehaviour { private void Start() { Vector2 upwardDir = new Vector2(0, 1); Vector2 diagonalDir = new Vector2(1, 1); Debug.Log(upwardDir.magnitude); Debug.Log(diagonalDir.magn.. 2021. 10. 25.