유니티(unity)에서 라이트의 그림자 설정(cast shadow, receive shadow) 1)예에서 씬에 sphere, cube 오브젝트를 생성하였다. cube 오브젝트는 바닥에 그림자를 드리우고(cast shadow) sphere 오브젝트의 그림자를 받는것을 확인할수있다. 2)빛에 의한 그림자를 생성하려면 라이트 오브젝트의 shadow type을 설정한다(hard shadows, soft shadows) 3)cube 오브젝트의 mesh renderer에서 cast shadows를 활성화하면(on) cube오브젝트에 의한 그림자를 생성한다. receive shadows에 체크하면 cube 오브젝트의 표면에 다른 오브젝트에 의한 그림자를 생성한다. cube 오브젝트의 receive shadows 비..
유니티 URP에서 알파 클리핑 사용하기(alpha clipping) 알파 클리핑(alpha clipping)은 투명한 영역과 불투명한 영역의 경계가 존재하는 투명 효과를 표현할때 사용할수있다. 예를 들어 동물의 날개, 나뭇잎등에 알파 클리핑을 사용하면 비교적 저해상도 모델에서 세부적인 표현이 가능하다. 1)알파클리핑을 사용하려면 텍스처에 알파 채널을 추가하여 투명한 영역과 불투명한 영역을 설정한다. 2)유니티에서 불러오기한 해당 텍스처의 알파 채널을 확인할수있다(import settings) 3)모델의 재질에서 알파 클리핑을 지원하는 URP의 빌트인 셰이더를 선택한다(lit, simple lit, unlit, baked lit, complxe lit) 4)재질의 속성에서 알파 클리핑(alpha clipp..
유니티 안드로이드 빌드 - 유효하지않은 NDK 버전 (unity required NDK r19) preferences의 external tools에서 안드로이드 NDK의 설치 경로를 설정했을때 아래와 같은 메시지가 표시된다면 현재 유니티 에디터의 버전이 현재 설치되어있는 NDK의 버전을 지원하지않기때문이다. 1)예에서 유니티 버전 2020.3.0f1을 사용중이며 설치되어있는 NDK의 버전은 ndk r18(NDK 18.1.5063045)이다. 2)유니티가 요구하는 NDK 버전을 확인한다 unity required NDK r19(19.0.5232133) 3)아래 개발자 안드로이드 웹사이트에서 최신 버전의 NDK를 다운로드한다 https://developer.android.com/ndk/downloads?hl..
유니티 에디터 버전에 따라서 요구하는 SDK, JDK, NDK의 버전 1)아래 유니티 공식 기술문서에서 에디터의 버전에 따라서 요구하는 sdk, ndk, jdk버전을 확인할수있다. https://docs.unity3d.com/2020.3/Documentation/Manual/system-requirements.html 2)좌측 상단의 version에서 에디터 버전을 선택한다. 3)Unity Player system requirements의 mobile 섹션에서 유니티를 빌드하고 실행하기 위한 최소 요구 사항을 확인할수있다.
유니티 안드로이드 빌드4 - 삼성 갤럭시에 apk 파일 설치하기 1)유니티 에디터에서 빌드를 완료하면 생성한 apk파일을 확인할수있다. 2)컴퓨터에 모바일 장치를 연결하고 폴더로 이동한다. 예에서는 삼성 갤럭시를 이용하였다. 3)phone 폴더에 새로운 폴더를 생성한다. 4)예에서 새로 생성한 폴더의 이름을 apkinstall로 설정하였다. 5)apk파일을 해당 폴더에 복사한다. 6)갤럭시 홈 화면에서 내 파일 앱으로 이동한다. 7)내장 메모리로 이동한다. 8)새로 생성한 폴더(apkinstall)로 이동한다. 9)해당 폴더에서 복사한 apk파일을 선택한다. 10)애플리케이션 설치를 진행한다. 11)play 프로텍트에 의해 차단됨 대화상자에서 무시하고 설치를 진행한다. 12)앱이 설치되면 완료한다. 13..
유니티 안드로이드 빌드3 - 프로젝트 player settings, 최종빌드하기 (company name, product name, minimum API level, scripting backend, build) 1)project settings의 player에서 회사명, 상품명(company name, product name)을 입력한다. 2)identification의 package name은 이전에 입력한 company name, product name으로 설정되어있는것을 확인할수있다. 3)최소 API 수준(minimum API level)을 선택한다. 4)scripting backend에서 mono 또는 IL2CPP를 선택한다. 5)64비트 아키텍처를 지원해야한다면 IL2CPP를 선택하고 하단의 ..
유니티 안드로이드 빌드1 - 프로젝트를 안드로이드 플랫폼으로 전환하기 1)build settings으로 이동하고 플랫폼 목록에서 안드로이드(android)를 선택한다. 에디터에 대한 android build support 모듈이 설치되어있지않으면 하단의 switch platform버튼이 비활성화된다. 2)이 경우 install with unity hub에서 모듈 설치를 진행할수있다. 3)android build support를 선택하고 확인하면 해당 버전의 에디터에 대한 android build support 모듈 설치를 진행한다. 4)모듈이 정상적으로 설치되면 안드로이드의 추가 빌드옵션이 표시되고 switch platform 버튼이 활성화된다. switch platform을 클릭하면 프로젝트를 안드로이..
유니티 onClick.AddListener에서 함수의 파라미터 전달 문제 1)예에서 아래와 같이 캔버스에 버튼을 구성하였다. 2)아래 스크립트의 for구문에서 순차적으로 버튼을 클릭했을때 호출되는 함수를 추가하고 함수에 전달하는 인수로 iteration 변수를 설정하였다. 3)게임을 시작하고 순차적으로 버튼을 클릭하면 의도한 iteration 변수를 출력하지않는것을 확인할수있다. 4)for 구문 내에서 임시적으로 정수형 변수를 선언하고 이 변수를 인수로 전달한다. 5)게임을 시작하고 순차적으로 버튼을 클릭하면 정상적으로 출력한다.
유니티 URP 에서 custom render passes를 사용하여 아웃라인 렌더링하기 URP의 custom render passes와 custom shader를 사용하여 캐릭터의 아웃라인을 렌더링하는방법이다. 유니티에서 제공하는 샘플 커스텀 쉐이더(ToonBasicOutline.shader)를 사용하였다. gameobject layer 1)씬에 아웃라인을 렌더링할 캐릭터 및 게임오브젝트를 추가한다. 2)게임 오브젝트의 재질을 설정한다. 예에서 URP의 Lit 쉐이더를 사용하는 재질을 설정하였다. 3)게임 오브젝트의 레이어를 설정한다. 새로운 레이어를 추가하려면 인스펙터에서 layer의 add layer로 이동한다. 4)새로운 레이어를 추가하고 게임오브젝트에 해당 레이어를 설정한다. custom shad..
NHN TOAST gamebase - 게임 런칭 및 운영을 위한 플랫폼 네이버에서 제공하는 TOAST gamebase는 게임을 개발하고 운영하는데 필요한 다양한 기능들(인증, 결제, 지표/통계, 푸시, 게임운영툴, 게임보안, 리더보드등)을 통합 SDK로 제공하여 빠르고 효율적으로 게임을 개발, 서비스할수있는 플랫폼이다. TOAST gamebase 웹사이트 https://gameplatform.toast.com/ko_KR/service/gamebase TOAST gamebase 소개영상 https://youtu.be/2z6mShT3o64 TOAST gamebase 사용 가이드 http://docs.toast.com/ko/Game/Gamebase/ko/Overview/ 유니티에서 gamebase settin..
유니티에서 객체를 바이너리로 저장하기(BinaryFormatter) 마이크로소프트 공식 설명서에서 BinaryFormatter을 사용한 데이터처리는 보안에 취약하기 때문에 사용하지않을것을 권고하고있다. https://docs.microsoft.com/ko-kr/dotnet/standard/serialization/binaryformatter-security-guide 아래는 예제로써 BinaryFormatter 클래스를 사용하여 객체를 이진형식 및 바이너리(binary)로 직렬화하고 파일을 저장 또는 바이너리 파일을 역직렬화하여 객체를 생성하는 방법이다. 1)예에서 다음과 같이 클래스를 정의하였다. 2)클래스에 [Serializable] 어트리뷰트를 지정한다. 3)클래스의 객체를 생성한다. 4)Binar..
유니티에서 사용자 정의 클래스 만들기(직렬화, serializable) [serializable] 어트리뷰트를 사용하여 클래스를 직렬화하는 방법 1)아래 예에서 test 클래스를 정의하였다. 2)인스펙터에서 해당 클래스의 필드가 표시되지않는다. 3)클래스에 [Serializable] 어트리뷰트를 지정한다. [Serializable]는 클래스 또는 구조체를 직렬화 할수 있음을 나타낸다. test 클래스 유형의 private 변수를 선언하고 [SerializeField] 어트리뷰트를 지정한다. 4)인스펙터에서 클래스의 필드가 정상적으로 표시되는것을 확인할수있다.
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.