반응형

 

안녕하세요

정렬 알고리즘 중 가장 구현하기 쉬운 버블 정렬 알고리즘에 대해 알아보도록 하겠습니다.

 

버블 정렬 알고리즘

배열등 리스트에서 인접한 데이터들을 비교하여 정렬하는 알고리즘

 

구현 방법

오름차순 기준(제일 작은 값이 앞으로, 제일 큰 값이 뒤로 정렬)으로 설명하면,
첫 번째 데이터를 모든 데이터와 비교하면서 첫 번째 데이터가 더 크면 서로 스왑 하고,
다음 두 번째 데이터를 모든 데이터와 비교하면서 두 번째 데이터가 더 크면 서로 스왑 하는 과정을
마지막 데이터-1까지 계속 반복합니다.

 

예제


배열 arrData에 100, 20, 10, 12, 5 값이 있다면, 이 배열 데이터를 정렬하면 다음과 같이할 수 있습니다.


arrData의 첫번째 값 100을 두 번째 값 20과 비교했을 때, 100이 더 크기 때문에 두 값을 스왑 합니다.(20, 100, 10, 12, 5)
arrData의 두번째 값 100을 세 번째 값 10과 비교했을 때, 100이 더 크기 때문에 두 값을 스왑 합니다.(20, 10, 100, 12, 5)
arrData의 세번째 값 100을 네 번째 값 12과 비교했을 때, 100이 더 크기 때문에 두 값을 스왑 합니다.(20, 10, 12, 100, 5)
arrData의 네번째 값 100을 다섯 번째 값 5과 비교했을 때, 100이 더 크기 때문에 두 값을 스왑 합니다.(20, 10, 12,  5, 100)

 



arrData의 첫번째 값 20을 두 번째 값 10과 비교했을 때, 20이 더 크기 때문에 두 값을 스왑 합니다.(10, 20, 12,  5, 100)
arrData의 두번째 값 20을 세 번째 값 12과 비교했을 때, 20이 더 크기 때문에 두 값을 스왑 합니다.(10, 12, 20, 5, 100)
arrData의 세번째 값 20을 네 번째 값 5과 비교했을 때, 20이 더 크기 때문에 두 값을 스왑 합니다.(10, 12, 5, 20, 100)

 



arrData의 첫번째 값 10을 두 번째 값 12과 비교했을 때, 10이 더 작기 때문에 두 값을 스왑 하지 않습니다.(10, 12, 5, 20, 100)
arrData의 두번째 값 12를 세 번째 값 5과 비교했을 때, 12이 더 크기 때문에 두 값을 스왑 합니다.(10, 5, 12, 20, 100)

 


arrData의 첫번째 값 10을 두 번째 값 5과 비교했을 때, 10이 더 크기 때문에 두 값을 스왑 합니다.(5, 10, 12, 20, 100)

 

C++로 구현

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
#include <iostream>
using namespace std;
 
void main()
{
    int arrData[5= { 1002010125 };
    int nTemp;
    int nSize = sizeof(arrData) / sizeof(int);
 
    cout << "before : ";
    forint i = 0; i < 5; i++ )
        cout << arrData[i] << " ";
    cout << endl;
 
    forint i = 0; i < nSize-1; i++ )
    {
        forint j = 0; j < nSize-i-1; j++ )
        {
            if( arrData[j] > arrData[j+1] )
            {
                nTemp = arrData[j];
                arrData[j] = arrData[j+1];
                arrData[j+1= nTemp;
            }
        }
    }
    cout << "after : ";
    forint i = 0; i < 5; i++ )
        cout << arrData[i] << " ";
    cout << endl;
}
 
cs

반응형
반응형

순차 탐색 알고리즘이란?
순차 탐색 알고리즘(Sequential Search Algorithm)은 단순히 배 열등의 데이터 리스트에서 순차적으로 데이터를 비교하여 원하는 데이터를 찾아내는 알고리즘입니다.
특별히 이진탐색 알고리즘 등과 같이 정렬을 우선해야 하는 번거로움이 없이 사용이 가능하며, 단순하며 구현이 쉬운 장점을 갖고 있습니다.
하지만 데이터가 많은 경우에는 비효율적인 알고리즘입니다.
단방향으로 검색하기 때문에 선형 알고리즘(Linear Search Algorithm)이라고도 합니다.

예시
10개의 데이터를 가진 배열 arr 값이 10, 30, 50, ,80, 100, 120, 150, 180, 220, 250를 가지고 있으며,
찾을 데이터가 180인 경우,
순차적으로 

1번째에는 10과 비교하고, 

2번째는 30과 비교하고,

3번째는 50과 비교하고,

4번째는 80과 비교하고,

5번째는 100과 비교하고,

6번째는 120과 비교하고,

7번째는 150과 비교하고,

180을 가진 8번째 값(배열인덱스는 7)인 값을 찾게 됩니다.

C++ 코드로는 다음과 같습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
void main()
{
    int arrData[10= { 10305080100120150180220250 };
    int nNum;
    cout << "input data : ";
    cin >> nNum;
 
    forint i = 0; i < 10; i++ )
    {
        if( arrData[i] == nNum )
        {
            cout << "Find Index : " << i << endl;
            return;
        }
    }
    cout << "Not Find" << endl;
}
 
cs

반응형
반응형


이진 탐색이란?
이진 탐색(Binary Search)은 데이터로 정렬되어 있는 경우, 정렬된 값의 반에 해당되는 값과 계속 비교를 해서 검색 범위를 줄여, 원하는 값을 빠르게 찾아나가는 알고리즘을 말합니다.


예시
배열인 arr값이 10, 30, 50, ,80, 100, 120, 150, 180, 220, 250으로 배열에 저장되어있고,

여기서 50이 배열 어느 인덱스에 위치하는지 알고자 한다고 합시다.

배열의 최소 인덱스(nLow)는 0이고, 최대 인덱스(nHigh)는 9입니다.

최소 인덱스(nLow)와 최대 인덱스(nHigh)를 더한 후 2로 나눕니다.

그럼 중간값(nMid)이 나오게 됩니다.

입력값과 같은 값이 나올 때까지 이 과정을 반복하게 됩니다.

첫 번째에서는 

nLow = 0, nHigh = 9, nMid = (nLow + nHigh) / 2 = 4

arr[nMid]는 100이 나오게 되는데, 입력값보다 100은 큰 값이므로,

nHigh에 nMid에 1을 뺀 값을 넣습니다.(nHigh = nMid - 1)

두 번째에서는

nLow = 0, nHigh = 3, nMid = (nLow + nHigh) / 2 = 1

arr[nMid]는 30이 나오는데, 입력값보다 30은 작기 때문에

nLow에 nMid에 1 더한 값을 넣습니다.(nLow = nMid + 1)

세 번째에서는

nLow = 2, nHigh = 3, nMid = (nLow + nHigh) / 2 = 2

arr[nMid]는 50이므로, 입력값과 같은 값이 나오게 됩니다.

2번째 인덱스에 50 값을 찾았습니다.

C++ 코드로는 다음과 같습니다.

 

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
#include <iostream>
using namespace std;
 
void main()
{
    int arrData[10= { 10305080100120150180220250 };
 
    int nLow = 0;
    int nHigh = 9;
    int nMid = (nLow + nHigh) / 2;
    int nNum;
 
    cout << "input data : ";
    cin >> nNum;
 
    while( nLow <= nHigh )
    {
        nMid = (nLow + nHigh) / 2;
        cout << "nMid : " << nMid << endl;
        if ( arrData[nMid] == nNum )
        {
            cout << "Find Index : " << nMid << endl;
            return;
        }
        else if( arrData[nMid] < nNum )
        {
            nLow = nMid + 1;
        }
        else
        {
            nHigh = nMid - 1;
        }
    }
 
    cout << "Not Find" << endl;
}
 
cs

반응형
반응형

안녕하세요.

브롤스타즈를 삭제 후 오랜만에 설치를 했더니, 구글 연동이 불가능했습니다.

연동 버튼을 누르고 연동을 해도 버튼이 연동됨으로 변경되지 않았습니다.

인터넷 검색을 해봤을 때에는 해결방법이 "도움말 및 지원"을 통해서 고객센터에 연락을 하라는 것이었습니다.

그래서 게임 내에서 문의하기로 문의를 했습니다.

계정 관련 문의 - 계정분실을 눌렀습니다.

근데 다음과 같이 채팅창에 나왔습니다.

"안타깝게도, 분실한 미성년자 플레이어의 계정 복구를 도와드릴 수 없습니다. 미성년자 계정은 만 16세 미만 플레이어의 정보를 보호하기 위해 만들어진 특별한 버전이며, 현재는 Supercell ID에 연동할 수 없습니다. 추후에는 미성년자 계정도 복구해드릴 수 있도록 노력하겠습니다. 양해 부탁드립니다."

제 계정은 미성년자가 아닌데, 왜 이런 건지 알 수 없었습니다.

생각해보니 처음에 별생각 없이 나이 설정할 때 0살로 설정을 해서 연동이 불가능했습니다.

설정에서 게임 데이터를 지우고 다시 해보니 연동이 가능했습니다.

일단 설정에 들어가 브롤스타즈의 애플리케이션 정보에서 데이터를 삭제합니다.

그리고 게임 실행시킨 후 튜토리얼하고 나이 설정을 할 때 꼭 나이를 많게 설정해야 합니다. 16세 이상으로 해야 할 것 같습니다.

그러면 튜토리얼 진행 중에 연동된 아이디가 있다고 나오거나 튜토리얼을 다 끝내고 나온 후 구글 연동을 하면 됩니다.

같은 문제로 연동이 불가능하셨던 분들에게 도움이 되었으면 좋겠네요.

감사합니다.

반응형
반응형

안녕하세요.

오늘은 16진수 문자열을 10진수로 변경하는 방법에 대해 알아보도록 하겠습니다.

일단 간단하게 strtol함수를 이용할 수 있습니다.

stdlib.h헤더 파일만 추가하고 사용하면 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
 
void main()
{
    char chHex[] = "9B";
    unsigned int nResult = 0;
    
    nResult = strtol(chHex, NULL16);
 
    printf ( "%s => %d\n", chHex, nResult );
}
cs

 

직접 구현할 수도 있습니다.

보통 코딩문제에서도 많이 나오는 경우가 있는데, 다음과 같이 구현할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <string.h>
 
void main()
{
    char chHex[] = "9b";
    unsigned int nResult = 0;
    
    for ( int i = 0; i <= strlen(chHex); i++ )
    {
        if ( chHex[i] >= 'A' && chHex[i] <= 'F' )                // chHex값이 'A'(65)~'F'(70) 일때
            nResult = nResult * 16 + chHex[i] - 'A' + 10;
        else if ( chHex[i] >= 'a' && chHex[i] <= 'f' )                // chHex값이 'a'(97)~'f'(102) 일때
            nResult = nResult * 16 + chHex[i] - 'a' + 10;
        else if ( chHex[i] >= '0' && chHex[i] <= '9' )            // chHex값이 '0'(48)~'9'(57) 일때
            nResult = nResult * 16 + chHex[i] - '0';
    }
 
    printf ( "%s => %d\n", chHex, nResult );
}
cs

코드 설명을 하자면, 자릿수에 따라 16을 곱하고 0~F(16)을 더합니다.

0~F값을 더하기 위해서는 문자열의 각각 문자에 대해 'A'~'F' 일 경우에는 'A'값을 빼고 10을 더해줘서 10~F(16) 값을 만들어주고, 'a'~'f' 일경우에는 'a'값을 빼고 10을 더해줘서 10~F(16) 값을 만들어주고, '0'~'9' 일경우에는 '0'값을 빼서 0~9 값을 만들어줍니다.

예를 들면 9b 같은 경우에는 일단 chHex[0]값이 '9'를 계산해서 nResult에 넣습니다.

nResult = 0(nResult) * 16 + 57('9') - 48('0') = 9

그리고 다음 chHex[1]값 'b'를 nResult에 더해줍니다.

nResult = 9(nResult) * 16 + 98('b') - 97('a') + 10 = 155

 

출력값은 다음과 같습니다.

9b => 155

반응형
반응형

안녕하세요.

특정 폴더의 파일리스트를 받아와야하는 경우가 있습니다.

검색이 수월하지 않는 것 같아서, 제가 구현한 내용을 정리하면서 올립니다.

테스트를 많이하지 않아서 오류나 버그가 있을 수 있으니, 참고 부탁드립니다.

그리고 컴파일러는(Visual Studio)는 관리자권한으로 실행해야합니다.

실행파일도 마찬가지로 관리자권한으로 실행해야 제대로 파일리스트를 얻을 수 있습니다.

이렇게 구현했습니다.

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
#include <Windows.h>
#include <string>
#include <stdio.h>
using namespace std;
 
FILE *fp;
 
void FindFile(wchar_t* path);
void main()
{
    // 파일리스트를 파일로 저장합니다.
    fp = _wfopen(L"filelist.txt", L"w+");
    // 특정경로지정
    wchar_t path[256= L"C:\\Patch\\";
 
    FindFile(path);
    fclose(fp);
    
}
void FindFile(wchar_t* path)
{
    WIN32_FIND_DATA fd;
 
    wchar_t path2[256];
    wsprintf(path2, L"%s%s", path, L"*.*" );
 
    HANDLE hFind = ::FindFirstFile(path2, &fd);
 
    if( hFind != INVALID_HANDLE_VALUE )
    {
        do
        {
            if(!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
            {
                // 콘솔창에서 출력
                //wprintf(L"%s\n", fd.cFileName);
                // 파일로 저장
                fwprintf(fp, L"%s\n", fd.cFileName);
            }
            else
            {
                if( fd.cFileName[0!= '.')
                {
 
                wchar_t path3[256];
                wsprintf(path3, L"%s%s\\", path, fd.cFileName );
                //재귀호출합니다.
                FindFile(path3);
                }
            }
        }while(::FindNextFile(hFind,&fd));
        ::FindClose(hFind);
    }
}
cs

C드라이브의 Patch폴더에 있는 모든 파일들을 얻어오는 코드입니다.

재귀호출을 이용하여 하위 폴더에 있는 파일까지 얻어올 수 있습니다.

콘솔로 띄우면 파일이 많아질 경우 확인이 어렵기 때문에 파일로 저장되도록 처리했습니다.

프로젝트 폴더에서 확인하면 filelist.txt파일로 확인할 수 있습니다.

만약 경로까지 파일에 저장하려면,

38줄의 fwprintf(fp, L"%s\n", fd.cFileName); 부분을

fwprintf(fp, L"%s%s\n", path, fd.cFileName);  이렇게 변경해주면,

경로가 같이 저장됩니다.

 

wchar_t 대신 char형으로 사용해야하는 경우는 다음과 같이 구현할 수 있습니다.

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
#include <Windows.h>
#include <string>
#include <stdio.h>
#include <io.h>
#include <conio.h>
using namespace std;
 
FILE *fp;
 
void FindFile(char* path);
void main()
{
    // 파일리스트를 파일로 저장합니다.
    fp = fopen("filelist.txt""wb");
    // 특정경로지정
    char path[256= "C:\\Patch\\";
 
    FindFile(path);
    fclose(fp);
    
}
void FindFile(char* path)
{
    _finddata_t fd;
 
    char path2[256];
    sprintf(path2, "%s%s", path, "*.*" );
 
    long hFind = _findfirst(path2, &fd);
 
    if( hFind != -1 )
    {
        do
        {
            if(!(fd.attrib & FILE_ATTRIBUTE_DIRECTORY))
            {
                // 콘솔창에서 출력
                //wprintf(L"%s\n", fd.cFileName);
                // 파일로 저장
                fprintf(fp, "%s\n", fd.name);
            }
            else
            {
                if( fd.name[0!= '.')
                {
 
                char path3[256];
                sprintf(path3, "%s%s\\", path, fd.name );
                //재귀호출합니다.
                FindFile(path3);
                }
            }
        }while(_findnext(hFind,&fd) != -1);
        _findclose(hFind);
    }
}
cs
반응형
반응형

안녕하세요. 개발남입니다.

저는 요즘 결혼 준비를 하고 있습니다. 

결혼 예복이 비용이 많이 들기 때문에 

손품을 많이 팔았는데요.ㅋㅋ

사실 정장을 맞추기 싫어서 여자 친구랑도 많이 싸웠습니다.

개발자 분들은 아시겠지만 

각종 경조사에는 깔끔한 새미 정장을 회사에는 청바지를 입기 때문에

안 사려고 했지만 인생에 필요한 순간이 있을 거라는 어머님과 여자 친구에 말에 

알아보게 되었습니다.

https://gall.dcinside.com/board/lists/?id=department_store

 

백화점, 마트 갤러리

인터넷방송, 백화점, 마트, department_store community portal dcinside

gall.dcinside.com

여기서 후보군이 3개로 추려지더라고요.

 

1.모배터 쉬크

http://mobetterchic.com/

 

모베터쉬크

대표채촌, 1:1페이퍼패턴, 맞춤정장, 테일러샵, 맞춤셔츠, 수제화, 신랑예복, 대여턱시도

mobetterchic.com

여기는 아는 지인이 소개했는데요.

정가 책도 없고 제일모직에 울 함유량이 적은데 비싸게 부르더라고요.

전 가기 전 DC백화점 마트 갤러리에서 엄청 찾아보고 공부해서 

비싼 것 같은 느낌이 오더라고요.

테일러 샵에 갈 땐 공부를 해야 하는 것 같습니다.

 

2. 광화문 반니

잘 만들지만 추가 비용이 있을 수 있고 반니만의 스타일이 있더라고요. (DC백화점에 결론이더라고요. ㅋㅋ)

집에서 멀기에 맨 마지막으로 갈 생각이었는데 2번째간 청담 루쏘소에서 하게 되었습니다.

 

 

2. 청담 루쏘소

http://www.lussoso.com/

 

LUSSOSO

국내 최대 규모 맞춤정장,맞춤예복 브랜드.전국 50개 지점,직영공장,패턴개발연구소 보유. 비스포크, MTM,턱시도 대여,남성정장 및 패션정보,단체복 문의,런칭15주년 이벤트 중

www.lussoso.com

"예복이면 루쏘소 청담 추천해줄게 형 
대신 비접착으로 해 
루쏘소 청담이 예복으로 특화돼서 원단 이벤트도 많고 
촬영복 대여도 사이즈별로 완전 많이 빌려주고 각종 혜택이 잴 많아 가격도 저렴하고...
김영태 테일러야 옷은 말할 것도 없지"

 이런 글이 제법 있더라고요. 모베터 쉬크 갔다가 화나서 돌아오고 

그날 밤 불타는 써치를 해서 "루쏘소"를 갔습니다.

루쏘소 매장

예약하고 가지 않아서 예약이 있다고 1시간을 기다려야 했습니다. (예약하고 가세요.ㅠㅠ)

김영태 디자이너님이 잘하신다고 해서 갔는데 

여성 디자이너 분이 제 옷을 만들어 주셨습니다.

첨엔 아쉬웠지만 정말 친절하셔서 "더 잘되었구나" 싶었습니다.

편하게 해 주시니까 이것저것 더 물어볼 수 있었습니다.

쌓여있는 맞춤복과 신발

 

제가 고른 것은

웨딩패키지

B타입입니다. 턱시도를 결혼 날짜까지 못 만들 것 같아서

결혼 당일은 대여복을 입고 할 생각입니다.

천별가격

나라와 천 별로 특성이 많더라고요.

이탈리아와 한국 천에는 광이 나고 부드럽고 그래서 확 떨어지는 느낌이고

영국 천은 몸에 단단함을 잘 잡아 준다고 하더라고요.

 

이벤트를 고르고 천에 대해 자세하게 알려 주셨습니다.

거의 울 100%였고 

천은 기호 차이더라고요.

여자 친구의 아버님이 300만 원짜리 광나는 슈트를 사셨는데 부티 난다고 했지만 

디자이너님께서는 나이가 든 사람들이 많이 입는 스타일이라고 했고요.

입어보니 약간촤르르 떨어지는 것보다는 제 체형에는 좀 잡아주는 게 낫더라고요.

천 스터디가 끝나고 천 종류별로 다 입어봤습니다. ㄷㄷㄷ(진짜 여자 디자이너님 넘 좋았습니다!!)

( 여자 친구가 위에서 아래로 찍어서 춥파 춥스같이 나왔지만;; )

좋은 천을 고를 수 있게 디자이너님께서 많이 입어보게 해 주셨습니다.

여러 가지를 고려해서 까노니코로했습니다.

체촌시간

체촌 시간 꼼꼼하게 해 주시고~!!

구두 고르기 시간

구두를 고르고 사이즈를 재었습니다. 

갈색 구두가 더 예쁜 것 같았지만 결혼식날 신어야 해서

검은 구두 골랐습니다. 

그리고 대여복고르고

 

첫 맞춤옷이 어떻게 나올지 기대됩니다.

 

 

 

 

반응형
반응형

안녕하세요.

알리익스프레스에서 휴대폰을 구매한 후 60일이 지난 후 바로 환불신청을 했습니다.

https://scvtwo.tistory.com/163

 

알리익스프레스 환불 ( 기한안에 배송되지 않아 환불 신청하기 )

안녕하세요. 2달 전에 알리익스프레스에서 홍미노트 8을 구매를 했는데, 60일이 지나도록 배송이 되지 않았습니다. 매일 알리익스프레스 웹페이지가서 어디까지 왔는지 확인했는데, 안타깝게도

scvtwo.tistory.com

근데, 한 달여 시간 후 갑자기 제품이 도착을 했습니다.

어떻게 할까 검색을 해봤는데, 보통은 판매자(셀러)와 협의해서 다시 반품을 하거나, 다른 제품으로 구매,

혹은 페이팔을 통한 송금 등 중 1가지 방법으로 처리가 되었습니다.

소액일 경우에는 운송비용으로 인해 구매자에게 선물로 주는 경우도 있었습니다.

저도 마찬가지로 협의를 하려고 채팅으로 현재 상황을 알리고 협의를 하려고 했으나, 1~2주 정도 시간이 흘렀음에도 불구하고 연락이 되지 않았습니다.

판매자가 반품을 요구할 수 있어서 개봉할 수도 없고, 같은 제품을 구매해서 주소를 안 적어서 처리하기에도 제품이 구매할 때 비용보다 더 올라있는 상태라서 반드시 판매자와 연락이 되어야 하는 상황이었습니다.

이리저리 봐도 알리익스프레스 내에서 판매자와 연락할 수 있는 길은 채팅뿐이 없어서, 매일같이 채팅을 보내서 협의하자고 하는 수밖에 없었습니다.

그래서 알리익스프레스에 문의하면 방법을 찾아줄까 했지만, 알리익스프레스 고객센터와 연락하는 방법도 찾기가 좀 어려웠습니다.

그러던 채팅 봇을 통해 문의 내용을 입력해서 알리익스프레스 고객센터와 연락이 되었습니다.

 

채팅 봇인 Eva를 엽니다.

여기서 "판매자의 연락처를 알고싶어"라고 엔터를 누릅니다.

제품 문제, 셀러문제등 선택메뉴가 나오는데,

"셀러문제"를 선택해줍니다.

판매자에게 메시지를 보낼 수 없다고 적었더니,

메시지 발송에 문제가 있는 것에 대해 죄송합니다. 고객님의 메시지 수량이 보고됐다면 구매자 규칙에 따라 고객님 메시지 센터의 기능이 사용될 수 없을 것입니다. 판매자와 연락하기 위해 고객님 이메일 등 다른 방법을 사용하는 것을 제안합니다. 이해해 주셔서 감사합니다.

메시지 기능을 더 잘 사용하기 위한 아래와 같이 안내들입니다:

-- 광고와 같은 플랫폼은 수락하지 않은 단어를 포함하면 안 됩니다.

-- 짧은 시간 내 여러 번 반복적으로 발송하지 마십시오.

라고 적혀서 나왔습니다.

그리고 고객센터와 연결할 수 있는 메뉴가 나왔습니다.

드디어 고객센터와 대화할 수 있었습니다.

다음은 채팅한 내용입니다.

구글 번역으로 번역되는 것 같았습니다. 번역이 조금 어색한 점이 있었지만, 그래도 의사소통하는데 문제는 없었습니다.

 

 

알리익스프레스의 구매자 보호의 일환으로 결국 다시 돌려주지 않아도 된다는 알리익스프레스 고객센터의 말을 듣고 휴대폰을 개봉하기로 했습니다.

휴대폰 하나를 얻은 것 같긴 하지만, 추후에 판매자가 환불을 요구한다면, 정당한 조건으로 다시 돌려주도록 해야겠습니다.

적당한 협의를 해서 마무리되었으면 좋았을 것 같은데 조금 아쉬웠습니다.

혹시 저와 같은 상황이 있었다면 도움이 되셨으면 좋겠습니다.

 

반응형
반응형

아이폰을 구매해서 초기 비밀번호를 입력했는데, 제가 입력한 비밀번호가 틀리다고 나와서,

비밀번호를 찾는 방법을 찾아봤습니다.

APPLE 아이디가 있기 떄문에 찾는 방법이 있을줄 알았는데, 방법이 공장초기화뿐이 없다고 합니다.

https://support.apple.com/ko-kr/HT201487

PC가 필요합니다.

1. PC에 아이튠즈 설치 후 실행

PC에 아이튠즈를 깔아야합니다.

제 PC는 윈도우 운영체제이기 떄문에 윈도우 위주로 설명을 하도록 하겠습니다.

PC에서 다음사이트를 이용해서 아이튠즈를 설치합니다.

https://www.apple.com/kr/itunes/download/

윈도우 스토어를 이용하기 싫다면, 인스톨 버전으로 다운로드도 가능합니다.

아이튠즈를 설치하고 실행을 했다면 다음과정을 진행합니다.

2. 전원을 끈 후 측면 버튼을 이용하여 아이폰과 PC와 연결

일단 전원을 꺼야합니다.

볼륨 업 버튼과 측면 버튼을 눌러서 전원을 끕니다.

그 후 PC와 연결해야하기 떄문에 측면버튼을 아래와 같은 화면이 나올때 까지 누릅니다.

3. 아이튠즈에서 공장초기화(아이폰복원)

연결이 되면 아래와 같은 화면이 아이튠즈에서 뜹니다.

다음 과정을 거치기전에 설치 디스크의 용량을 확인을 해야합니다.

설치할 파일들은 디스크에 다운받기 때문에 넉넉히 10기가이상은 있어야하는 것 같습니다.(10기가 이상이 필요할 수 도 있습니다. 정확하게는 모르겠습니다. 용량이 계속 없다고해서 파일들을 계속 지웠습니다. 20기가 이상 용량이 없다면 확실히 문제가 없습니다.)

용량이 확보가 되었다면 아이튠즈에서 복원 버튼을 누릅니다.

그리고 다음 메세지 박스에서 복원 및 업데이트를 누릅니다.

 

다음 버튼을 누릅니다.

내용을 잘읽어본 후 동의를 누릅니다.

 

빨간색으로 체크한 버튼을 누르면 진행상황을 확인할 수 있습니다.

4. 재시작 후 아이폰 설정

진행이 다되고 설치가 완료되면 아이폰이 재시작됩니다.

 

그리고 초기 화면이 뜨고 다시 재설정할 수 있습니다.

 

반응형
반응형

안녕하세요.

오늘은 아이폰 11을 구매하려고 이것저것 정보를 찾아본 후 그 내용을 함께 공유해보려고 글을 적습니다.

 

구매 결정

휴대폰이 점점 수명을 다하고 있는 것 같아서, 새로운 휴대폰을 구입하려던 도중에 조금 더 화질 좋은 사진을 얻고 싶어서, 아이폰 구매를 결정했습니다.

아이폰 SE는 배터리 용량이 너무 적고, 화면 크기도 좀 작은 편이라 차라리 돈을 더 들여서 아이폰 11을 구매하자고 마음먹었습니다.

처음에는 완전 좋은 걸 써보자고 아이폰 PRO나 MAX가 알아봤지만, 다른 점은 더 좋은 화면(11은 LCD, PRO와 맥스는 OLED 탑재)과 망원 카메라(PRO와 MAX에만 탑재)였습니다.

휴대폰 화면에 그렇게 신경을 안 쓰고, 망원 카메라(화면 확대 시 덜 깨지는 용도)는 그렇게 많이 사용하지 않을 것 같아서 그나마 저렴한 아이폰 11로 구매를 결정했습니다. 그 대신 메모리는 128G로 구입하려고 합니다. 

 

구매 방법

저는 일단 SKT를 사용 중이고 선택 약정이 1년 정도 남아 있었기 때문에, 위약금을 물고 기기변경을 해야 할 줄 알고 자급제폰을 사려고 했지만, 알아보니까 기기변경 시에는 잔여기간을 승계해준다고 해서 기기변경으로 구매를 하기로 했습니다.

다음 공시 지원금보다는 선택 약정이 더 많이 할인이 되는 것 같아서 선택 약정으로 찾아보기로 했습니다.

 

검색

가격비교 사이트를 통해 검색을 해보았습니다.

일단 저는 가격비교 사이트 중 다나와를 선호하는 편입니다.

이유를 다음과 같습니다.

1. 검색하기가 조금 더 수월

2. 제휴몰 쿠폰이 나오는 경우가 있음.

3. 링크해서 들어가면 쇼핑몰 사이트보다도 더 저렴하게 구입되는 경우가 있음.

4. 제품의 성능이 표시됨.

 

검색어로 제가 원하는 키워드로 검색을 했습니다.

"아이폰11 skt 기기변경 선택 약정"이라고 키워드를 검색했습니다.

첫 번째에 제가 원하는 제품이 나왔습니다.

835,700원을 클릭하면 여러 쇼핑몰 사이트의 가격이 나와있습니다.

쇼핑몰에서 주의 깊게 확인할 점

여기서 조금 주의할 것은 쇼핑몰에 막상 들어가면, 내가 원하는 옵션을 누르면 더 가격이 높아지는 경우가 있습니다.

사이트 하나씩 들어가면서 가격을 확인해야 합니다.

그리고 휴대폰은 카드 할인을 통해 더 최적가가 될 수 있기 때문에, 카드를 소지하고 있다면 카드할인을 받는 것도 중요합니다.

저는 하나카드를 사용 중인데, 60만 원 이상 쓰면 다음 달 혜택 금액으로 2만 원 정도 나오기 때문에 웬만하면 하나카드 할인받는 곳을 찾아봤지만, 하나카드는 이벤트를 잘 안 하는 것 같습니다.

또한 주의점은 보통 비싼 요금제를 몇 달 동안 유지를 해야 하는 경우가 있는데, 이게 4 달인 경우가 있고, 6 달인 경우가 있습니다. 

원래 비싼 요금제를 사용하는 사람이라면 상관없지만, 저렴한 요금제를 사용하신다면 유지조건을 확인해야 합니다.

6달유지 조건
4달 유지조건

그리고 알람 같은걸 맞춰놓고 꼭 바꾸셔야 잘 찾아서 구매를 했더라도 손해 보는 일이 없을 것 같습니다.

기타 약정 조건 같은 게 자신에게 맞는지, 최대한 내용을 많이 읽어보셔야 합니다.

애매한 내용들은 꼭 판매자에게 문의하고, 두 번, 세 번 체크하는 것이 좋습니다.

 

구매계획

1. 롯데홈쇼핑에서 구매를 계획했습니다.

여기에서 구매하려는 이유는 롯데홈쇼핑에 매일 카드 할인이 변경되고 있는데, 하나카드가 한 번쯤 나와서 5프로 청구 할인은 할 것 같고 여기 판매자는 유지 조건이 4달이 때문입니다.

6월 2일에는 국민카드, 6월 4일에는 삼성카드, 6월 5일(오늘) 현대카드 이렇게 되면 기다리면 한번 할 수 도 있다는 생각에 기다리고 있습니다.

그렇게 되면 오늘 기준으로 831,730원에 저는 60만 원 이상 쓰면 다음 달에 혜택 금액이 2만 원(커피 할인 같은 거 사용 가능한 금액)이 나오기 때문에 실제로 81만 원 정도로 구매하는 효과를 얻을 수 있기 때문이였습니다.

혹시 사용하시는 카드사가 없을 때, 급하지 않으시면 이렇게 기다린 후 만약 해당 카드사 할인 이벤트가 진행된다면 할 수 있는 방법인 것 같습니다.

2. 시간될 때마다 계속 가격체크

언제 더 좋은 조건으로 나올 수 있는가 확인을 해보려면 계속 체크하는 방법뿐이 없는 것 같습니다.

구매

계속 검색하면서 확인하던 중에 하나카드 7프로 할인이 홈&쇼핑에서 진행중이라서 구매했습니다.

비교적 저렴한 비용이고 요금제 4개월 유지를 하면 되는것이라서 구매하게 되었습니다.

저렴하게 살려고 하면서 느낀점

찾아보면서 느낀 건데, 가격이 하루마다 차이가 생겨나고, 언제 사든 좀 나중에 사는 게 더 저렴하게 느껴집니다.

그리고 계속 시간을 쓰면서 찾아봐야 더 저렴하게 구입하게 되는데, 시간을 많이 쓰면 그게 다 돈이기 때문에 많은 시간을 들이는 것이 좋지만은 않은 것 같습니다.

 

 

Apple 아이폰 13 자급제, 256GB, 핑크

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

반응형
반응형

안녕하세요.

2달 전에 알리익스프레스에서 홍미노트 8을 구매를 했는데, 60일이 지나도록 배송이 되지 않았습니다.

매일 알리익스프레스 웹페이지가서 어디까지 왔는지 확인했는데, 안타깝게도 환불받아야 될 것 같습니다.

계정에 해당되는 메일에도 못 받았으면 클레임 요청을 접수하라고 합니다.

알리익스프레스에 접속해서 주문 내용을 확인합니다.

4월 1일 이후로 이동하지 않았네요.

 

공개 분쟁을 눌러주면 다음과 같은 화면이 나옵니다.

저는 환불을 할 거라서 "만 환불" 한국어로 번역해서 이렇게 나오네요.

원래 영어로는 Refund Only라고 적혀있습니다.

"반환 제품은" 이거는 Return Goods 상품을 반송하고 환불받는 것 같습니다.

저는 환불이 필요하기 때문에 "만 환불"버튼을 누르겠습니다.

다음 페이지에서 환불에 대한 내용을 기입합니다.

저는 물건을 받지 못해서 못 받았다고 체크하고

아직 운송 중인데, 못 받아서 리스트 박스에서 "구매 보호가 부족하지만 패키지가 아직 운송 중입니다." 이걸 선택했습니다

환불은 모두 받는다고 했습니다.

세부 내용은 저는 영어에 조금 취약하기 때문에, 번역기를 이용해서 영어로 적었습니다.

"The goods do not arrive so that the 60 days are over. Refund is required."

다 적고 밑에 제출 버튼을 눌러줍니다.

신청을 완료했습니다.

6월 3일까지 협상 완료가 예상된다고 적혀있습니다.

 

하지만, 저는 6월 2일경에 환불이 완료되었다고, 이메일을 통해 연락이 왔습니다.

알리익스프레스에 로그인해보니, 다음과 분쟁이 완료되었다고 적혀있습니다.

 

바로 환불이 안되어서 확인해보다가 분쟁 상세 내역에 내용을 보니, 다음과 같은 문구가 있었습니다.

Reminder: Normally buyer will receive the refund in 3-20 business days.(알림 : 일반적으로 구매자는 영업일 기준 3-20 일 내에 환불을 받습니다.)

3~20일 정도 걸린다고 적혀있었습니다.

일주일 정도 다돼가도 환불이 안돼서, 왜 안되는지 확인하다가 카드사 앱을 확인했는데, 일시불 취소(환불)가 되어있었습니다.

카드사 앱에서 해외 청구내역에서 조회해서 확인했습니다.

취소도 알림이 오던데, 해외 취소 내역은 안 오는가 봅니다.

아래는 하나카드 앱에서의 해외 청구내역입니다.

검색 통해 환불받았다는 알아낸 정보들이 대체로 몇천 원 정도였기 때문에 소액이라 쉽게 환불을 받는 게 아닐까 하는 생각이 들었습니다.

그래서 혹시나 환불을 받지 못할까 하는 걱정이 되었는데, 다행히도 별문제 없이 단시간에 환불받을 수 있었습니다.

다른 판매자에게 구매할 수도 있겠지만, 또 기다리기는 어렵기 때문에 다른 휴대폰을 구매했습니다.

근데 환불 후에 제품이 도착했습니다.

다음 글을 참조하시면 됩니다.

https://scvtwo.tistory.com/166

 

알리익스프레스 환불 후 제품이 도착(판매자가 연락불가능)

안녕하세요. 알리익스프레스에서 휴대폰을 구매한 후 60일이 지난 후 바로 환불신청을 했습니다. 근데, 한달여 시간 후 갑자기 제품이 도착을 했습니다. 어떻게 할까 검색을 해봤는데, 보통은 판

scvtwo.tistory.com

 

반응형
반응형

안녕하세요.

오늘은 짜파구리에 대해 이야기 해보려고합니다.

아빠어디가에서 김성주 아나운서님이 만들고나서 유명해지고, 

봉준호 감독의 영화 '기생충'으로 인해 유명해진 짜파게티와 너구리라면을 섞어서 만드는 짜파구리가 컵라면으로 출시되었습니다.

해외시장으로 판매가 된다고하니, 우리나라 뿐만 아니라 더욱더 세계인들이 즐기는 짜파구리가 될거같네요.

https://www.mk.co.kr/news/business/view/2020/04/409140/

 

농심 `짜파구리` 컵라면 글로벌 출시 - 매일경제

 

www.mk.co.kr

이제 따로 짜파게티와 너구리를 따로 살 필요없이 먹을 수 있습니다.

이마트에 들렀다가 짜파구리를 발견하고 한번 먹어보고자 구매했습니다.

이마트 가격은 1,320원이였습니다.(5월 20일 기준 990원 이벤트중이네요)

편의점가격은( GS편의점기준) 1600원이네요

롯데 슈퍼에서는 2020년 5월 16일 기준 990원이네요.

 

 

 

일단 원재료는 다음과 같고, 유통기한은 출시 후 6개월 이후까지 입니다.

면/소맥분(밀:호주산, 미국산), 팜유(말레이시아산), 감자전분(덴마크산), 변성전분, 난각칼슘, 식물성 풍미유, 정제염, 면류첨가알카리제(산도조절제), 혼합제제(산도조절제), 올리고녹차풍미액, 비타민B2

스프류/정백당, 채종유, 북말짜장, 짜장베이스분말, 분말카라멜2호(카라멜색소, 물엿분말), 포도당, 분말카라멜3호(카라멜색소, 물엿분말, 효소처리스테비아), 홍합조미분, 홍합지미베이스분말, 볶음조미소맥분, 해물채소분말, 찰리맛조미분, 복합조미간장분말, 야채오일분말, 볶음양념분, 매운맛분말, 볶음조미옥수수분, 구운해물분, 5'-리보뉴클레오티드이나트륨, 정제염, 매운맛조미분, 시원한육수분말, 짜장베이스, 양파볶음분말, 조미아미노산 간장분말, 조미짜장분말, 멸치조미분, 호화감자전분, 동결건조생생고추분말, 호박산이나트륨, 호추가루, 물엿분말, 야채볶음풍미유, 매운맛풍미유, 파프리카추출색소, 조미단백, 너구리형어묵, 건다시마, 건당근, 건미역

대두, 밀, 우유, 계란, 돼지고기, 쇠고기, 새우, 오징어 조개류(홍합 포함) 함유

 

 

칼로리는 500Kcal정도되네요.

영양정보는 다음과 같습니다.

나트륨 1,230mg, 탄수화물 74g, 당류 9g, 지방 19g, 트랜스지방 0g, 포화지방 8g, 콜레스테롤 5mg미만, 단백질 8g, 칼슘149mg입니다.

 

 

조리법은 다음과 같습니다.

1. 뚜껑을 완전히 떼어낸 후, 분말스프와 조미유를 꺼냅니다.

2. 끊는 물(220ml)을 용기 안쪽 표시선까지 붓습니다.

3. 전자레인지(1000W)에 3분간 조리합니다.(700W기준, 3분40초)

4. 조리 후 분말스프와 조미유를 넣고 맛있게 비벼드시면 됩니다.

※ 나트륨(식염) 섭취를 조절하기 위하여 기호에 따라 적정량의 스프를 첨가하여 조리하십시오.

※ 조리 시 , 뜨거우니 화상에 주의하세요.

 

 

끊은 물을 넣고 전자레인지에 3분을 돌렸습니다.

 

 

 

분말스프와 조미유를 같이 넣고 쓱싹 비빕니다.

 

 

https://www.youtube.com/watch?v=dMSWfqRNx6s

봉지라면으로 짜파게티와 너구리와 섞었을 때 먹었던 맛과는 조금 다른 맛이였습니다.(제가 섞었던 조합이 조금 잘못된 조합일 수 도 있습니다)

매운것을 잘못먹는 제가 먹었을 때는 처음 맛은 좀 많이 매웠습니다.

그치만 먹으면 먹을 수록 무언가 중독되는 맛이 느껴졌고, 약간은 불량식품같은 느낌이 들었습니다.

그럭저럭 맛은 나쁘지 않았습니다.

하지만, 그냥 짜파게티를 먹는게 더 맛있을거같습니다.

 

반응형
반응형

안녕하세요.

오늘은 남성 시장에 위치한 죽집을 소개해드리려고 합니다.

상호는 냉면집인데 죽과 만두를 리뷰했다는 것을 미리 알려드리겠습니다.

치과 치료를 받은 후 씹는데 불편함이 있어서, 죽집을 찾았습니다.

시장엔 죽집이 하나 있을 거라고 예상하고, 남성 시장으로 들어가서 죽집을 찾게 되었습니다.

때마침 죽을 판다는 가게가 있어서 찾아가게 되었습니다.

죽(대) 6,000원, 죽(소) 4,000원이 적혀있었습니다.

호박죽 대와 만두 6개를 시켰습니다.

메뉴는 다음과 같았습니다.

 

가게 대표 메뉴는 냉면인 거 같았습니다.

전체적으로 홀은 자리가 그렇게 많지는 않았습니다.

주문은 한 후 간단한 밑반찬(?)이 나왔습니다.

냉면 밑반찬 같았습니다.

만두를 시켜서 간장도 나온 거 같습니다.

그리고 호박죽도 바로 나왔습니다.

호박죽은 두 명이서 먹어도 괜찮을 정도로 좀 큰 그릇에 나왔습니다.

옹심이는 4~5개 정도 들어있었습니다.

맛은 그냥 일반적인 죽 맛이었습니다.

죽을 반 정도 먹을 때쯤 만두가 나왔습니다.

만두를 해놓고 파시는 거 같진 않았습니다.

10~15분 정도 후에 나왔습니다.

배가 고파서 먹은 후 찍었네요.

잘라놔서 헬갈릴수도있지만 6개가 나옵니다.

6,000원이니까 하나에 1,000원꼴인 거 같습니다.

전체적으로 보자면 맛은 그냥저냥 나쁘지는 않았고, 간이 강하게 들어가지 않았습니다.

하지만, 가격이 조금은 비싼 편인 거 같습니다.

만두가 1개에 1,000원씩이고, 죽도 양은 많긴 하지만, 다른 반찬이나 국 같은 게 없는데 6,000원은 조금 비싼 편 같습니다.

근데, 냉면이 전문인 거 같아서, 죽이나 만두를 평하기는 좀 어려울 거 같습니다.

만약 기회가 된다면 냉면도 한번 먹어보고 또 리뷰하겠습니다.

주소는 다음과 같습니다.

남성시장 안쪽으로 들어가면 있습니다.

 

전화 : 02-593-4309

주소 : 서울 동작구 동작대로29길 17 (지번: 사당동 130-14) 1층

영업시간 : 매일 11:00 - 20:30

반응형
반응형

안녕하세요

유니티 안드로이드 플랫폼에서 화면 회전을 설정하는 법에 대해 알아보도록 하겠습니다.

설정을 위해서는 플랫폼을 Android로 변경해야 합니다.

Build Settings(Ctrl+Shift+B)에서 Platform을 Android로 설정하고 Switch Platform으로 설정합니다.

 

Android로 바뀌었으면 Player Settings버튼을 클릭합니다.

 

Project Settings창이 뜨는데, Player에 Resolution and Presentation을 선택합니다.

 

여기서 Default Orientation설정을 이용하여 화면을 회전하거나 고정할 수 있습니다.

 

설정은 5가지로 할 수 있습니다.

Portratit, Portrait Upside Down, Landscape Right, Landscape Left는 게임 시작 시 해당 방향으로 화면이 고정됩니다.

Auto Rotation은 휴대폰의 방향에 따라 화면을 회전합니다.

Portrait - 디바이스 홈버튼이 아래에 있는 세로 모드로 고정

PortraitUpsideDown - 디바이스 홈 버튼이 위에 있는 세로 모드로 고정

LandscapeLeft - 디바이스 홈 버튼이 오른쪽에 있는 가로모드로 고정

LandscapeRight - 디바이스 홈버튼이 왼쪽에 있는 가로모드로 고정

AutoRotation - 휴대폰 방향에 따라 화면이 변경됩니다.

AutoRotation을 선택하면 세부 옵션들이 생기는데, 휴대폰의 해당 방향에 따라 화면이 자동으로 회전될 것인지 설정하는 것입니다.

체크를 해제하면 휴대폰의 방향을 변경해도 화면이 회전되지 않습니다.

예를 들면 Protratit Upside Down을 체크를 해제하면 홈버튼을 위로 향하게 휴대폰 방향을 변경해도 화면을 그대로 유지됩니다.

 

참고로 코드로 직접 셋팅도 가능합니다.

Screen.orientation = ScreenOrientation.Portrait; //세로 방향을 나타냅니다.
Screen.orientation = ScreenOrientation.PortraitUpsideDown; //장치의 윗부분이 아래를 향하는, 세로 방향을 나타냅니다.
Screen.orientation = ScreenOrientation.LandscapeLeft; //가로 방향을 나타내며, 세로 방향으로부터 반 시계방향으로 회전한 상태를 나타냅니다.
Screen.orientation = ScreenOrientation.LandscapeRight; //가로 방향을 나타내며, 세로 방향으로부터 시계방향으로 회전한 상태를 나타냅니다.
Screen.orientation = ScreenOrientation.AutoRotation; //활성화된 방향으로 자동 회전 하도록 설정합니다.

 

"ScreenOrientation.AutoRotation"설정한 후 세부설정은 다음과 같이합니다.

Screen.autorotateToPortrait = false;
Screen.autorotateToPortraitUpsideDown = false;
Screen.autorotateToLandscapeLeft = true;
Screen.autorotateToLandscapeRight = true;

 

추가로 Scene별로 다르게 설정을 하려면 Scene별로 스크립트를 생성하여 GameObject에 생성해준 후 Start 함수에 위 코드를 넣어주면 될 것 같습니다.

Scene1, Scene2가 있다면 

Scene1에는 다음과 같이 넣습니다.

public class SceneManager1 : MonoBehaviour
{
    void Start()
    {
        Screen.orientation = ScreenOrientation.Landscape;
    }
}

그리고 Scene2에는 다음과 같이 코드를 작성합니다.

public class SceneManager2 : MonoBehaviour
{
    void Start()
    {
        Screen.orientation = ScreenOrientation.Portrait;
    }
}

 

조금 더 자세한 예제는 다음 글에서 확인해주세요.

https://scvtwo.tistory.com/220

 

[Unity] 씬(Scene) 별로 화면 고정하기

씬마다 다른 화면 고정을 적용하려면 다음과 같이 합니다. 직접 프로젝트를 만들면서 알아보도록 하겠습니다. 1. 어떤 씬인지 확인을 위해서 텍스트 오브젝트, 그리고 씬 이동을 위해서 버튼 오

scvtwo.tistory.com

 

반응형
반응형

안녕하세요.

오늘은 모바일 게임에서 멀티터치로 카메라 줌인 / 줌아웃을 구현해보도록 하겠습니다.

줌인/줌아웃이 되는지 확인할 수 있도록 아무 객체나 생성합니다.

저는 큐브를 하나 생성하도록 하겠습니다.

그리고 빈프로젝트를 생성해서 스크립트를 추가하겠습니다.

생성한 스크립트에 다음과 같은 코드를 추가하겠습니다.

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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class TouchManager : MonoBehaviour
{
 
    float m_fSpeed = 0.1f;       // 변경 속도를 설정합니다 
    float m_fFieldOfView = 60f;     // 카메라의 FieldOfView의 기본값을 60으로 정합니다.
 
    void Update()
    {
        CheckTouch();
    }
 
    void CheckTouch()
    {
        if (Input.touchCount == 2)
        {
            Vector2 vecPreTouchPos0 = Input.touches[0].position - Input.touches[0].deltaPosition;
            Vector2 vecPreTouchPos1 = Input.touches[1].position - Input.touches[1].deltaPosition;
 
            // 이전 두 터치의 차이 
            float fPreDis = (vecPreTouchPos0 - vecPreTouchPos1).magnitude;
            // 현재 두 터치의 차
            float fToucDis = (Input.touches[0].position - Input.touches[1].position).magnitude;
 
 
            // 이전 두 터치의 거리와 지금 두 터치의 거리의 차이
            float fDis = fPreDis - fToucDis;
 
            // 이전 두 터치의 거리와 지금 두 터치의 거리의 차이를 FleldOfView를 차감합니다.
            m_fFieldOfView += (fDis * m_fSpeed);
 
            // 최대는 100, 최소는 20으로 더이상 증가 혹은 감소가 되지 않도록 합니다.
            m_fFieldOfView = Mathf.Clamp(m_fFieldOfView, 20.0f, 100.0f);
 
            Camera.main.fieldOfView = m_fFieldOfView;
 
        }
    }
}
 
cs

 

 

유니티에서 테스트가 안되기 때문에(테스트하는 방법을 아신다면 댓글 남겨주시면 감사하겠습니다.) 애뮬레이터로 테스트했습니다.

저는 미뮤를 이용하여 테스트했습니다.

가상 키로 터치하는 위치를 정하고 마우스 터치를 하면서 줌인/줌아웃을 확인했습니다.

실행하면 줌인/줌아웃이 제대로 실행되는 것을 확인할 수 있습니다.

 

 

반응형

+ Recent posts