반응형

 

 

 

 

 비주얼 스튜디오에서 프로젝트를 유니티에 연결해서 디버깅하다 어느날 유니티 디버깅 관련 경고가 떴다. 비주얼 스튜디오 상단 툴박스에 Unity에 연결 버튼으로 편하게 하고있었는데 해당 경고가 뜨는 순간부터 빌드 버튼으로 변경되었다. 그래도 상단 메뉴에서 디버그 카테고리에 유니티 디버깅 연결은 가능했지만 역체감이라고 그냥 버튼하나만 누르면 바로 연결 됐던데 프로젝트 연결창에서 일일이 선택하는 과정을 거쳐야하다보니 번거로워서 해결해보기로 했다.

 

 

 

 

에러 내용

- 이 Unity 프로젝트는 Visual Studio Tools for Unity용으로 생성되지 않았습니다. 향상된 환경을 이용하려면 Unity 편집기에서 [기본설정] > [외부도구]로 이동하고 Visual Studio를 선택하세요.

 

 

 

 

해결 방법

시도 1. 유니티 에셋 및 비주얼 스튜디오 업데이트

  • 유니티 에디터에서 Window-Package Manager-Visual studio Editor

 

  • 비주얼 스튜디오에서 도움말-업데이트 확인

 

시도 2. 스크립트로 프로젝트를 열지 말고 에디터에서 프로젝트 열기

  • 비주얼 스튜디오 프로젝트를 닫고 유니티 에디터에서 Assets-Open C# Project으로 비주얼 스튜디오를 열어주면 연결이 자동적으로 된다.

 

 

 

결과

- 위 순서대로 수행해서 해결했기 때문에 업데이트 → 에디터에서 비주얼 스튜디오 열기 순으로 작성되었지만, 시도2부터 한다음 해결이 안되면 시도1로 넘어가도 될듯하다.

 

 

 

 

기타 (Microsoft Docs)

 

Quickstart: Install & configure Visual Studio Tools for Unity

Learn how to connect Unity and Visual Studio for cross-platform development.

docs.microsoft.com

 

 

 

 

 

반응형
반응형

 

 

 

 

 작년 9월 경, 티스토리에 포스팅한 글을 네이버에도 노출시키고 싶어서 네이버 서치어드바이저를 통해 등록을 해보았다. 블로그 주제가 주제인지라, 네이버 검색 유입에 기대를 하고 진행했다기 보다는 '진짜 이 기능이 작동할까?'라는 호기심에서 시작한거라 기대는 하지 않았는데 오늘 유입 리스트를 보다가 드디어 네이버 검색 유입이 잡혀서 후기로 올려보았다.

 

 

 

 

유입 키워드는 '유니티 SafeArea'였다.

처음에 네이버 서치어드바이저 관련으로 정보를 찾아봤을 때는 주기적으로 등록 정보를 갱신해줘야 한다는 정보도 본거같은데, 처음 등록한 뒤 손을 안댔는데도 불구하고 네이버 유입이 잡히는걸 보면 필수는 아닌것같다.

 

 

 

- 티스토리 네이버 서치어드바이저 등록글은 다음 포스팅해서 확인할 수 있다.

 

티스토리 네이버 서치어드바이저 등록하기

이 블로그는 프로그래밍을 컨텐츠로 하는 블로그이기 때문에 네이버 유입은 사실 별 관심이 없다. (아무래도 프로그래머들은 구글링을 위주로하니까..) 그런데 유튜브 알고리즘으로 추천된 영

srdeveloper.tistory.com

 

 

 

 

 

반응형

'Manage > Review' 카테고리의 다른 글

MS Designer Compact 키보드 후기  (0) 2022.03.01
듀가드 k330w 구매기 (개인적 장단점)  (0) 2021.12.17
반응형

 

 

 

 

풀이코드

#include <string>
#include <vector>
#include <unordered_map>

using namespace std;

#define CLOTH_KIND 1

int GetAnswer(const vector<vector<string>>&);

int solution(vector<vector<string>> clothes) {
    int answer = GetAnswer(clothes);
    return answer;
}

int GetAnswer(const vector<vector<string>>& clothes)
{
    int returnValue = 1;
    unordered_map<string, int> map;
    for(int i = 0; i < clothes.size(); i++)
    {
        auto iter = map.find(clothes[i][CLOTH_KIND]);
        if(iter == map.end())
        {
            map.insert(make_pair(clothes[i][CLOTH_KIND], 1));
        }
        else
        {
            iter->second++;
        }
    }

    for(auto iter = map.begin(); iter != map.end(); iter++)
    {
        returnValue *= iter->second + 1;
    }

    return returnValue - 1;
}
  • map을 만들어 옷 종류별로 나눈 뒤, 경우의 수를 계산하여 반환한다.

 

 

 

기타

- 처음에는 map<string, vector<string>>으로 선언해서 접근했으나, 하다보니 수학으로 해결해야 할 것 같아서 map<string, int>로 변경했다.

- 코드 자체는 작성하기 쉬웠으나 경우의 수에서 많이 헤맸다.

- 경우의 수와 같은 경우, 각 옷의 종류마다 입지 않는다는 경우를 하나더 추가해서 모든 경우의 수를 계산하게 되면 마지막의 경우는 모든 옷을 입지 않는다는 수가 나오게 되는데, 지문에서 무조건 1개 이상 입도록 되어있으니 해당 경우의 수를 제외해서 반환하면 된다.

- 다른 사람 풀이를 보니 굳이 find로 키를 찾을 필요없이 operator[]로 바로 접근해도 됐었다.

- operator[]의 경우, 맵 안에서 키를 탐색하고 저장된 값의 참조를 반환하며, 키가 없을 경우 기본 초기화를 사용하여 해당 키에 새 요소를 만든 뒤 참조를 반환한다.

 

 

 

 

 

반응형

'Stack > Coding test' 카테고리의 다른 글

[C++ / Lv2] 기능개발  (0) 2022.02.15
[C++ / Lv3] 베스트 앨범  (0) 2022.02.10
[C++ / Lv2] 전화번호 목록  (0) 2022.02.05
[C++ / Lv1] 완주하지 못한 선수  (0) 2022.02.04
[C++ / Lv2] 문자열 압축  (0) 2022.02.02
반응형

 

 

 

 

 

 

 

 

제작 기간

- 총 15일

 

 

 

게임 클래스 구성

 

 

 

 

GameManager

- 싱글톤 클래스이다. (wWinMain 함수에서 반복문을 구성해 해당 클래스의 Update함수를 호출한다.)

- 클래스 멤버는 MainScene, GameScene을 가지고 있고, 화면을 그리기 위한 HDC, HWND를 멤버로 가지고 있다.

- Update 함수에서 메인화면, 게임화면의 로직을 호출한다.

 

 

 

BitmapManager

- 싱글톤 클래스이다.

- Bitmap배열의 vector를 멤버로 가지고 있다.

- 게임 리소스를 로드해서 저장하고 관리한다.

 

 

 

MainScene

- 메인화면을 관리하는 클래스이다.

- 각 메뉴 및 애니메이션(별 전광판)을 표현하기 위한 Bitmap 포인터(배열)와 좌표 구조체를 멤버로 가지고있다.

- 메뉴를 선택할 수 있고, deltaTime을 적용해 타이틀에서 별 전광판 애니메이션을 재생한다.

 

 

 

GameScene

- 게임화면을 관리하는 클래스이다.

- 상단 UI(GameUI), 배경(Background), 장애물(Ring, Lamp, Rostrum)을 관리하는 클래스를 멤버로 가지고 있다.

- Player의 상태를 구분(Play, Die, Clear)해서 다른 처리를 하도록 한다.

- deltaTime을 이용하여 일정 시간마다 점수, 장애물 세팅을 한다.

 

 

 

Bitmap

- 그래픽 리소스의 크기를 멤버로 가지고있다.

- backDC, 좌표를 오버로딩하여 그리는 함수들이 정의되어있다.

 

 

 

Player

- 키 입력을 받아서 캐릭터의 좌표를 이동시킨 뒤, 애니메이션을 그린다.

- 각 종 장애물의 Collider hit 판정을 위한 Rect 반환 함수를 가지고 있다.

 

 

 

Ring(BigRing, SmallRing), Lamp, Cash, Rostrum

- Ring의 경우 BigRing, SmallRing에 상속을 한 뒤, GameScene에서 업캐스팅으로 사용한다.

- Player에서 Collider rect를 받아와 매 프레임 Hit 체크를 해서 Player의 상태를 변경한다.

- deltaTime을 이용해 애니메이션을 재생한다.

 

 

 

Background

- 배경을 스크롤링한다.

- 게임 클리어시 배경 애니메이션을 재생한다.

 

 

 

기타

- 더블 버퍼링을 적용하여 화면 깜빡임을 제거했다.

 

 

 

 

 

반응형

'Game > Personal development' 카테고리의 다른 글

[Unity] 미로 게임 제작  (0) 2022.04.28
[Unity] 모바일 전략 시뮬레이션  (0) 2022.04.16
[WIN API] 카드 맞추기 게임  (0) 2022.01.30
산성비 게임 제작 (C++)  (4) 2022.01.23
RPG 게임 제작 (C++)  (0) 2022.01.22
반응형

 

 

 

 

풀이코드

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

bool GetAnswer(const vector<string>&);

bool solution(vector<string> phone_book) {
    sort(phone_book.begin(), phone_book.end());

    bool answer = GetAnswer(phone_book);
    return answer;
}

bool GetAnswer(const vector<string>& pb)
{
    for(int i = 0; i < pb.size() - 1; i++)
    {
        if(pb[i] == pb[i + 1].substr(0, pb[i].size()))
        {
            return false;
        }
    }
    return true;
}
  • 문자열이라 정렬을 한 뒤 반복문으로 현재 원소와 다음 원소를 비교해서 bool값을 반환한다.

 

 

 

기타

- 풀긴 했는데 해시와는 거리가 먼 코드같아서 다른사람 풀이를 보다가 문제 의도대로 풀린 코드를 봤다.

#include <string>
#include <vector>
#include <unordered_map>

using namespace std;

bool solution(vector<string> phone_book) {

    unordered_map<string, int> hash_map;
    for(int i = 0; i < phone_book.size(); i++)
    {
        hash_map[phone_book[i]] = 1;
    }

    for(int i = 0; i < phone_book.size(); i++) 
    {
        string phone_number = "";
        for(int j = 0; j < phone_book[i].size(); j++) 
        {
            phone_number += phone_book[i][j];
            if(hash_map[phone_number] && phone_number != phone_book[i])
            {
                return false;
            }
        }
    }

    return true;
}
  • map을 써서 해시 값을 확인하고 전화번호 문자열(phone_number)을 vector의 원소 문자열과 비교해서 다르면 맵의 해시가 vector 원소 문자열의 접두사가 된다.
반응형

'Stack > Coding test' 카테고리의 다른 글

[C++ / Lv3] 베스트 앨범  (0) 2022.02.10
[C++ / Lv2] 위장  (0) 2022.02.07
[C++ / Lv1] 완주하지 못한 선수  (0) 2022.02.04
[C++ / Lv2] 문자열 압축  (0) 2022.02.02
[C# / Lv2] H-Index  (0) 2022.01.19

+ Recent posts