전체 글

728x90
· [ etc. ]/MAC
맥 화면 녹화 방법 맥에서 cmd + Shift + 5를 눌러 화면을 녹화할 수 있는데 윈도우처럼 내장 사운드는 바로 녹음이 되지 않는다. 이럴땐 BlackHole을 설치하고 맥의 사운드 설정을 바꿔주면 해결할 수 있다. BlackHole 설치하기 아래 사이트에 들어가서 I can't afford to donate을 누르고 메일 주소를 입력하면 메일로 링크를 하나 받을 수 있는데 https://existential.audio/blackhole/ BlackHole: Route Audio Between Apps Zero Latency. Perfect for Streamers, Podcasters, and Online Instructors. existential.audio 받은 링크에서 BlackHole 16..
서론 맥북을 구매하면 파이널컷 프로를 90일 동안 무료로 이용할 수 있다. 알기로는, 길이가 짧은 영상 그리고 여러가지 폼의 영상 편집에는 프리미어가 더 적합하기 때문에 파이널 컷을 앞으로 프리미어 대신해서 사용할 것 같진 않지만 그래도 무료니까 기능만 한 번 훑어봤다. 트랙 파이널컷은 메인이 되는 트랙이 하나 있고, 위 아래로 영상이나 자막을 쌓을 수 있다. 브이로그나 TV 방송처럼 메인이 되는 화면이 하나 지정된 경우에 적합할 것 같았다. 두 영상 사이를 더블 클릭 하면 트랙이 펼쳐지면서 겹쳐진 부분을 조금 더 디테일하게 수정할 수 있다. 그리고 영상을 늘이거나 줄일 경우 뒤에 위치한 영상들이 자동으로 따라 붙기 때문에 사용하기 편리했다. 반면 프리미어는 트랙을 자유롭게 생성하고 삭제할 수 있다. 필..
· [ etc. ]/MAC
와콤 오류 원인 맥에서 와콤 타블렛 드라이버 설치 후 정상적으로 사용이 됨에도 불구하고 위의 알림이 지속해서 나오는 경우가 있다. 제어 / 입력 모니터링 권한이 제대로 설정되지 않았기 때문. 해결방법 개인정보 보호 및 보안 > 손쉬운 사용(접근성) > 허용 개인정보 보호 및 보안 > 입력 모니터링 > 허용 위의 2가지를 모두 허용해주면 된다
해상도 대응을 해줘야 하는 이유 기기 상하단에 아래 이미지 처럼 UI가 들어갈 경우 게임 뷰에서는 정상적으로 보이는 반면, 시뮬레이터 뷰에서는 노치 영역(카메라, 아이폰 홈 바)까지 UI가 들어가게 된다. 이 영역 내부에만 UI가 그려지게끔 만들어주면 되는데 SafeArea 스크립트를 사용하면 간단히 해결할 수 있다. SafeArea 스크립트 using System.Collections; using System.Collections.Generic; using UnityEngine; public class SafeArea : MonoBehaviour { RectTransform _rectTransform; Rect _safeArea; Vector2 _minAnchor; Vector2 _maxAnchor; ..
프리팹(오브젝트) 만들기 메인 로비에 붙여서 사용할 임시 로딩 팝업을 만들기 위해 씬에 Loading 오브젝트를 하나 추가한 뒤 스크립트를 추가해줬다. 스크립트 작성 public class ObjectActiveToggle : MonoBehaviour { void Start() { Invoke("Disable", 3f); } void Disable() { gameObject.SetActive(false); } } Disable에 정해진 조건에 오브젝트가 비활성화 될 수 있게 gameObject.SetActive(false)를 작성 후 Start에 조건 Invoke("Disable", 3f)를 추가해주면 된다. 결과 3초 뒤 Loading 오브젝트가 비활성화 되는 결과를 얻을 수 있다. 참고 https:/..
TMP 폰트가 두 개 이상 필요한 경우 경우에 따라 게임에서 영문 외에 한국어 일본어 중국어 태국어 등 다양한 언어를 지원해야 할 상황이 생기는데 아래의 방법을 사용하면 언어 별로 다른 폰트를 섞어서 사용할 수 있습니다. 메인 폰트 생성하기 메인으로 사용할 영문 폰트를 하나 생성해줍니다. https://gameuiux.tistory.com/57 [Unity/유니티] TMP(TextMeshPro) 영문 폰트 추가하기 프로젝트에 사용할 폰트 추가 Assets > TextMesh Pro > Fonts 폴더 안에 사용할 폰트 파일을 추가합니다. 폰트 TMP용도로 만들기 폰트 애셋 크리에이터 창을 열어줍니다. Window > TextMeshPro > Font Asset Creator So gameuiux.tist..
폰트를 추가하는 방식 추가 방식은 영어와 동일합니다. https://gameuiux.tistory.com/57 [Unity/유니티] TMP(TextMeshPro) 영문 폰트 추가하기 프로젝트에 사용할 폰트 추가 Assets > TextMesh Pro > Fonts 폴더 안에 사용할 폰트 파일을 추가합니다. 폰트 TMP용도로 만들기 폰트 애셋 크리에이터 창을 열어줍니다. Window > TextMeshPro > Font Asset Creator So gameuiux.tistory.com Character Sequence 한글 유니코드 추가하기 폰트 애셋 크리에이터 창에서 Character Sequence 안에 아래의 숫자를 입력해줍니다. 44032-55203,12593-12643,8200-9900 한글 범..
프로젝트에 사용할 폰트 추가 Assets > TextMesh Pro > Fonts 폴더 안에 사용할 폰트 파일을 추가합니다. 폰트 TMP용도로 만들기 폰트 애셋 크리에이터 창을 열어줍니다. Window > TextMeshPro > Font Asset Creator Source Font File에 추가한 폰트를 드래그합니다. 나머지 값들은 필요에 따라 수정합니다. Sampling Point Size : Auto 사이즈 자동 / Custom 사이즈 지정 Padding : 글자 간격(패딩) Packing Method : Fast Atlas Resolution : 아틀라스 사이즈 Character Set : Custom Range Character Sequence : 포함할 문자의 유니코드(Unicode) > ..
와이어 프레임 전체 플로우를 고민하면서 공통으로 사용할 리소스를 정리하고 있다. Splash Loading Main Lobby - 컷씬 연출 - 튜토리얼 연출 넣을지 고민 중 (캐릭터 시나리오 대사, 터치 가이드 이펙트) 하단바 팝업 - 풀팝업 - 모달 ui 팝업 - 이벤트 배너 / 광고 제거 / 도움말 팝업 등 - 미니 팝업 (경고 팝업, 확인 팝업 등) 필요하면 더 추가하기로 유니티 기본 세팅 빌드 세팅 안드로이드 변경, 빌드할 씬 추가 사용할 TMP 폰트 추가 Common Object 추가 및 정리 중 해상도 대응 DoTween 추가 공통 리소스를 먼저 정리하고 배리언트 프리팹으로 불러와서 작업 할 예정.
1. 빌드세팅에 사용할 씬 추가하기 0번 Splash - 플레이할 때 나오는 시작 화면 1번 MainLobby - 시작 화면에서 아무 곳이나 누를 경우 이동하는 메인 로비 빌드세팅 단축키 Ctrl+Shift+B 씬을 드래그해서 추가하면 된다. 2. 스크립트 작성 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class SceneLoadManager : MonoBehaviour { public void SceneChange() { SceneManager.LoadScene("MainLobby"); } } 새 스크립트를 추가한 뒤 4번 줄에 ..
· [ etc. ]/SVN
0. 터미널 새로 실행 command+space 터미널 입력 1. 실행 중인 svn 확인하기 ps -ef | grep svn 2. 모든 svn 실행 중단 killall svnserve 3. 다시 실행 중인 svn 확인 ps -ef | grep svn 4. svn 실행하기 (svnserve -d -r 경로) svnserve -d -r /Users/계정이름/Desktop/SVN 5. 경고창 나오면 확인 6. 포트포워딩 숫자 4자리 netstat -na | grep 0000 7. 안되면 맥 재부팅
유니티 프로젝트를 커밋할 때 불필요한 임시 파일이 잡히는 경우가 있는데 아래와 같은 방법으로 해결할 수 있다. 1. TortoiseSVN 저장소 우클릭 TortoiseSVN > Properties New > Other 클릭 svn:ignore 선택 아래 리스트를 모두 추가하면 된다. Library Temp obj *.DotSettings *.csproj *.pidb *.sln *.suo *.unityproj *.user *.userprefs 추가 후 OK 클릭 2. SnailSVN Lite 같은 방식으로 SVN Settings > Ignores에 위의 리스트를 추가해주면 된다.
목표 0. 장르, 컨셉 결정 1. 와이어 프레임 정리 2. UI 아트 리소스 작업 3. 유니티 프로젝트 세팅, 사용할 기능 구현(씬 이동, 버튼 클릭, 스크롤 등 디바이스에서 사용할 간단한 조작) → 간단히 XD나 피그마를 사용할까 했는데 UI 애니메이션이나 뽑기 이펙트 연출까지 붙이기 위해 그냥 유니티에서 하기로. 4. 작업한 리소스 분할하고 씬, 프리팹에 배치 5. UI 연출 작업 6. 빌드 뽑아서 포폴용 영상 기록하기 (아트스테이션 다시 정리하면서 이쪽에 업로드 할 예정) 또는 웹용이나 apk파일로 저작권 이미지 제거 후 블로그에 공유하기 장르, 컨셉 결정 어릴때 했던 PC 게임을 모바일 방치형 게임으로 만들어 보려고 한다. https://namu.wiki/w/%EB%9D%BC%ED%85%8C%EC..
· [ etc. ]
어도비 프로그램 결제 어려운 경우 어도비 프로그램을 여건상 결제하기 어려운 경우 또는 대학생 할인마저 받기 어려운 경우 크랙을 구해야 하는데 컴퓨터 프로그램 설치를 잘 모르는 경우, 바이러스가 걱정되는 경우 등 무료로 이용하기 어려울 때가 있습니다. 그럴 경우 어도비 계정을 새로 생성해서 1개월 결제를 한 뒤 결제 취소를 바로 눌러서 어도비에서 제공해주는 혜택을 이용하면 좋습니다. 무료로 60일 지원 받기 월간 결제를 진행한 뒤에 바로 결제 취소를 누르고 취소 이유를 선택하다 보면 어도비에서 혜택에 대해 알림을 띄워주는데 이 알림을 이용해서 기존에 선 결제 한 30일 이후 60일 간은 결제 없이 이용할 수 있는 혜택을 제공받을 수 있습니다. 크랙처럼 완전히 무료는 아니지만 1달 이용 금액으로 3달을 이용..
· [ etc. ]/SVN
0. homebrew를 통해 Subversion설치 2023.11.11 - [MAC] - 맥북 터미널 사용해서 소프트웨어 설치하는 방법 [Homebrew 홈브류] 맥북 터미널 사용해서 소프트웨어 설치하는 방법 [Homebrew 홈브류] 목차 1. Homebrew란? 2. 설치하기 1. Homebrew란? Mac OS 운영 체제의 소프트웨어 설치를 터미널로 간단하게 할 수 있게 만들어주는 프로그램입니다. 2. 설치하기 1. command+space를 눌러 터미널을 입력해서 gameuiux.tistory.com 설치 명령어 brew install subversion 1. svn 저장소로 사용할 폴더 생성 mkdir /Users/계정이름/Desktop/SVN 꼭 바탕화면이 아니어도 됨, 경로 사이에 띄어쓰기는..
· [ etc. ]/MAC
1. Homebrew란? Mac OS 운영 체제의 소프트웨어 설치를 터미널로 간단하게 할 수 있게 만들어주는 프로그램이다. 2. 설치하기 1. command+space를 눌러 터미널을 입력해서 터미널을 열어준 뒤 아래 명령어를 복사해서 붙여넣어준다. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 2. Checking for 'sudo' access (which may request your password)가 나오면 맥북 비밀번호를 입력해주면 된다. (입력창에는 입력내용이 보이지 않으며 입력하고 엔터를 눌러주면 된다.) 3. Next steps 이 나오면 중간 두 줄을 한 번 씩 ..
· [ etc. ]/MAC
1. 시스템 설정에서 확인하기 1. 시스템 설정에 들어갑니다. 2. 네트워크에서 Wi-Fi를 누릅니다. 3. 연결된 와이파이의 세부사항을 누르면 ip 주소를 확인할 수 있습니다. 2. 터미널에서 확인하기 1. command+space를 눌러 터미널을 검색합니다. 터미널에 아래 명령어를 입력하면 확인할 수 있습니다. ifconfig | grep inet
파티클 시스템(슈리켄) 유니티 파티클 시스템 컴포넌트는 씬 안에 다수의 작은 2D 이미지를 생성하고 애니메이션하여 액체, 구름 및 불꽃 같은 유체 엔티티를 시뮬레이션한다 주로 연속된 이미지를 추가하여 매 프레임미다 교체하며 애니메이션 하거나 특정 이미지 입자를 지속적으로 또는 단발성으로 방출하여 상황에 대한 묘사를 강조하는 데에 사용 예시 승리 / 클리어 강조 폭죽 배경 빗방울 활성화 버튼 강조 https://www.youtube.com/watch?v=9isW4oabq8Y 배경 불 https://www.youtube.com/watch?v=3qxlYr07CMc 배경 포탈 https://www.youtube.com/watch?v=r6G-6I_v1eA 배경 코인 https://www.youtube.com/wa..
이미지 생성하기UI 작업에 필요한 이미지를 Ai로 생성하였습니다. 주제 : 모바일 캐주얼 퍼즐 게임- UI 전체 컨셉에 사용할 이미지- 내부에 들어갈 아이템 이미지 작업 (화면 구성, 리터칭)생성한 이미지를 한 화면에 적용하였습니다. 작업 소요 시간 1.5일로처음 컨셉 단계부터 시작해서 실제 게임에 적용할 수 있을 정도의이미지를 만드는 데에 들어가는 총 작업 시간을 많이 단축시킬 수 있습니다. 보석류의 정형화된 아이콘보다 UI 전체 컨셉이나 곡괭이 같은 특정 아이템 이미지를 얻어내는 것에더 많은 생성 시도를 했습니다.
Object 객체 객체 - class로부터 만들어진 자료, class에 정의 되어있는 모든 멤버 변수를 정의할 수 있음 int float등은 값만 가지지만, 객체는 멤버 변수 외에 class에 정의 되어있는 메소드를 함께 실행할 수도 있음 (데이터와 기능을 함께 가질 수 있음) 1. Character 정의 2. player enemy 객체 만들기 3. 멤버 변수에 값 설정하기 .name .hp .damage 4. 객체들이 가지고 있는 기능 이용하기 TakeDamage 다른 방법 class를 만들고 class에 생성자를 정의해서 값을 바로 초기화 이 class로부터 player enemy boss라는 객체를 만들어서 기능 사용 Character에 값을 전달해서 사용자 정의 생성자를 호출할 수도 있고 그냥 ..
Class 클래스 클래스 - 관련있는 기능 데이터 하나로 묶어서 관리할 수 있는 것 연관된 자료들, 연관된 데이터들 그리고 그 데이터를 가지고 할 수 있는 어떤 동작, 기능을 묶어둔 것 public class Character { // 먼저 멤버 변수 정의 // 동작 메소드는 클래스 밑에다 정의 // 공통적인 정보 name hp damage - 멤버 변수 // this.변수 - 여기에 있는 값 사용하겠다 public string name; // 멤버 변수 public int hp; // 멤버 변수 public int damage; // 멤버 변수 public void TakeDamage(int damage) { // 전달 값이 있으면 외부에서 전달받은 값 사용(damage) this.hp -= damag..
Method 메소드 메소드 - 어떤 코드가 실행되는 전체 영역 (void Start, void Update 등) void 메소드이름() {} 쓰는 이유 하나의 영역 내에서 코드를 계속 작성하면 보기 힘듦 비슷한 동작 하는 코드 비슷하게 호출하는 식으로 사용 void - 아무것도 없다 비어있다 메소드이름 - 대문자로 시작하는 영어 단어 조합 코드 public class _13_Method : MonoBehaviour { void StartGame() { Debug.Log("Game Start"); } void EnemyTakeDamage(string name){ Debug.Log(name + " takes damage."); } void PlayerTakeDamage(string name, int hp, ..
Access Modifier 접근제한자 Access Modifier 접근제한자에는 private, public 두 가지가 있다. private은 Inspector에서 값을 수정할 수 없고, public은 Inspector에서 값을 수정할 수 있다. 다음과 같이 사용한다. private int damage = 10; public int damage = 10; int damage = 10; // 적지 않으면 기본 값은 private이다. 코드 public class _12_AccessModifier : MonoBehaviour { // private int damage = 10; // 인스펙터에서 수정 불가 public int damage = 10; // 인스펙터에서 수정 가능 // int damage = ..
Array 배열 변수는 하나의 데이터를 저장하기 위한 공간이다. 배열을 사용해 똑같은 형태의 데이터를 여러 개 관리할 수 있다. int enemy1 = 10; int enemy2 = 20; int enemy3 = 30; Debug.Log(enemy1); Debug.Log(enemy2); Debug.Log(enemy3); 이러한 형태로 사용하는 것을 int[] enemies = {10, 20, 30}; Debug.Log(enemies[0]); // 0 Debug.Log(enemies[1]); // 20 Debug.Log(enemies[2]); // 30 이렇게 줄여서 사용할 수 있으며 반복문을 사용해서 아래처럼 사용할 수도 있다. 자료형[] 변수 = new 자료형[개수]; string[] character..
Continue / Break 반복문 흐름제어 반복문 흐름을 제어하는 방법은 Continue, Break 두가지가 있다. 반복문 for 이 실행될 때, 아래와 같이 if (i == 3) {continue;} 코드를 추가하면 i가 3이 됐을때 실행 구문을 건너뛰고 다음 회차로 넘어가며 if (i == 3) {Debug.Log("Boss is dead."); break;} 코드를 추가하면 i가 3이 됐을때 실행을 중단할 수 있다. for (int i = 1; i
Loop 반복문 반복문은 for, while, foreach 3가지가 있다. for은 선언; 조건; 산술;로 아래와 같은 형태로 사용한다. for (int i = 0; i < 5; i++) { coin += 1; Debug.Log("coin : " + coin); } 선언을 해놓고 어떤걸 기준으로 반복을 할 지 결정하고 참일 경우 반복하다가 거짓일 경우 빠져나온다. (횟수O) while은 조건이 참인 동안 계속해서 반복한다. (횟수X) foreach는 나중에 배열에서 제대로 사용할 때 정리. 코드 public class _09_Loop : MonoBehaviour { // Start is called before the first frame update void Start() { int coin = 0;..
If 분기문 분기문은 if, else if, else 3가지가 있다. 아래와 같이 사용한다. if 만약 (조건) {조건이 참일 경우 실행} else if (또 다른 조건) {또 다른 조건이 참일 경우 실행} else {전부 거짓일 경우 실행} if (coin >= item1) { Debug.Log("Item 1 purchased."); coin -= item1; } else if (coin >= item2) { Debug.Log("Item 2 purchased."); coin -= item2; } else { Debug.Log("Not enough coin."); 코드 public class _08_If : MonoBehaviour { // Start is called before the first fr..
String 문자열 String을 사용해 문자열 변수를 선언하고, 변수를 조합해서 문자를 출력할 수 있다. s1.Length // 글자 길이 s1.ToLower() // 소문자 변경 s1.ToUpper() // 대문자 변경 s1.IndexOf("m") // 0부터 몇번째인지 s1[2] // 2번째 인덱스에 해당하는 값 s1.Substring(2) // 글자 일부 삭제 // 문자열 비교 s1 == "Player" // True s2 == "Enemy" // False s2.Contains("Enemy") // True s3.StartsWith("En") // True s1.EndsWith("er") // True // 특수 문자 "Game\nOver" // new line 줄바꿈 \n "Game\t\t\t..
Operator 연산자 산술 연산자 + - * / (int로 / 사용시 소수점 이하는 버림) 1이 더해지는 결과가 나오는 코드 num = num + 1; num += 1; num++; 1이 빠지는 결과가 나오는 코드 num = num - 1; num -= 1; num--; compare 비교 연산자 >, =, 5; Debug.Log(compare); // True Debug.Log(10 = 5); // True Debug.Log(10
TypeCasting 형변환자 형변환자 - 서로 다른 자료형으로 바꾸는 것 (정수 실수 문자열로 각각) // 정수형 -> 실수형 // int to double double time_d = (double) time; // 실수형 -> 정수형 // double to int time = (int) time_d; // int는 소수점 버려짐 // 정수형, 실수형 -> 문자열 // int, double to string string time_str = time.ToString(); Debug.Log(time_str); // "8" string time_d_str = time_d.ToString(); Debug.Log(time_d_str); // "8.9" // 문자열 -> 정수형, 실수형 // string to ..
728x90
gameuiux
May