유니티(Unity) 프로젝트 빌드에서 스크립팅 백엔드 IL2CPP IL2CPP (Intermediate Language To C++)는 유니티에서 제공하는 스크립팅 백엔드(scripting backend)입니다. 프로젝트를 빌드할때 선택할수있는 옵션중(mono, IL2CPP) 하나로 앱의 성능, 보안, 플래폼호환성을 개선하기위해 사용할수있습니다. IL2CPP를 사용하면 C# 코드의 MS 중간 언어(MSIL)에서 C++코드로 변환한 후 플래폼의 네이티브 코드로 컴파일하여 최종적으로 바이너리 파일을 생성합니다(exe, apk, xap) 대상 플래폼에 최적화된 네이티브 코드를 생성하여 다양한 플래폼에서 높은 성능을 보장할수있고(성능, 플래폼호환성) C# 코드가 C++로 변환된 후 네이티브 코드로 컴파일되기 때..
유니티(unity)에서 오브젝트의 축 정렬하기(Quaternion.FromToRotation, Quaternion.LookRotation) Quaternion.FromToRotation, Quaternion.LookRotation 함수를 사용하여 오브젝트를 회전시키고 축 정렬하기 1)아래 예에서 rotateCylinder을 회전시켜서 y축을 targetCylinder의 y축과 일치시키고자한다. 2)아래 스크립트에서 Quaternion.FromToRotation함수를 사용하여 rotateCylinder의 회전을 설정한다. rotateCylinder의 y축(rotateCylinder.transform.up)을 targetCylinder의 y축(targetCylinder.transform.up)과 일치시킨다...
유니티(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..
유니티 에디터 버전에 따라서 요구하는 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를 선택하고 하단의 ..
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..
유니티의 특수 폴더(special folder)와 데이터경로(datapath) 유니티의 특수 폴더 https://docs.unity3d.com/Manual/SpecialFolders.html Unity - Manual: Special folder names Batching with the AssetDatabase Special folder names You can usually choose any name you like for the folders you create to organise your Unity project. However, there are folder names that Unity reserves for special purposes. For example, you must place..
유니티 에셋 curvy에서 애니메이션 해상도 높이기 일반적으로 스플라인의 포인트 개수를 증가시키거나 보간방법(interpolation)을 설정하면 스플라인 위에서 이동하는 오브젝트의 애니메이션 해상도를 높일수있다. 다음은 spline controller의 속성을 설정하여 애니메이션 해상도를 높이는 방법이다. 아래 예에서 스플라인을 적은 개수의 포인트로 구성하고 보간방법으로 linear를 선택한 환경을 설정하였다. 1)씬에 linear 형식의 스플라인을 생성한다. 2)적은 개수의 CP로 이루어진 곡선형태의 스플라인을 생성한다. 2)오브젝트(spline controller)의 애니메이션을 확인한다. 오브젝트의 축과 스플라인 위 포인트(CP)의 탄젠트 및 오리엔테이션이 일치되면서 애니메이션이 연속적이지 않은것..
유니티에서 PlayerPrefs 클래스를 사용한 간단한 데이터 저장(정수형, 실수형, 문자열) PlayerPrefs 클래스는 게임 데이터를 간편하게 저장하고 불러오는 데 사용합니다. 게임에서 데이터를 저장하면 프로그램이 종료되어도 해당 값들이 유지되며 다음에 실행했을 때 다시 불러오기 할수있습니다. 저장할 수 있는 데이터 형식은 정수형(int), 실수형(float), 문자열(string)이며 주로 게임의 간단한 진행 상태 및 기본 설정(스테이지 클리어 여부, 획득한 아이템, 점수, 기타)등의 소규모 데이터를 저장할 때 사용할수있습니다. https://docs.unity3d.com/ScriptReference/PlayerPrefs.html PlayerPrefs를 사용하여 보안이 필요한 데이터를 저장하지말것..
유니티에서 패키지를 기본값으로 재설정하기(reset pacakges to defaults) 패키지를 기본값으로 재설정하면 프로젝트에서 사용자가 설치한 모든 패키지들을 제거하고 기본값으로 초기화합니다. 이 작업은 컴파일 또는 프로젝트 손상을 발생시킬수있습니다. 아래 예에서 일부 패키지의 an error occurred while resolving packages:project has invalid dependencies 에러를 해결하기 위해 패키지를 초기화하였습니다. 1)콘솔에서 project has invalid dependencies 에러를 확인합니다. 2)package manager에서 일부 패키지의 an error occurred while resolving packages 에러를 확인할수있습니다...