Short Cake
8PM - Animal Crossing Wild World

사생활 보호 설정

https://gamjia.tistory.com

Mini Rooms

  • 내 미니룸
  • 미니미설정
  • 미니룸설정
  • 답글수 [0]

What Friends Say

한마디로 표현해봐~

1촌평 관리

Cocos Creator getLinearVelocity

GamJia 2024. 8. 26. 10:45

 

 

객체의 선형 속도를 보고 싶어서

console창에 getLinearVelocity를 넣었는데

Undefined가 뜨길래 

 

 

내용을 좀 바꿨더니 제대로 출력된걸 확인했다

둘이 같아보이는데 뭐가 다른걸까?

 

const velocity = this.rigidBody.getLinearVelocity(new Vec3());
console.log("Velocity:", velocity);

 

일단 이건 new Vec3() 객체를 생성한 후,

이 객체를 getLinearVelocity 메소드의 인자로 전달하고

 

getLinearVelocity 메소드가 반환하는 값을

velocity에 저장하는 내용이다

 

이 방식은 getLinearVelocity 메소드가

Vec3 객체를 반환할 것이라는 가정하에

사용되는데 이 경우에 velocity 변수는

getLinearVelocity 메소드가 반환한

Vec3 객체를 가리키게 된다

 

근데 만약에 getLinearVelocity 메소드가

실제 반환값이 void인 메소드라면

velocity 변수에는 아무런 값이 할당되지 않거나

이미지처럼 undefined가 할당될 수 있다

 

흠..

 

https://github.com/cocos/cocos-engine/blob/2fda22be5638065a190bc4c97da6548631319aba/cocos2d/core/3d/physics/framework/components/rigid-body-component.ts#L488

 

cocos-engine/cocos2d/core/3d/physics/framework/components/rigid-body-component.ts at 2fda22be5638065a190bc4c97da6548631319aba ·

Cocos simplifies game creation and distribution with Cocos Creator, a free, open-source, cross-platform game engine. Empowering millions of developers to create high-performance, engaging 2D/3D gam...

github.com

 


const velocity = new Vec3();
this.rigidBody.getLinearVelocity(velocity);
console.log("Velocity:", velocity);

 

두번째는 velocity라는 Vec3객체를 생성한 뒤에

velocity 객체를 getLinearVelocity

메소드에 인자로 전달한다

getLinearVelocity 메소드는

이 메소드 velocity 객체의 값을 직접 수정해,

그 객체의 선형 속도를 조절하게 된다

 

이 방식은 getLinearVelocity 메소드가 전달된

Vec3 객체를 수정하여 선형속도를 설정하는

메소드라는 가정하에 사용할 수 있다

 

여기서는 반환값이 중요하지 않으며

전달된 객체(velocity)의 상태가 바뀌는 것에

초점을 맞추게 된다

 


 

첫번째 코드는 getLinearVelocity 메소드가

값을 반환한다고 가정하고 그 반환값을 사용

 

두번째 코드는 getLinearVelocity 메소드가

전달된 객체를 수정하는 메소드로 간주하고

반환값이 아닌 매개변수로 전달된 객체를 사용한다

 

그래서 getLinearVelocity 메소드가 어떤 값을

반환하지 않고 전달된 객체를 수정하는 메소드라면

두번째 방법을 사용하는게 맞다

 

그래서 두번째 코드로 입력했을 때

제대로 된 값이 출력될 수 있었던 것이다

 

'Game Develop' 카테고리의 다른 글

수박게임 재개발일지 - 4  (13) 2024.09.01
Merge Galaxy (2024)  (0) 2024.08.29
수박게임 재개발일지 - 3  (0) 2024.08.11
수박게임 재개발일지 - 2  (0) 2024.08.06
수박게임 재개발일지 - 1  (0) 2024.08.03