유니티 스크립트

유니티와 Mathf(수학 메서드)

ruripanda 2024. 10. 29. 18:17
using UnityEngine;
public class Example : MonoBehaviour
{
    void Start()
    {
        Max();
        Min();
        Clamp();
        Lerp();
        Abs();
        Sqrt();
        Sign();
        Round();
    }

    public void Max()
    {
        float number1 = 11f;
        float number2 = 5f;

        float maxNumber = Mathf.Max(number1, number2);
        Debug.Log("MAX값" +  maxNumber);
    }
    public void Min()
    {
        float number1 = 77f;
        float number2 = 6f;

        float minNumber = Mathf.Min(number1, number2);
        Debug.Log("MIN값" + minNumber);
    }
    public void Clamp()
    {
        float mainNumber = 77;
        float maxNumber = 15f;
        float minNumber = 7f;

        float endNubmer = Mathf.Clamp(mainNumber, maxNumber, minNumber);
        Debug.Log("Clamp 함수 값" + endNubmer);
    }
    public void Lerp()
    {
        float startNumber = 0f;
        float endNumber = 10.0f;
        float t = 0.5f;

        float okNumber = Mathf.Lerp(startNumber, endNumber, t);
        Debug.Log("Lerp 함수 값" + okNumber);
    }
    public void Abs()
    {
        float number = 77f;
        float absNubmer = Mathf.Abs(number);
        Debug.Log("Abs의 값" +  absNubmer);
    }
    public void Sqrt()
    {
        float number = -6f;
        float sqrtNumber = Mathf.Sqrt(number);
        Debug.Log("Sqrt의 값" + sqrtNumber);
    }
    public void Sign()
    {
        float pulsNumber = 16f;
        float minusNumber = -5f;
        float nubmer = 0f;

        Debug.Log("16의 부호" + Mathf.Sign(pulsNumber));
        Debug.Log("-5의 부호" + Mathf.Sign(minusNumber));
        Debug.Log("0의 부호" + Mathf.Sign(nubmer));
    }
    public void Round()
    {
        float number1 = 5.7f;
        float number2 = 5.4f;
        float number3 = 5.5f;

        Debug.Log("5.7은" + Mathf.Round(number1) + "으로");
        Debug.Log("5.4는" + Mathf.Round(number2) + "으로");
        Debug.Log("5.5는" + Mathf.Round(number3) + "으로");
    }
}

C#실습 스크립트

함수 설명

#Max , Min

MAthf.Max(float a , float b);
MAthf.Min(float a , float b);

수학 계산에서 최대값과 최소값을 반환합니다

#Clamp

Mathf.Clamp(float num,float min,float max)

수학 계산에서 최대값과 최소값 사이로 숫자가 있는지 확인하고 넘어간다면 최소, 최대 값을 반환합니다

만약 min이 5인데 2가 나온다면 5로 반환하고 max가 11인데 숫자가 12를 넘는다면 11로 반환한다

#Lerp

Mathf.Lerp(float a, float b, float G)

보간에 사용되는 함수이며 체력바나 서서히 부드럽게 줄어지는 게이지나 숫자에 사용되는 함수

 

#Lerp 사용예

HPbar.fillAmount = Mathf.Lerp(HPbar.fillAmount, HPcurrent, Time.deltaTime);

 

위 사용예는 첫번째 HPbar.fillAmount는 HP바의 총량을 나타내고 뒤에 현재 체력 HPcurrent를 넣어 플레이어의 HP가 데미지를 입게 하고 시간개념을 부드럽게 하기 위해 Time.dletaTime를 넣었다

#Abs

Mathf.Abs(float num)

주어진 값의 절대값을 반환합니다

예를 들어 num에 -5가 들어가면 5가 나오고 12가 들어가면 12가 나옵니다

#Sqrt

MAthf.Sqrt(float num)

어떤 수의 제곱근을 구해준다

예) 9라면 3*3 = 9,    16라면 4*4 = 16으로 어떤 같은 수끼리 곱해서 나온 수다

 

#Sign

Mathf.Sign(float num)

선언 된 값의 부호를 나타낸다

만약 17이 변수에 선언되었다면 1이 나오고 -99가 선언되었다면 -1, 0을 선언했다면 0이 나온다

#Round

Mathf.Round(num)

유니티엔진에서 반올림과 버림을 해주는 메서드

0.5 이상이면 값을 올려주고 0.4이하이면 소수점 값을 버려준다

'유니티 스크립트' 카테고리의 다른 글

상태 정보 넣기  (0) 2024.12.23
유니티 랜덤 코드(Random.Range())  (0) 2024.12.21
유니티 마우스 입력  (0) 2024.12.20
coll 파라미터(Collision타입 충돌)  (0) 2024.12.20
싱글턴이란?  (0) 2024.10.28