Ad Block 한번만 꺼주시면 안될까요..?
게임 개발/C#

유니티 가속도를 제한하는 방법

UniCoti(유니코티) 2022. 7. 9.

오늘은 유니티에서 가속도를 제한하는 코드를 살펴보겠다.

        if(Mathf.Abs(rigid.velocity.x) > 5) {
        rigid.velocity = new Vector2(Mathf.Sign(rigid.velocity.x) * 5, rigid.velocity.y);
        }

필자가 만든 코드는 이러한데, 본격적으로 설명 해보겠다.


Mathf.Abs 는 절댓값을 구하는 함수이다.
그러므로 rigid.velocity.x(양옆으로 이동하는것에대한 가속도값)이

음수가되든 양수가 되든 다 양수로 묶어서 5 이상이면 이라는 조건을 써 넣었다

 

if(Mathf.Abs(rigid.velocity.x) > 5) // 가속도가 5 이상이라면

rigid.velocity = new Vector2(Mathf.Sign(rigid.velocity.x) * 5, rigid.velocity.y); //가속도 제한


정리

Mathf.Abs = 절댓값구하기

rigid.velocity = 가속도
new Vector2 = 순서쌍(엄밀히 말하면 벡터)

 

Mathf.sign = 부호를 가져와줌 예시) Mathf.Sign(-5) -> -1 , Mathf.Sign(6) -> 1

Mathf.sign에 5를 곱해줌으로서 가속도가 음수면 음수대로 제한되고
가속도가 양수면 양수대로 제한되게 해주었다.
맘같아서는 rigid.velocity.x = ... 으로 하고싶었지만
rigid.velocity = ... 만 가능하다기에
y값에는 rigid.velocity.y 로 기본값을 넣어주었다.

 

유니티 협력 글(어필리에이트)


도움이 되었길 바라며,

 

이 코드가 가장 좋은 코드는 아니란걸 기억하길 바라며,

자신만의 코드를 만들어보길 바란다.

 

끝.

댓글

💲 추천 글