유니티 진자운동같이 오브젝트 반복 운동시키는 법 Mathf.Sin()

김찬수·2023년 6월 4일
0

Unity

목록 보기
13/15

유니티에서 Mathf.Sin()함수는 주어진 각도의 Sin값을 반환한다.

주로, 진자운동과 같은 반복패턴운동을 시키는 데에 사용한다.

[SerializeField] private float _xMoveSpeed; // 좌우 이동속도
[SerializeField] private float _xDelta = 2; // 이동 범위
private float _xStartPosition; // x 시작 위치
    
public void MoveToX()
    {
        float x =  _xStartPosition + _xDelta * Mathf.Sin(Time.time * _xMoveSpeed);
        transform.position = new Vector3(x, transform.position.y, transform.position.z);
    }

이런식으로 코드를 작성해주면 아래와 같이 동작한다.

검은색의 콩알같은 것이 스크립트가 적용된 오브젝트이다.
y방향으로 상승하는 코드를 추가로 작성해서 테스트 해보았다.
y방향 상승은 rigidbody의 AddForce() 함수를 사용했다.

특정 구역을 반복 운동해야하는 경우 유용하게 사용할 수 있을것같다.

profile
프로그래머 지망생

0개의 댓글