반응형
728x170
Mathf.PingPong 함수는 주기적인 값을 생성하고자 할 때 사용합니다. 이 함수는 인자로 주어진 시간 값을 이용하여 0부터 주어진 최댓값까지 증가한 후, 다시 최댓값에서 0까지 감소하는 값을 생성합니다. 이러한 값은 주기적으로 반복되며, 반복되는 주기의 길이는 최댓값의 두 배입니다. 몇 가지 예로 특정지역을 왕복하는 장애물을 표현할 수도 있고 텍스트의 색상을 주기적으로 변화시키키는 효과도 만들 수 있습니다.
결과화면
각 오브젝트는 Math PingPong을 활용하여 두 지점을 반복하여 움직이게 하는 것이 가능합니다.
하이어라키 & 인스펙터
각 몬스터에게 동일한 스크립트를 제공하고 idx를 통해서 다른 방향으로 움직이도록 하였습니다.
스크립트 예제
public int idx;
public float speed = 2f;
public float distance = 2f;
private float pingPong;
private Vector3 startPosition;
private void Start() {
startPosition = transform.position;
}
void Update() {
pingPong = Mathf.PingPong(Time.time * speed, distance);
switch (idx) {
case 0:
// Y축 pingpong
transform.position = startPosition + new Vector3(0f, pingPong, 0f);
break;
case 1:
// X축 pingpong
transform.position = startPosition + new Vector3(pingPong, 0f , 0f);
break;
case 2:
// XY축 pingpong
transform.position = startPosition + new Vector3(pingPong, pingPong, 0f);
break;
}
}
위의 스크립트는 시작지점을 기준으로 속도와 거리를 입력받아 그 크기 만큼 두 지점을 왕복하는 예제입니다.
반응형
그리드형
'유니티실습' 카테고리의 다른 글
유니티 2D 아이템 루팅 만들어 보기 Item Looting (0) | 2023.03.24 |
---|---|
유니티 2d 아이템 드랍 효과 만들어보기 Item drop effect (0) | 2023.03.23 |
유니티 No Sprite Editor Window registered 해결 방법 (0) | 2021.04.16 |
유니티 Platform Effector2D 관통되는 바닥만들기 (0) | 2021.04.16 |
유니티 기즈모 Gizmos 활용해보기 (0) | 2021.03.18 |