unity3D에서 스크립트를 작성하여 공 회전시키기게임 오브젝트에 스크립트를 추가하고 단순한 코드를 작성하여 공을 회전시키는 예제이다.1)씬에 스피어를 생성하였다.2)이 게임 오브젝트에 새로운 스크립트를 추가한다. add component에서 new script를 추가한다.3)스크립트의 이름을 설정하고 c#언어를 선택하고 create and add를 클릭하면 스크립트를 생성한다. 4)게임 오브젝트에 추가된 스크립트를 더블 클릭하면 해당 스크립트를 에디터에서 열기한다.5)스크립트의 이름과 class 이름은 동일 해야한다.6)회전속도를 저장할 변수를 선언하고 업데이트 함수에 한줄의 코드를 작성하였다. 아래에서 public으로 선언한 전역변수 degreePerSecond는 class 외부에서 접근 가능하며 유..
유니티의 grid layout group 사용하기게임의 미션 및 레벨 선택 메뉴의 디자인에 사용할수있는 grid layout group 기본 사용법1)캔버스에 panel를 생성하였다.2)panel의 적절한 사이즈를 설정한다.3)panel에 그리드 레이아웃 그룹 컴포넌트를 추가한다.4)panel의 하위에 버튼 오브젝트를 생성하고 복사한다.5)버튼 오브젝트들은 부모 오브젝트인 panel에서 설정한 그리드 레이아웃에 나열된다.6)버튼 오브젝트의 transform은 사용자가 직접 수정할수없다.7)grid layout group의 속성값들을 변경시켜서 메뉴의 레이아웃을 설정한다.padding은 pannel에서 레이아웃 그룹의 좌우상하 여백을 만든다. cell size는 자식 오브젝트인 버튼의 사이즈를 설정하고 s..
유니티에서 씬의 모든 라이트 끄기1)씬의 라이트를 비활성화 시키거나 intensity의 수치를 0으로 만들어도2)오브젝트는 빛의 영향을 받고있는것처럼 보이는데 이것은 씬의 엠비언트와 reflection 때문이다. 3)라이팅 윈도우의 scene탭에서 ambient와 reflection의 intensity 수치를 0으로만든다.
유니티3D - 빛의 영향을 받지않는 unlit 쉐이더unlit 쉐이더는 문자 그대로 빛의 영향을 받지 않는, 씬의 라이트와 엠비언트의 영향을 받지않는 쉐이더이다.1)기본 standard 쉐이더는 씬의 라이트에 의한 스페큘러 및 표면 그림자를 반영한다.2)또 lighting윈도우의 scene탭에서 설정한 ambient의 영향을 받는다.3)재질의 쉐이더를 unlit타입(color)으로 변경해보았다.4)오브젝트는 쉐이더에서 설정한 메인 컬러만 표시한다.5)씬의 라이트와 엠비언트로부터 영향을 받지않는것을 확인할수있다.6)마찬가지로 unlit texture쉐이더는 빛의 영향을 받지않으며 텍스쳐 이미지의 색상만 표시한다.
유니티에서 3D 텍스트 해상도 높이기1)씬에 3D TEXT 오브젝트를 추가한다.2)기본적으로 3D TEXT의 해상도가 매우 낮게 설정되어있는것을 확인할수있다.3)폰트 사이즈 수치를 높인후에 scale를 줄이는 방식으로 해결할수있다.
유니티에서 physical material를 이용한 공튀기기1)씬에 sphere와 cube 오브젝트를 생성하였다.2)프로젝트 패널에서 physical material를 새성한다.3)physical material의 속성은 다음과 같으며 각 속성의 자세한 내용은 아래 웹문서에 기술되어있다. 예에서는 bounciness를 이용한 아주 단순한 공튀기기를 테스트하였다.https://docs.unity3d.com/Manual/class-PhysicMaterial.html4)스피어 오브젝트를 선택하고 sphere collider의 material에 위에서 생성한 physical material를 설정한다.5)두 오브젝트 모두 리지드바디 컴포넌트를 추가한다.6)바닥인 큐브 오브젝트의 경우 리지드바디에서 use gra..
유니티에서 9 slice sprites 사용하기9-slicing Sprites를 사용하여 한개의 이미지 텍스쳐를 다양한 사이즈의 재사용 가능한 이미지로 설정하는것이 가능하다. sprite 이미지를 리사이징할때 텍스쳐를 왜곡하지않아 특히 2D 환경에서 벽, 바닥의 패턴 텍스쳐 및 UI를 생성할때 사용할수있다. 아래 유니티 웹문서에서 자세한 활용법과 옵션을 확인할수있다.https://docs.unity3d.com/Manual/9SliceSprites.html위 이미지는 9 slice sprites에 의해 정의된 9개의 영역이다. 이미지의 scale를 변화시킬때A,C,G,I의 네 영역은 사이즈의 변화가없다.B,H영역은 좌우로 늘어나거나 타일링된다.D,F영역은 상하로 늘어나거나 타일링된다.E영역은 좌우상하로 늘..
유니티에서 3인칭 캐릭터 플레이어 테스트해보기(unity 2017버전)해당 어셋은 유니티에서 기본으로 제공하는 캐릭터 프리팹으로 사용자 키 입력에 의해 캐릭터가 씬에서 어떻게 동작하는지 확인해볼수있다. 1)상단의 assets메뉴에서 import package의 characters를 선택한다. 2)만약 유니티 2018버전 이상을 사용한다면 위 메뉴가 존재하지않는데 이 경우 어셋 스토어에서 standard assets를 검색하여 다운로드 및 임포트한다. 3)모두 체크하고 패키지를 import한다. 4)project 패널에 어셋이 추가된것을 확인할수있다. 5)어셋중 ThirdPersonController 프리팹을 씬에 추가한다. 6)해당 프리팹은 3인칭 캐릭터의 단순한 움직임(movement)을 구현하기위한 ..
유니티에서 카메라의 환경맵(sky box 큐브맵) 설정하기(2018버전)1)배경으로 사용할 텍스쳐를 임포트한다.2)임포트한 텍스쳐의 타입을 cubemap으로 변경한다.3)하단에 apply를 클릭해서 적용한다.4)해당 텍스쳐는 환경맵으로 사용가능한 cubemap타입으로 프리뷰에서 확인할수있다.5)새로운 재질(material)을 생성하고 재질의 shader를 skybox의 cubemap으로 변경한다.6)재질의 속성에서 맵으로 사용할 텍스쳐를 선택한다.7)씬에서 환경맵을 사용할 카메라를 선택한다.8)clear flags에서 skybox를 선택한다.9)카메라에 skybox 컴포넌트를 추가한다.10)custom skybox에서 이전에 생성한 재질을 선택한다.11)해당 카메라의 게임뷰에서 큐브맵핑된 텍스쳐를 확인할..
유니티 어셋 스토어에서 다운로드한 패키지 파일 위치1)유니티 어셋스토어에서 다운로드한 어셋의 패키지 파일 위치는 아래와 같다.C:\Users\username\AppData\Roaming\Unity\Asset Store 2)유니티에서 다운로드한 어셋을 임포트할때 이 위치에서 데이터를 로드하는것이다. 다운로드한 어셋을 백업할때 참고하면된다.
유니티(Unity)의 오쿨루전 컬링(occlusion culling)과 프러스텀 컬링(frustum culling)https://docs.unity3d.com/Manual/OcclusionCulling 오쿨루전 컬링(occlusion culling)은 다른 오브젝트에 의해 가려진 오브젝트가 카메라에서 보여지지않을때 해당 오브젝트 렌더링을 불능화시키는 기능으로 드로우콜을 감소시키고 게임의 퍼포먼스를 향상시킬수있습니다. 오쿨루전 컬링은 3D 컴퓨터 그래픽스에서 자동으로 일어나지않습니다. 왜냐하면 대부분의 경우 카메라에서 가장 먼 오브젝트가 먼저 그려지고 더 가까운 오브젝트들은 그 위에 그려지기때문입니다(오버드로우) 프러스텀 컬링(frustum culling) 오쿨루전 컬링은 프러스텀 컬링과 구별됩니다...
유니티(unity)에서 이벤트 함수의 실행 순서 (Order of execution for event functions) 유니티에서 스크립트를 실행하면 이벤트 함수가 호출되는 정해진 순서가있습니다. 아래 유니티 웹사이트에서 이벤트 함수의 종류와 실행 순서를 확인할수있습니다. https://docs.unity3d.com/Manual/ExecutionOrder.html Unity - Manual: Order of execution for event functions Instantiating Prefabs at run time Order of execution for event functions Running a Unity script executes a number of event functions in a..