고도 엔진에서 Rigidbody 의 객체 위치를 임의로 변경하는 방법 - Whitmem
고도 엔진에서 Rigidbody 의 객체 위치를 임의로 변경하는 방법
Game Development
2025-02-02 00:52 게시 de011a1b424af8feec55

0
0
38
이 페이지는 외부 공간에 무단 복제할 수 없으며 오직 있는 그대로 게시되며 부정확한 내용을 포함할 수 있습니다. 법률이 허용하는 한 가이드 라인에 맞춰 게시 내용을 인용하거나 출처로 표기할 수 있습니다.
This page is not to be distributed to external services; it is provided as is and may contain inaccuracies.
Rigidbody 위치를 임의로 변경 하는 방법
고도 엔진에서 RigidBody 의 위치를 바꾸기 위해 Position 또는 GlobalPosition을 변경하면 정상적으로 동작하지 않는 것을 확인할 수 있다. 이는 물리 처리가 수행중인 객체이기 때문에 임의로 객체 위치를 변경하더라도 처리가 되지 않는 것인데, 임의로 위치를 변경하기 위해서는 물리 처리 서버에 요청을 보내 좌표, 회전 정보를 변경해야 한다.
코드는 워낙 간단하다. PhysicsServer2D 클래스를 통해서 Body의 상태 정보를 변경한다. 각 Rigidbody는 getRid()라는 메서드가 존재한다. 이 메서드를 통해 고유 아이디를 가져오고, 이 아이디에 대해서 Transform 을 변경하면 되는 것이다.
Transform을 변경하기 위해서 Transform2D 객체를 정의하고, Origin에 월드 공간 좌표를 넣으면 된다.
Transform2D tf = new Transform2D(); tf.Origin=this.GlobalPosition;
그리고 상태 변경 코드를 통해 적용하면 된다.
PhysicsServer2D.BodySetState(src2D.GetRid(), PhysicsServer2D.BodyState.Transform,tf);
댓글 0개
댓글은 일회용 패스워드가 발급되며 사이트 이용 약관에 동의로 간주됩니다.
확인
Whitmemit 개인 일지 블로그는 개인이 운영하는 정보 공유 공간으로 사용자의 민감한 개인 정보를 직접 요구하거나 요청하지 않습니다. 기본적인 사이트 방문시 처리되는 처리 정보에 대해서는 '사이트 처리 방침'을 참고하십시오. 추가적인 기능의 제공을 위하여 쿠키 정보를 사용하고 있습니다. Whitmemit 에서 처리하는 정보는 식별 용도로 사용되며 기타 글꼴 및 폰트 라이브러리에서 쿠키 정보를 사용할 수 있습니다.
이 자료는 모두 필수 자료로 간주되며, 사이트 이용을 하거나, 탐색하는 경우 동의로 간주합니다.