오늘은 유니티 설치하는방법을 알아보겠습니다.

저 또한 처음에 유니티 설치하는법은 쉽다고 대충 설치했다가 나중에 더 편한방법을 찾게되어 포스팅합니다.

 

 

1. 우선 유니티 사이트에 들어가줍니다 ( https://unity.com/kr )

https://unity.com/kr 의 화면입니다 2020년 3월 기준

2. 시작하기버튼을 눌러서 개인 탭으로 들어가줍니다. 저희는 Personal 버전으로 시작 할 것입니다.

https://store.unity.com/kr/download-nuo 의 화면중 시작하기의 버튼

3. 스토어에서 시작하기버튼을 눌러서 동의 및 다운로드 하여줍니다.

유니티 허브 설치파일의 모습

4. 다운로드한 설치파일을 실행시켜줍니다.

5. 동의하고 설치를 진행하여 설치를 완료 합니다.

유니티 허브의 첫 실행화면. 좌측탭중에 학습탭이 적용된 모습입니다

짠! 이제 저희는 유니티를 실행시킬수있는 Hub를 가지게 되었습니다.

가장먼저 할것은 저희가 원하는 버전의 Unity를 허브에 추가해 주어야합니다.

좌측의 탭중에 설치 탭을 누르게되면 설치된 Unity 버전이 없다고 나옵니다.

우측위의 추가버튼을 눌러서 추가를 해 봅시다.

추가버튼을 눌렀을때 나오는 창

유니티로 개발을 하면 버전간 호환을 신경써 주어야 하는데

새로운버전을 쓰게되면 있던기능이 없어지거나 새로운 기능이 추가되는등 이슈가 발생합니다.

그래서 저희는 뒤에 (LTS)써있는 버전을 사용할 것입니다. 

LTS버전은 이미 개발이 완료되어서 새로운 기능을 더이상 추가하지않고 오류나 문제점만 찾아서 처리를 해줍니다.

따라서 LTS 버전중에 가장 최신인 2018 버전을 선택 한 후에 [다음] 버튼을 눌러줍니다.

Unity 모듈 추가 화면

이제 모듈을 추가할 시간입니다.

쉽게 말해 어떤  환경에서 어떤 목적으로 쓸것인지 모듈을 추가해주는 화면입니다.

Mac으로 개발 할 경우 Mac Build Support, Windows로 개발 할 경우 Windows Build Support를 체크 해주셔야합니다. 

저는 안드로이드 폰게임을 만들기위하여 Android Build Support 도 추가해주겠습니다.

증강현실의경우 Vuforia 등 다른 목적이 있으신분은 그 모듈에 체크를 해주시고 완료버튼을 눌러주시면 되겠습니다.

저는 윈도우로 안드로이드 게임을 개발할 목적이기때문에

모듈들중에

모듈을 선택한 모습

이 두 가지만 선택후에 완료버튼을 눌러 주겠습니다.

설치중인 화면

자 완료버튼을 눌렀다면 설치중인 화면이 보일것입니다. 설치가 끝날때 까지 기다려 줍니다. Hub시간보다 꽤 걸리니 인내심을 가져야 합니다. 

설치가 완료된 모습

설치가 완료되면 저희가 선택했던 버전 이름과, 추가한 모듈이 아이콘으로 아래에 이쁘게 표시가 됩니다.

이제 좌측에 프로젝트 탭으로 가시면 저희가 생성한 버전으로 프로젝트를 새로 생성 할 수 있습니다.

 

프로젝트탭에서 새로생성 버튼 옆의 화살표를 누르면 설치된 버전을 선택 할 수 있다.

설치 탭에서 여러 버전들을 추가해 두었다면 새로 생성 버튼 옆의 화살표를 눌러서 다양하게 선택 할 수 도 있습니다.

이미 만들어진 프로젝트를 추가버튼을 통하여 추가 할 수도 있습니다.

새 프로젝트를 생성하는 화면

 

이제 설치는 끝났습니다. 

원하는 템플릿을 선택하여 이름과 경로를 저장한뒤 유니티의 세계로 빠져봅시다.

'unity' 카테고리의 다른 글

앞으로 업데이트될 목록  (0) 2019.11.12
비쥬얼에서 유니티 네임스페이스 인식  (0) 2018.10.23

1. 유니티 설치절차

2. 각부위별이름

3. 기본 공굴리기예제

4. 서바이벌 슈터 - 캐릭터바꾸기 응용

5-1. 포톤

5. 탱크게임

6. 응용 네트워크게임( 내가만든거)

7. VR

8. 오브젝트풀

9. 슬라이스

10.리듬게임

 

 

'unity' 카테고리의 다른 글

1. [Unity] 유니티 설치하기  (0) 2020.03.31
비쥬얼에서 유니티 네임스페이스 인식  (0) 2018.10.23

이번 문제는 으딘가에서 나왔을법한 숨바꼭질 5입니다

수빈이가 이동할수있는곳을 다 찍어두고 

동생을 이동시키면서 시간의 최소값을 찾아보는 방식입니다.


특이점은 수빈이를 이동시킬때

oldTime[2][500000] 으로 맵을 만들고 (풀이에서는 500004로 정해놨음 )

홀수일때 짝수일대로 나눕니다. 그이유는

홀수는 홀수끼리 2씩 차이가나죠? 1 - 3 - 5 - 7 

근데 수빈이는 2턴을 지나게되면 제자리로 올수있는 기능이있습니다.

따라서 최소시간동안 동생이 지나갈곳에 도착을 하여서 대기를 하고있으면 동생은 알아서 찾아온다 이말입니다.

하지만 수빈이가 짝수시간에 도착을 한곳에 동생이 홀수시간에 도착을하면 절대로 만날수가없겠죠? (바로옆칸인데 못만나는 슬픔 ㅜ )

그래서 짝수시간에 도착했을때랑 홀수시간에 도착했을때 , 이두가지를 저장하기위하여 2줄짜리 배열을 만들어줍니다.


처음에 맵을 -1로 초기화시킨뒤에

초기 수빈이의 위치를 0 으로 놔줍니다. ( 초기 위치가 0이기때문에 맵자체를 0으로 해두면 오류나서 -1로함)

그리고 이제 이동하면서 -1인경우 숫자를채워줍니다 bfs기때문에 작은숫자부터 차근차근 잘들어가겠죠?

수빈이가 홀수타임때, 수빈이가 짝수타임때 위치에 시간을 저장해줍니다.


그리고 동생을 돌리면서 

동생의 현재 시간보다 작은값이 들어있으면 ( -1은 제외시킴)

그때 시간을 따로 저장해둡니다.

그리고 계속 찾아갑니다.뒤에 그 시간보다 짧은시간에 만난 친구가 있을수도있으니


그리고 마지막에 그 최소값을 출력해주면됩니다.

물론 처음 시간인 500004 에서 하나도 안바뀌었으면 만나지않는거니까 -1을 출력해줍니다

코드는개판이지만

제가 찾았을때 딴데 없길래..ㅎ...

그럼 2만


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#define _CRT_SECURE_NOWARNINGS
#include <iostream>
#include <queue>
#include <cmath>
using namespace std;
queue<pair<intint>> myq;
int oldTime[2][500004= { 0, };
int oldP, youngP;//형 +-1,x2  동생  +1 +2 +3 +4 +5
int qsize, youngT = 0;
int place = 0;
int minT = 500004;
bool isin(int a) {
    if (a < 0 || a>500000)return false;
    else return true;
}
void precheck(int old, int time) {
    if (isin(old - 1)) {
        if (oldTime[(time + 1) % 2][old - 1< 0)//-1 부분 있냐
        {
            oldTime[(time + 1) % 2][old - 1= time + 1;
            myq.push(make_pair(old - 1, time + 1));
        }
    }
    if (isin(old + 1)) {
        if (oldTime[(time + 1) % 2][old + 1< 0 && isin(old + 1))//+1 부분 있냐
        {
            oldTime[(time + 1) % 2][old + 1= time + 1;
            myq.push(make_pair(old + 1, time + 1));
        }
    }
    if (isin(old * 2)) {
        if (oldTime[(time + 1) % 2][old * 2< 0 && isin(old * 2))//*2부분 있냐
        {
            oldTime[(time + 1) % 2][old * 2= time + 1;
            myq.push(make_pair(old * 2, time + 1));
        }
    }
}
int main() {
    cin >> oldP >> youngP;
    for (int i = 0; i < 500004; i++) { // -1로 초기화
        oldTime[0][i] = -1;
        oldTime[1][i] = -1;
    }
    myq.push(make_pair(oldP, 0)); //처음값넣기
    oldTime[0][oldP] = 0// 출발위치 0으로 초기화
    while (!myq.empty()) {
        qsize = myq.size();
        for (int i = 0; i < qsize; i++) {
            precheck(myq.front().first, myq.front().second);
            myq.pop();
        }
    }
    place = youngP;
    while (place <= 500000) { //동생돌리기
        if (oldTime[youngT % 2][place] > -1 && oldTime[youngT % 2][place] <= youngT) {
            minT = min(minT, youngT);
        }
        youngT++;
        place += youngT;
    }
    if (minT == 500004)cout << -1;
    else cout << minT;
    return 0;
}
cs



'재미있는공부이야기 > 알고리듬' 카테고리의 다른 글

백준 9019번 DSLR  (0) 2019.02.28
백준 14499번 주사위굴리기  (0) 2019.02.28
백준 7569번 토마토  (0) 2019.02.20
백준 2178번 미로찾기  (0) 2019.02.20
KMP 알고리즘  (0) 2019.02.15

+ Recent posts