성엽이
KKIMSSI
성엽이
전체 방문자
오늘
어제
  • 분류 전체보기 (454)
    • :) (2)
    • C프로그래밍이론 (9)
    • C++프로그래밍 (64)
      • STL (1)
    • C# (2)
    • Visual studio 10.0 (9)
    • AT91SAM7S256 (21)
    • 논리회로 (14)
    • AVR2560 (11)
    • TCPIP (16)
    • NetWork (4)
      • Ubuntu Linux (2)
    • Assembly (21)
    • UNIX 프로그래밍 (6)
    • RFID 분석 (1)
    • Win32 API (7)
    • Cortex-M3 (4)
    • Unity (91)
    • Flutter (9)
    • OwnProject (11)
      • It's mine (5)
      • 마인드스톰 실습 (1)
      • 보고서 자료 (2)
      • RPi B+ (2)
    • ETC (25)
      • 상식 (3)
    • MFC (40)
    • PostgeSQL (18)
    • 영상제어 (6)
      • VFW_영상처리 (1)
    • Python (0)
    • Java (30)
      • SpringBoot (2)
      • Javascript (1)
      • JSP (13)
      • Spring (8)
    • Oracle (4)
      • SQL (3)
    • HTML (6)
      • Thymeleaf (1)
      • CSS (1)
      • Bootstrap (3)
    • IDE (1)
      • VS Code (1)
    • Android (2)
    • Privacy Policy (0)
    • MYSQL (2)
      • MariaDB (2)
    • AWS (5)
    • 개인공부 (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
  • 관리자
  • 글쓰기

공지사항

인기 글

태그

  • MFC
  • WINAPI
  • Boot Code 분석
  • ARM Reverse Engineering
  • 문자열 나누기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
성엽이

KKIMSSI

Unity

[Unity] 유용한 함수들 ( Mathf, Lerp, Slerp, Trigger.. 관련 ) 정리

2019. 10. 25. 11:13

0. 절댓값

Mathf.Abs(float num)

Abs은 num에 대한 절댓값을 반환해줍니다. 가끔 데이터의 부호를 때고 계산해야 할 때 편리하게 사용할 수 있습니다.

1. 최대/최솟값

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

Mathf.Clamp01(float num)

Clamp는 num 값을 min, max에 맞추어 재조정해줍니다. min보다 작으면 min값을, max 값보다 크면 max값을 반환합니다. 주로 특정 변수가 어떤 값 사이에 존재해야 할 때 프로퍼티로 빼고 set 쪽에서 필터링을 걸어줄 때 사용합니다.

public class foo {
    private float _foo2;
    public float Foo2 {
        get {
            return _foo2;
        }
        set {
            _foo2 = Mathf.Clamp(value, 0, Mathf.Infinity);
        }
    }
}

2. 올림 / 버림 / 반올림

올림 - Mathf.Cell(float num)

버림 - Mathf.Floor(float num)

반올림 - Mathf.Round(float num)

함수 뒤에 ToInt를 붙여주면 반환 값이 int가 됩니다.

3. 근사 (Approximately)

Mathf.Approximately(float a, float b)

두 변수 a, b가 같은지(근사한지) 비교합니다. float은 부동 소수점이기 때문에 데이터들이 이리저리 가공되거나 특히, 물리를 사용하여 물체를 요리조리 가지고 놀다가 위치나 속력 같은 친구들 가지고 == 연산을 하게 되면 일치하지 않을 때가 있습니다. 이럴 때를 대비해서 float 데이터들은 Approximately를 이용하여 비교해야 합니다. 예를 들어 1.8f == 18.0f / 10.0f가 true를 반환하지 않을 수도 있습니다.

4. 선형 보간

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

함수를 먼저 설명하자면 a와 b 사이의 값 반환하는 함수입니다. 구체적으로는 0≤t≤10≤t≤1인 t를 통해 a와 b를 잇는 직선 ¯¯¯¯¯¯¯¯ABAB¯를 t:1−tt:1−t로 분할하는 지점을 반환합니다. 왜 이런 것을 사용할까요? 조금 깊이 들어가는 감이 있지만, 일단 선형 보간에 대해 잠깐 살펴봅시다.

 

선형 보간법(線型補間法, linear interpolation)은 끝점의 값이 주어졌을 때 그 사이에 위치한 값을 추정하기 위하여 직선 거리에 따라 선형적으로 계산하는 방법이다.

- 위키 백과

쉽게 생각하면 중간에 있는 어느 값을 추정하는 방법론입니다. 그럼 어떤 상황에서 어느 중간값을 추정해야 할 필요가 생길까요? 예를 들어봅시다.

 

우리는 값이 틱!하고 바뀌는 상황을 보여줄 수도 있지만, 값이 바뀌는 "과정"을 보여주어야 할 경우도 있습니다. 예를 들어 상금을 타는 연출에서 자신의 소지금액에 상금이 '틱!'하고 합쳐지게 보여줄 수도 있지만, 숫자들이 '촤라라락'하는 느낌으로 변화해서 목표 금액에 도달하는 연출이 필요할 수도 있습니다. 이럴 때 시작 값과 마지막 값의 중간값들을 구해 사용할 수 있습니다.

 

5. 라디안

Mathf.Deg2Rad

Mathf.Rad2Deg

각각 라디안->각도, 각도->라디안으로 바꿀 때 필요한 상수의 읽기전용 변수입니다. Deg2Rad는 2π/360이고 Rad2Deg는 180/π 와 같습니다.

 

 

사실 보간에 관련된 함수들이 여럿 있지만, 이 부분은 서드파티 플러그인에서 지원하는 기능이 훨씬 다양하고 직관적이므로 다른 포스팅에서 그 원리와 함수들을 살펴보도록 하겠습니다.



출처: https://orcacode.tistory.com/entry/Unity할-때-외워두면-유용한-Mathf-함수들 [오르카의 아틀리에]

 

 


 

https://supersoftware.tistory.com/entry/%EC%9C%A0%EB%8B%88%ED%8B%B0-%EC%9C%A0%EC%9A%A9%ED%95%9C-%ED%95%A8%EC%88%98%EB%93%A4

 

유니티 유용한 함수들

Clamp: 오브젝트의 범위를 정해준다. 예를들어 슈팅게임을 만든다고 하면 맵을 벗어나지 않고 움직이게 해야한다. 그때 이 함수를 사용한다. Mathf.Clamp(GetComponent().position.x, xMin, xMax): pos..

supersoftware.tistory.com

 

저작자표시 (새창열림)

'Unity' 카테고리의 다른 글

[Unity] Object 와 UI 구분하기  (0) 2019.10.29
[Unity] Script 내에서 쓰이는 대괄호(속성) 정리  (0) 2019.10.29
[Unity] TextMeshPro - text (영어+한글지원) 생성하기  (0) 2019.10.24
[Unity] Static Object / Occlusion Culling  (0) 2019.10.24
[Unity] 유니티 퀄리티, 최적화, 계단현상 관련 스크랩  (0) 2019.10.24
    'Unity' 카테고리의 다른 글
    • [Unity] Object 와 UI 구분하기
    • [Unity] Script 내에서 쓰이는 대괄호(속성) 정리
    • [Unity] TextMeshPro - text (영어+한글지원) 생성하기
    • [Unity] Static Object / Occlusion Culling
    성엽이
    성엽이

    티스토리툴바