velocity를 이용해 최고속도 제한
소스코드
public float movePower;
public float maxVelocityX, maxVelocityZ;
void limitMoveSpeed() {
if (rigid.velocity.x > maxVelocityX)
{
rigid.velocity = new Vector3(maxVelocityX, rigid.velocity.y, rigid.velocity.z);
}
if (rigid.velocity.x < (maxVelocityX * -1))
{
rigid.velocity = new Vector3((maxVelocityX * -1), rigid.velocity.y, rigid.velocity.z);
}
if (rigid.velocity.z > maxVelocityZ)
{
rigid.velocity = new Vector3(rigid.velocity.x, rigid.velocity.y, maxVelocityZ);
}
if (rigid.velocity.z < (maxVelocityZ * -1))
{
rigid.velocity = new Vector3(rigid.velocity.x, rigid.velocity.y, (maxVelocityZ * -1));
}
}
void move() {
float x = Input.GetAxisRaw("Horizontal");
float z = Input.GetAxisRaw("Vertical");
Vector3 moveVec = new Vector3(x, 0, z) * movePower * Time.deltaTime;
rigid.AddForce(moveVec, ForceMode.Impulse);
limitMoveSpeed();
}
결과
'유니티 3D기본(Roll A Ball)' 카테고리의 다른 글
회전, 좌우상하 움직이는 장애물 만들기 (1) | 2021.11.15 |
---|---|
23 . 게임 빌드 (0) | 2021.10.27 |
22. 플레이어가 맵에서 낙하 시 리스폰 (0) | 2021.10.27 |
21. UI 만들기 (0) | 2021.10.27 |
20. Scene 추가 (0) | 2021.10.27 |