유니티(unity)에서 애니메이션 커브를 사용하여 게임오브젝트 이동시키기 사용자 정의 애니메이션 커브를 설정하고 Vector3.Lerp함수와 AnimationCurve.Evaluate 함수를 사용해서 게임오브젝트 이동시키는 방법 1)씬에 게임오브젝트를 생성하고 원점에 위치시킵니다(0, 0, 0) 2)게임을 시작하면 아래 스크립트에서 시작 위치(startPos)와 목표 위치(targetPos)를 설정합니다. 3)지속시간동안(duration) 시작 위치에서 목표 위치까지 오브젝트를 점차적으로 이동시킵니다. 4)AnimationCurve.Evaluate 함수에서 곡선 그래프(curve)의 시간(그래프의 가로 축)에 대한 값(그래프의 세로 축)을 리턴합니다. 5)애니메이션 커브(AnimationCurve)의 그..
유니티(unity)에서 constant force 사용하기 constant force를 사용하여 리지드바디에 일정함 힘을 추가할수있습니다. 게임오브젝트의 월드공간 및 로컬공간에서 힘 또는 토크를 적용하여 게임오브젝트를 이동 또는 회전시킬수있습니다. 1)씬에 constant force 를 사용할 오브젝트를 생성합니다. 2)게임 오브젝트에 리지드바디 컴포넌트(rigidbody)를 추가합니다. is kinematic와 constraints(freeze position, rotation)을 체크해제합니다. 3)constant force 컴포넌트를 추가합니다. 4)게임오브젝트의 기즈모 표시방법을 local로 설정합니다. 5)constant force 컴포넌트의 force 속성에 값을 입력하고 게임을 실행합니다. ..
유니티(unity)에서 OnTriggerEnter 함수를 사용하여 충돌 감지(OnTriggerEnter, OnTriggerStay, OnTriggerExit) (유니티 버전 2020.3.0f1, built-in render pipeline) OnTriggerEnter 함수는 두 개의 게임오브젝트가 충돌할 때 호출됩니다. OnTriggerEnter 함수를 사용하는경우 두 개의 게임 오브젝트 모두 콜라이더 컴포넌트를 가지고있어야하고 그중 하나는 isTrigger가 활성화되어있어야합니다. 또 적어도 하나의 게임 오브젝트가 리지드바디 컴포넌트를 가지고있어야합니다. 1)씬에 두개의 게임오브젝트를 생성합니다(sphere, cube) 2)스피어 오브젝트에 리지드바디(rigidbody) 컴포넌트를 추가합니다. 스피어오..
유니티(unity)에서 재질의 디퓨즈맵과 노말맵 사용(diffuse map, normal map) (유니티 버전 2020.3.0f1, built-in render pipeline) 1)디퓨즈맵(diffuse map)과 노말맵(normal map)으로 사용할 텍스처 이미지를 준비합니다 2)유니티 프로젝트로 가져오기한 노말맵의 텍스처 이미지는 texture import settings에서 텍스처 유형(texture type)을 normal map으로 설정합니다. 3)기본 standard 재질을 생성하고 오브젝트에 재질을 할당합니다. 4)재질의 albedo에 디퓨즈 텍스처 이미지를 설정합니다. 5)오브젝트의 표면에서 albedo의 텍스처 이미지가 표현되는것을 확인할수있습니다. 6)재질의 normap map에 ..
유니티(unity)에서 텍스처 이미지 큐브맵(cube map)을 환경반사에 사용하기 (유니티 버전 2020.3.0f1, built-in render pipeline) 1)씬에 스피어 게임오브젝트를 생성합니다. 2)오브젝트에 기본 standard 재질을 할당합니다. 3)metallic, smootness의 수치를 높입니다. 4)오브젝트의 표면에서 스카이박스에 의한 환경 반사가 표현되는것을 확인할수있습니다. 5)라이팅의 환경(lighting window, environment)에서 환경 반사(environment reflections) 소스(source)가 기본 스카이박스 재질(default-skybox)을 사용하는 스카이박스(skybox)로 설정되어있는것을 확인할수있습니다. default-skybox(ma..
유니티(unity)에서 환경 조명 설정하기(조명세기, 스카이박스, 그라디언트, 단일색상) (유니티 버전 2020.3.0f1, built-in render pipeline) 1)씬에 스피어 게임오브젝트를 생성합니다. 2)스피어 오브젝트의 표면에 환경 조명에 의한 색상과 음영이 표현되고있는것을 확인할수있습니다. 3)라이팅 윈도우의 environment에서 environment lighting(환경 조명)의 source가 skybox(스카이박스)로 설정되어있는것을 확인할수있습니다. 4)스카이박스 재질(skybox material)은 기본 default-skybox 재질로 설정되어있는것을 확인할수있습니다. 5)스피어 오브젝트 표면의 색상과 음영이 기본 default-skybox 재질의 스카이박스 환경 조명에 의..
유니티(unity)에서 모델의 메시 정보 확인하기 정점 개수(vertices), 삼각형 개수(triangles), UV 레이아웃(UV Layout) 버텍스 색상(Vertex Color), 노말(Normals), 기타(UV Checker, Tangents, Blendshapes) 1)프로젝트에서 모델을 선택합니다. 2)model import settings에서 모델의 미리보기를 제공하지만 메시 정보를 확인할수없습니다. 3)모델의 하위에 존재하는 메시를 선택합니다. 4)inspector에서 모델의 메시 정보를 확인할수있습니다. 5)미리보기 하단에서 메시를 구성하는 정점 및 삼각형의 개수가 표시되는것을 확인할수있습니다. 6)미리보기에서 메시를 표시하는 방법을 선택합니다(Shaded, UV Checker, UV..
유니티 에셋 추천 Edy's Vehicle Physics - 자동차 물리 엔진 도구(차량운전, 충돌, 피해효과, 지면재질, 오디오효과, 기타) Edy's Vehicle Physics는 간편한 설정으로 사용자 차량을 리깅 및 구성하여 차량을 운전 및 제어할수있는 기능을 제공합니다. 그밖에 차량 충돌, 피해, 지면재질(지면흔적, 스키드마크, 연기등), 오디오(엔진, 변속, 충격, 기타)등의 효과를 사용할수있습니다. Edy's Vehicle Physics 유니티 에셋 스토어(asset store) https://assetstore.unity.com/packages/tools/physics/edy-s-vehicle-physics-403 Edy's Vehicle Physics 사용법 동영상 (Edy's Vehic..
유니티에서 시간의 주기를 가지고 행위를 일으키기(Update함수) 예에서 업데이트 함수 내에 작성한 조건문(if-else)은 시간의 주기를 가지고 특정 행위를 일으킨다. 시간이 되면(if(updateTime>coolDown)) 행위를 일으키고 updateTime를 초기화한다. updateTime의 업데이트는 시간의 흐름을 의미한다 (updateTime += Time.deltaTime;) 콘솔에서 coolDown 시간에 도달할때 호출함수명과 시간이 출력되는것을 확인할수있다.
유니티에서 원형 이미지 슬라이더 만들기 unity에서 원형(radial360) 이미지 슬라이더를 구현하는 방법(Image.fillAmount, Mathf.Lerp) 1)씬에 이미지(image) 오브젝트를 생성한다. 2)이미지의 소스 이미지(source image)에 원형 이미지를 설정한다. image type으로 filled를 선택하고 fill method으로 radial 360를 선택한다. fill origin, fill amount, clockwise 속성에 아래와 같이 설정한다. 3)fill amount는 0부터 1까지의 값으로 이미지를 채운 정도를 설정한다. 이미지의 fill amount 수치를 조절하면 원형 이미지가 채워지는것을 확인할수있다. 4)스크립트에서 UnityEngine.UI 네임스페이..
유니티에서 카메라 뷰에 스카이박스 배경 설정하기(skybox) 카메라에 스카이박스(skybox) 컴포넌트를 추가하여 카메라 뷰 배경을 설정하는 방법 1)유니티에서 스카이박스의 배경으로 설정한 텍스처를 가져오기한다(import) 2)texture shape에서 cube를 선택한다. 3)apply를 클릭하면 하단 미리보기에서 텍스처 맵핑 결과를 확인할수있다. 4)새로운 재질을 생성한다. 재질의 쉐이더로 skybox의 cubemap를 선택한다. 5)cubemap에 배경으로 사용할 텍스처를 설정한다. 6)스카이박스 배경을 설정할 카메라를 선택한다. 7)카메라의 clear flags가 스카이박스(skybox)로 설정되어있는지 확인한다. 8)카메라 오브젝트에 skybox 컴포넌트를 추가한다. 9)추가된 스카이박스의..
유니티에서 그리드 프로젝터(grid projector)사용하기 게임 물리엔진에서 씬에 존재하는 오브젝트들의 현실적인 스케일은 매우 중요하다. 그리드 프로젝터(grid projector)는 오브젝트에 그리드(grid)를 투사하여 캐릭터, 사물, 지형등의 스케일을 가늠하기위해 사용할수있다. 1)에셋 스토어에서 유니티에서 제공하는 기본에셋인 standard assets를 다운로드한다. 2)projectors 하위의 에셋을 가져오기한다(import) 3)projectors의 prefabs폴더에 GridProjector 프리팹이 존재하는것을 확인할수있다. 4)씬에 GridProjector를 추가한다. 5)프로젝터의 프리스텀과 교차하는 오브젝트는 흰색 그리드 텍스쳐가 투사되는것을 확인할수있다. 6)프로젝터(proj..