⚙️ Programming/C# & Unity

[Unity] Mathf.Sin()곡선을 이용해 간단한 물결 애니메이션 구현하기

Sugar0810 2023. 1. 15. 13:22

y = sin x

다양한 수학 공식을 알고 있다면, 복잡한 애니메이션을 쉽게 구현할 수 있다.
※ 보통 에셋스토어에도 있음

sin 곡선의 공식을 이용해 위/아래 또는 좌/우로 부드럽게 움직이는 곡선 애니메이션 적용

image

 

카메라가 이동 때 마다 물결 애니메이션 구현

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraMove : MonoBehaviour
{
    float sin_val = 0;

    void Sin_wave_Compute() // y = Sin x (곡선 함수)
    {
        float _ry = Mathf.Sin(sin_val); // 3.14
        sin_val += 0.01f;
        m_cam.transform.Translate(0, _ry * 0.005f, 0);
    }

    public Camera m_cam;

    private void Update()
    {
        if (Input.GetKey(KeyCode.D))
        {
            m_cam.transform.position += m_cam.transform.right * Time.deltaTime * 2.0f;
            Sin_wave_Compute();
        }

        if (Input.GetKey(KeyCode.A))
        {
            m_cam.transform.position += -m_cam.transform.right * Time.deltaTime * 2.0f;
            Sin_wave_Compute();
        }

        if (Input.GetKey(KeyCode.W))
        {
            m_cam.transform.Translate(0, 0, Time.deltaTime * 2.0f);
            Sin_wave_Compute();
        }

        if (Input.GetKey(KeyCode.S))
        {
            m_cam.transform.Translate(0, 0, -Time.deltaTime * 2.0f);
            Sin_wave_Compute();
        }
    }
}