목차
1. 발단
2. 증상
3. 해결방법

 

발단

 

저번 주쯤 여느 때와 다름없이 로블록스 스튜디오를 켜서 작업을 시작하려고 했는데, 

어라? 뭔가 이상함을 감지했다.

 

물론 로블록스 스튜디오는 기본적으로 이상함. ㅋㅋㅋㅋ

 

로컬에 저장하고 버전별로 사용하는 엔진이 아니라 앱이라서 지맘대로 이상하게 업데이트할 때도 있고 서버가 불안정하면 걍 안될 때도 있다. 

 

그래서 그냥 그 날은 작업을 거의 안 하고 다음 날로 미뤘다. 이러다 갑자기 괜찮아지고 그래서 걍 놓았음.

데브포럼에 가보니까 무슨 공지도 떠 있고 해서 이거 때문인가? 싶어서 걍 껐다. 

 

근데 다음 날에도 이상해서 극대노ㅋㅋㅋㅋㅋㅋㅋㅋ

 

저와 비슷한 상황이 생기신 분들이 있으실까 하여 글 남겨 봅니다.

돕고 살아야죠. (급공손)

 

 

 

 

증상을 요약하면 대략 이렇다

 

1. 실제 마우스 위치와 커서가 맞지 않음. 

   -> 이미지를 보면 Audio에 마우스가 가있는 상황이어야 하는데 실제론 Images에 있었음. 

 

2. 게임 테스트 시 플레이 화면 가장자리 쪽 가면 커서가 화면 밖으로 도망감 

-> 영상 보면 커서가 갑자기 없어지는데 화면 밖으로 튕긴 거.. 

 

 

아무튼 이런 현상이 있었는데 이때만 해도 해상도 문제인지 몰랐음.

왜냐면 이때까지 문제없이 잘하고 있었고, 시간도 없는데 자꾸 이러니까 짜증이 나서 상황이 잘 안보였다.. 

 

 

 

 

 

근데 이게 해상도 문제구나 인식하게 된 이유가, 바로 이 부분이다. 

 

 

예를 들어 ToolBox 윈도우를 보면, 정상적인 화면은 

이렇게 위처럼 윈도우와 그 안의 버튼이나 컴포넌트들이 화면에 꽉 맞게 있는데, 

 

 

 

문제가 생길 땐 위처럼 요소들이 빨간색으로 표시한 영역처럼 축소되어 있었다. 

 

웃긴 건 오른쪽에 있는 Explorer는 클릭도 잘되고 크기도 정상이어서 이상한걸 못 느꼈다. 

 

 

 

 

해결 방법

 

아무튼 해상도 문제임을 알았으니 해상도를 바꿔야지 뭐... 

'시작' -> '설정'(톱니바퀴) -> '시스템' -> '디스플레이' -> '배율 및 레이아웃' -> '텍스트, 앱 및 기타 항목의 크기 변경'에서 바꾸면 된다. 

 

문제가 생겼던 이유는 시스템에서 제공하는 배율이 아닌 하단의 '고급 배율 설정'에서 내 마음대로 지정한 배율을 사용하고 있었기 때문인 것 같다. 

 

아니 전엔 문제없다가 갑자기 왜 그러냐고~~!!! 

 

그럴 수도 있지. 

 

 

결과적으로 문제 증상이 해결되었는데 내 노트북의 권장 배율인 125%로 설정하니 예상치 못한 문제가 생기는데..... 

 

 

 

 

(다음 시간에) 

 

 

* 포스트 내용 중 수정할 부분이나 기타 의견이 있으시다면 댓글 남겨주세요! 

 

 

여러 사람이랑 협업하면서 개인 branch로만 작업을 하다가 오랜만에 공용 브랜치의 작업물을 받게 되면

Merge Conflict의 폭탄이 떨어질 수도 있다. 

 

그렇게 충돌하는 것을 하나하나 해결하고 내 프로젝트를 열었을때 아 망했다.... 싶을 때가 있다! 

(나만 그런건 아니겠지....)

 

시간을 돌려서 예전의 작업물 혹은 커밋전으로 되돌리고 싶다고 느낄 때 쓰는 방법이 있다.  

 

지나간 시간을 되돌리는 건 아무도 못하지만 지나간 작업물로 되돌릴 수는 있다!

 

 

바로 git reset 사용하기! 

git reset

reset 명령어는 단계별로 세가지 방법이 있는데,  

 

1. HEAD를 변경해주는 soft (파일 변경 x)

git reset --soft 커밋코드

 

2. git add 상태로 되돌리는 mixed (파일 변경 x)

git reset --mixed 커밋코드

   혹은

   git reset 커밋코드

git reset 커밋코드

 

3. 특정 commit 이후의 모든 수정사항을 무시하고 작업파일까지 되돌리는 hard 

git reset --hard 커밋코드

 

reset 명령어는 기존의 커밋을 없애면서 실행되는 것이라 신중하게 사용할 필요가 있는 것 같다.

(reset을 취소하는 명령어가 있는 지는 확인하지 못했다.) 

 

master 브랜치만 있는 상황에서 무턱대고 reset을 써버리면 작업물들이 날아갈 수 있기 때문에....

 

이번에 나는 개인 브랜치에 다른 브랜치의 커밋을 pull하는 과정에서 다시 되돌리려고 했기 때문에 --hard를 써도 문제가 없었다. 

 

 

오늘의 교훈 

자주 pull & push를 하자!

 

 

참고

https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Reset-%EB%AA%85%ED%99%95%ED%9E%88-%EC%95%8C%EA%B3%A0-%EA%B0%80%EA%B8%B0

 

 

 

 

*내용에 문제가 있을 경우 댓글 부탁드립니다! 

 

'Study > Git 사용기' 카테고리의 다른 글

Please tell me who you are. 오류  (0) 2019.08.05

2d 오브젝트일 경우 (스프라이트) 

rectTransform 컴포넌트 추가해서 Width, Height 확인 -> 스케일 비교하여 환산

 

 

'Study > Unity' 카테고리의 다른 글

오브젝트를 배열로 찾아오기 - FindGameObjectsWithTag  (0) 2019.08.12
Raycast, LayerMask  (0) 2019.08.09
Line Renderer  (0) 2019.08.05

https://docs.unity3d.com/kr/530/ScriptReference/GameObject.FindGameObjectsWithTag.html

 

Unity - 스크립팅 API: GameObject.FindGameObjectsWithTag

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. 닫기

docs.unity3d.com

태그된 활성 게임오브젝트 리스트를 반환합니다. 게임오브젝트를 찾지 못햇다면, 빈 배열이 반환됩니다.

 

태그는 사용전에 tag manager에 선언 되어져야 합니다. 태그가 존재하지 않거나 빈 문자열 이나 null이 태그로 전달되면 UnityException을 발생시킬 것입니다.

 

게임 상의 같은 태그를 가진 오브젝트를 배열로 가져오고 싶을 때 사용. 

GameObject[] objArr; 

void Start () {
    objArr = GameObject.FindGameObjectsWithTag("Tag");
}

'Study > Unity' 카테고리의 다른 글

유니티 오브젝트 크기 찾기  (0) 2019.08.19
Raycast, LayerMask  (0) 2019.08.09
Line Renderer  (0) 2019.08.05

1. RayCast 

Physics.Raycast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteractionqueryTriggerInteraction = QueryTriggerInteraction.UseGlobal);)

 

Physics.Raycast (Vector3 origin, Vector3 direction, float maxDistance, int layerMask) : bool

 

파라메터: 시작점, 방향, 최고도달 거리, 타겟 

 

2. LayerMask

https://docs.unity3d.com/kr/530/Manual/Layers.html

 

유니티 - 매뉴얼: 레이어

Optimizing Shader Load Time 레이어 기반의 충돌 감지 레이어 Layers는 Cameras에 따라 씬의 일부만 렌더링 하거나, Lights에 따라 씬의 일부만 밝히는 등에 가장 자주 사용됩니다. 한편, 선택적으로 Collider를 무시 또는 Collisions을 생성하는 데에도 사용하실 수 있습니다. 레이어 만들기 첫 번째 단계는 새 레이어를 만들면, 레이어를 GameObject에 할당 할 수있습니다. 새 레이어를 만들려면 Edit 메

docs.unity3d.com

LayerMask: 특정 레이어를 포함 혹은 제외 시키고 레이캐스트 실행 

 

사용법 

// 레이어 하나만 인식 

int layerMask = 1 << (index of layer) or LayerMask.NameToLayer("name of layer"); 

// 특정 레이어만 제외 

lalayerMask = ~layerMask;

// 복수의 레이어 인식 

int layerMask = 1 << LayerMask.NameToLayer("name of layer") + 1 << LayerMask.NameToLayer("name of layer2");

 

 

 

 

'Study > Unity' 카테고리의 다른 글

유니티 오브젝트 크기 찾기  (0) 2019.08.19
오브젝트를 배열로 찾아오기 - FindGameObjectsWithTag  (0) 2019.08.12
Line Renderer  (0) 2019.08.05

+ Recent posts