Game Programming
[유니티] SDK 경로 찾기 :: "Unable to detect SDK in the selected directory"
[유니티] SDK 경로 찾기 :: "Unable to detect SDK in the selected directory"
2020.04.12문제 최신 안드로이드 스튜디오를 사용해서 SDK를 설치한 경우 2018 이하의 Unity가 올바른 SDK 경로를 입력해줬음에도 인식을 못하는 경우가 있다 왜 SDK 경로임에도 왜 "Unable to detect SDK in the selected directory" 문제가 발생할까? 보통 Android SDK Tools를 인식하지 못했기 때문에 발생한다. 해결법 기본으로 설치되지 않은 Android SDK Tools를 깔아주면 된다. "Unable to detect SDK in the selected directory" 해결법 부분을 보고 해결하자. 경로 찾기 1. SDK가 설치된 경로를 찾는다 ▶ Android Studio를 실행한 후, 하단의 Configure를 클릭한 후 SDK Manager 실행한..
[유니티] 모든 자식들 접근하기
[유니티] 모든 자식들 접근하기
2020.02.26유니티에서 간단하게 모든 자식들 접근하기 1. 선택한 게임 오브젝트 바로 아래에 있는 자식만 iterate하고 싶은 경우 foreach(Transform child in transform) { Debug.Log(child.name); } 2. 선택한 게임 오브젝트 아래에 있는 모든 자식을 iterate하고 싶은 경우 Transform[] allChildren = GetComponentsInChildren(); foreach(Transform child in allChildren) { // 자기 자신의 경우엔 무시 // (게임오브젝트명이 다 다르다고 가정했을 때 통하는 코드) if(child.name == transform.name) return; Debug.Log(child.name); } GetComp..
[유니티/C#] StringBuilder 정리 및 사용법
[유니티/C#] StringBuilder 정리 및 사용법
2020.02.26C# 공식 문서에 잘 정리되어있지만 필요할 때마다 코드를 찾아보기가 귀찮고 기계 번역된 한국어 문서는 너무 어색해서 영어로 봐야 하는 번거로움이 있어서 정리할 겸 쓰는 글이다. 문제 자바든 C#이든 String을 짧은 시간 동안 (예를 들어서 반복문) 계속 수정(Concat)해주면 계속 동적 활당을 해서 성능이 크게 저하가 될 수 있다. 문제가 되는 코드 예시 using System; public class Program { string BadCodeExample() { string myString = ""; for (int i = 0; i StringBuilder 클래스 (System.Text) 변경할 수 있는 문자열을 나타냅니다.Represents a mutable string of character..
[유니티] Bool 난수 생성하기
[유니티] Bool 난수 생성하기
2020.02.26깔끔하게 Bool 난수 생성하는 법 예전에 본 코드인데 가끔 사용해서 노트로 남깁니다. Random.value를 써서 간단하게 구현할 수 있습니다. void Update() { bool randBool = (Random.value > 0.5f); Debug.Log(randBool); } 대표 이미지 출처: Icons made by Good Ware from www.flaticon.com
[유니티] Unity 입문하기 5 :: Tag와 Name으로 게임 오브젝트 찾기
[유니티] Unity 입문하기 5 :: Tag와 Name으로 게임 오브젝트 찾기
2020.02.22저번 포스트에서는 게임 오브젝트에 스크립트를 달고 부착된 게임 오브젝트의 컴포넌트를 가져오는 명령어인 GetComponent를 이용해서 게임 오브젝트를 움직였습니다. 만약에 스크립트가 자기가 부착이 된 게임 오브젝트가 아니라 다른 게임 오브젝트에 접근하려면 어떻게 해야 할까요? 이번에는 그 방법에 대해서 설명하겠습니다. 스크립트에서 외부의 게임 오브젝트 찾기 유니티에선 여러 가지 방법으로 게임 오브젝트를 찾을 수 있습니다. 그중 가장 쉬운 방법 두 가지를 오늘 보여드리도록 하겠습니다. 첫 번째 방법. 게임 오브젝트의 이름으로 찾기 두 번째 방법. Tag로 찾기 오브젝트에 태그를 달아봅시다. 태그를 달았으면 게임 오브젝트의 이름이 아닌 태그로도 찾을 수 있게 됩니다. 한번 태그로 게임 오브젝트에 접근해보겠..
[유니티] Unity 입문하기 4 :: Transform, Rigidbody로 게임 오브젝트 이동시키기
[유니티] Unity 입문하기 4 :: Transform, Rigidbody로 게임 오브젝트 이동시키기
2020.02.22* 이번 글부터는 제가 이전에 만든 자료를 많이 캡처해서 올립니당. 이번 글에서는 유니티 스크립트를 사용해서 게임 오브젝트를 이동시키는 방법에 대해서 설명하겠습니다. 유니티에서는 게임 오브젝트의 위치를 다루기 위한 여러 가지 방법들을 제공해줍니다. 그중에서 가장 대표적으로 Transform, Rigidbody 컴포넌트를 이용하는 방법이 있습니다. 컴포넌트는 기능이라고 저번 포스트에서 설명했습니다. Transform과 Rigidbody는 어떤 기능일까요? 먼저 Transform에 대해 알아봅시다. Transform은 게임 오브젝트의 위치, 회전, 스케일을 관할합니다. 이와 관련된 함수들도 Transform에 속해있습니다. 모든 게임 오브젝트는 유니티 월드상에 존재해야 하므로 모두 Transform 컴포넌트..
[유니티] Unity 입문하기 3 :: Scripting 기초, Time.deltaTime
[유니티] Unity 입문하기 3 :: Scripting 기초, Time.deltaTime
2020.01.04이번 글에서는 유니티 스크립트를 작성하기 위한 기초적인 개념에 대해서 설명하겠습니다. 먼저 저번에 배웠던 Script에 대해서 정리하면서 복습을 해봅시다! Review 1 :: 용어 정리 스크립트(Script)란? 우리가 만드는 컴포넌트의 설계 도면(다른 말로 청사진 또는 Class). 컴포넌트(Component)란? 게임오브젝트에 들어갈 실질적인 기능. (Ex) Camera, Audio Listener, Transform, Rigidbody,... 게임오브젝트(GameObject)는 부착된 컴포넌트들에 의해서 동작을 하게 된다. (Ex) Camera컴포넌트가 달린 게임오브젝트는 카메라의 기능을 하고 달린 Transform컴포넌트의 위치가 (0, 0, 0)인 게임오브젝트는 월드상의 위치가 (0, 0, 0..
[유니티] Unity 입문하기 2 :: 기본 개념 및 Script 소개
[유니티] Unity 입문하기 2 :: 기본 개념 및 Script 소개
2019.12.25이번 글에서는 유니티를 사용하기 위해 알아야 할 기본적인 개념들을 설명하겠습니다. 1. Scene Scene은 한국어로 장면입니다. 유니티에서도 똑같이 하나의 레벨 또는 스테이지를 뜻 합니다. 하나하나의 Scene 파일들에 우리가 만들어가는 게임 장면들이 들어갑니다. 그리고 참고로 Scene파일의 확장자는 .unity입니다. 예시로 4개의 Scene을 만들어 봤습니다. 한번 StartScene.unity, Level1.unity, Level2.unity Scene들을 열어볼까요? 보시다시피 Scene들은 서로 다른 세상(World)입니다. 2. GameObject Hierarchy창에 있는 모든 애들이 게임 오브젝트입니다. Main Camera, Directional Light, 제가 방금 추가한 Hou..
[유니티] Unity 입문하기 1 :: 유니티 설치 및 화면 구성
[유니티] Unity 입문하기 1 :: 유니티 설치 및 화면 구성
2019.12.24설치하기 유니티는 유니티 허브로 설치를 할 수도 있고 그냥 한 가지의 버전만 다운로드하여서 설치할 수 있습니다. 유니티가 버전이 여러 가지가 있습니다. 유니티 허브는 그러한 여러 가지의 버전의 유니티들을 정리해서 관리해주는 매니저라고 이해하시면 됩니다. 유니티 허브 다운은 유니티 다운로드에 들어가서 다운로드할 수 있습니다. 링크: https://unity3d.com/kr/get-unity/download Download Unity! Unity is the ultimate game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or t..
[유니티] GameObject 없이 코드 실행하기
[유니티] GameObject 없이 코드 실행하기
2019.07.19GameObject와 무관하게 코드를 실행하는 법 유니티에서 코드를 실행하기 위해서는 항상 GameObject에 Script를 Component로 달아줘야 한다고 알고 있습니다. 하지만 RuntimeInitializeOnLoadMethod Attribute를 사용하면 GameObject에 안달아도 실행시킬 수 있습니다. (MonoBehavior를 상속 받지 않는 클래스여도 상관 없습니다.) 단순하게 Attribute만 달면 됩니다. 아래의 코드를 참고하세요. using UnityEngine; static class nonGameObjectScript { [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)] static void..
유니티 meta 파일
유니티 meta 파일
2019.07.10유니티 *.meta 파일은 뭐길래 모든 Asset(파일)마다 생성이 될까? 유니티의 메타(meta) 파일은? Asset을 식별할 수 있게 하는 값이랑 그 Asset에 대한 설정 값, 예를 들어서 크기, pivot 위치, 상태, ... 등,을 저장하는 파일이다. 위의 사진을 보면 모든 asset(위의 사진에서는 스크립트)에 대응하는 메타 파일이 존재한다는 사실을 알 수 있다. 유니티의 메타 파일을 이해하려면 먼저 유니티가 Asset을 내부에서 처리하는 방식에 관해서 이해해야 한다. Asset 내부 처리 방식부터 알아보자. * 출처: 이 부분에 대한 내용은 [유니티 매뉴얼: Behind the Scenes]을 보면서 정리했습니다. Asset을 Import하거나 새로운 파일을 (유니티 Assets폴더 안에) ..