본문 바로가기
Unity 포트폴리오/플젝2. 3D FPS게임

Unity 오브젝트 상하 반복운동 Mathf.Sin

by jjiing 2022. 6. 19.

프로젝트로 진행한 게임에서는 낙사요소가 존재했는데,

조금 더 재미를 주기 위해 땅을 자동으로 움직이게 하고 싶었다.

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값에 원하는 범위만큼의 값을 더해주고 빼주는 식으로 구현하는 것이다.

이를 활용해 상하운동뿐만아니라 좌우 등 다양한 수학적 운동을 구현해 줄 수 있다.