본문 바로가기
관/핫한 유니티 공부

유니티 델타타임과 엔진으로 실제 물리적인 오브젝트 만들기.

by 4차원 박스 2020. 8. 17.

이번 포스팅은 스크립트에서 중요하게 사용되는 시간 관련 개념인

델타타임을 알아보고 유니티 상에서 스크립트 없이 유니티 엔진으로만 간단하게 오브젝트를 만들어 본다. 

<델타타임 DeltaTime>

 

바로 예시로 본다.

 

Vector2 vec = new Vector2(

Input.GetAxis("Horizontal") * Time.deltaTime,

Input.GetAxis("Vertical") * Time.deltaTime);

transform.Translate(vec);

 

이런 방식으로 사용한다.

 

Translate 함수에 델타타임 사용법

벡터에 곱하기

transform.Translate(Vec*Time.deltaTime);

Vertor 함수에 델타타임 사용법 : 시간및 속도 매개변수에 곱하기.

Vector2.Lerp(현재위치,도착위치,t*Time.deltaTime);

 

델타타임이란 1프레임 에 사용된 시간임 = 이전 프레임의 완료까지 걸린 시간이다.

컴퓨터 사양에 따라 속도가 달라지는 일이 없게 하기 위해서 곱하는 것이다.

 

델타타임 값은 프레임이 적으면 크고 프레임이 많으면 작다.

프레임 하나 도는데 소비한 시간이 크면 델타타임이 크다.

 

<실제 같은 오브젝트 만들기>

 

유니티 에디터만 사용하여 만들어 본다.

스크립트 작성은 1도 없다.

 

유니티는 컴포넌트 기반 게임엔진임

이번시간은 컴포넌트가 뭐가있는지 가장 필수요소를 알아본다

 

필수요소 : mesh, material, collider, rigid

 

 

1. 리지드바디

RigidBody = 물리효과를 받기위한 컴포넌트

Rigid 부분에서 중력효과를 추가가능

 

2. 충돌 영역정하기 콜라이더 Collider

 

Collider 를 설정해주면 충돌하는 영역끼리 만나면 멈추게 된다.

이는 물리효과를 받기 위한 컴포넌트 이다.

 

 

3. rigid 설정

mass = 무게, 무거운것과 중력에따른 관련은 딱히 없이 떨어지는 효과는 같다.

대신에 충돌에 따른 효과가 커진다.

 

 

rigidbody(3D오브젝트 전용) 에서는 중력효과 체크해제 가능하다.

또한 Is Kinematic 체크로 외부 물리효과 무시가 가능함 (이거로 움직이는 함정을 만들기 유용함.)

 

 

4. 3D에서 재질 만들기.

 

Default Material 으로 한다. 이거는 건드릴 수 없다.

Material 은 오브젝트의 표면 재질을 결정하는 컴포넌트 이다.

 

이거는 따로 에셋에서 만들어야한다

 

에셋 -> creat -> material 로 한다.

만든 것을 오브젝트로 드래그하면 그때 편집 가능해진다.

 

metalic = 금속재질 수치로 금속 재질을 추가할것 인지

smoothness = 빛 반사 수치

 

오브젝트에 무늬등을 추가 할 수 있다

직접그린것도 가능함. 알베도 옆의 네모칸에 드래그하면 된다.

이를 텍스쳐 라고 한다.

 

tiling = 텍스쳐 반복 타일개수이다.

emisiion = 텍스쳐의 발광및 밝기 조절, 이는 빛이 물리적으로 나오는것은 아니다.

 

 

5. 물리재질 만들기

 

이것도 에셋에서 따로 만든다

 

physicmaterial 로 한다. = 탄성과 마찰을 다루는 물리적인 재질이다.

 

이것도 만들어서 드래그로 오브젝트에 넣어주면

 

이는 해당 오브젝트의 콜라이더에 들어간다 material로 가면 있다.

 

만든 물리재질안의

bounciness = 탄성력, 높을수록 많이 튀어오른다. (max=1 이다.)

 

3D 물리재질에는 bounciness combine 이 있다

이는 다음 탄성을 계산 하는 방식이다. 이거는 값을 주는것이 아니라

선택하는 방식으로 맥시멈으로 하면 계속 튀어오른다(점점 올라간다).

 

friction = 마찰력, 낮을수록 많이 미끄러진다.

 

dymamic은 움직일때의 마찰력이다.

 

friction combine = 다음 마찰력을 계산하는 방식

 

이거를 잘 조절해서 효과를 이것저것 낼 수 있다.

댓글