Unity 포트폴리오/플젝2. 3D FPS게임
Unity 오브젝트 상하 반복운동 Mathf.Sin
jjiing
2022. 6. 19. 14:11

프로젝트로 진행한 게임에서는 낙사요소가 존재했는데,
조금 더 재미를 주기 위해 땅을 자동으로 움직이게 하고 싶었다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LandMove : MonoBehaviour
{
Vector3 currentPos;
public float range=10f;
public float speed=1f;
void Start()
{
currentPos = transform.position;
}
void Update()
{
Vector3 v = currentPos;
v.y += range * Mathf.Sin(Time.time * speed);
transform.position = v;
}
}
땅 자체에 스크립트를 넣어주고 오브젝트의 y포지션을 Sin값으로 일정하게 변하게 해준다.
Mathf.Sin( radian or degree )
Mathf는 유니티에서 제공하는 수학 함수로, Sin은 -1~1값을 return 한다.
그래서 땅의 y값에 원하는 범위만큼의 값을 더해주고 빼주는 식으로 구현하는 것이다.
이를 활용해 상하운동뿐만아니라 좌우 등 다양한 수학적 운동을 구현해 줄 수 있다.