목록분류 전체보기 (38)
개발블로그
using UnityEngine; using System; public class StudyCoord : MonoBehaviour { [SerializeField] GameObject _gbjCube = null; Action _onBtn = null; // 버튼을 누르면 Cube의 로컬 좌표와 월드 좌표를 출력 void Start() { CoordinateCubeLog(OnBtn); } void CoordinateCubeLog(Action onBtn) { _onBtn = onBtn; Debug.Log("Local Postion : " + _gbjCube.transform.localPosition); Debug.Log("World Position : " + _gbjCube.transform.positio..
🤷♀️ 게임을 개발하다보면 런타임 시 오브젝트를 이동해야 하는 상황이 자주 있다. 오브젝트를 이동하기 위해서 스크립팅 후 실행했을 때, 가끔 내가 원하는 방향이 아닌 다른 방향으로 이동할 때가 있다. 그때는 좌표 문제일 가능성이 크다. 좌표 개념을 이해하지 못했다면 어떤 문제인지 찾지 못했을 것이다. 그래서 유니티 내에서의 전역좌표와 상대좌표의 개념을 확실히 정리해봐야겠다고 생각했다. 🔶월드 좌표(전역 좌표) 월드 좌표는 게임월드라는 가상의 공간의 중심을 원점으로 (0, 0, 0)으로 하는 3차원 상대 좌표계이다. 하지만 카메라의 위치나 회전 상태에 따라 달라지므로 화면의 중심이 100% 원점이라고는 할 수 없다. 🔶로컬 좌표(상대 좌표) 로컬 좌표는 오브젝트의 위치를 기준으로 한 상대 좌표이다. 오브..
🔶RectTransform RectTransform은 Transform 구성 요소의 2D 레이아웃에 해당한다 그러므로 RectTransform은 UI 요소를 안에 배치할 수 있는 직사각형을 나타낸다. Transform 컴포넌트와는 다르게 RectTransform 은 Anchors라고 하는 기준점을 가지는데, 이 기준점은 부모 UI 오브젝트를 영역 대상으로 한다. 그림-1은 캔버스의 하위에 종속된 Image컴포넌트를 가진 UI의 Background라는 GameObject인데, 이 오브젝트는 캔버스에 꽉차게 검정색 배경에 채워넣기 위해 Anchor Preset을 Stretch로 설정했다. 공식 도큐먼트 : https://docs.unity3d.com/kr/530/ScriptReference/RectTrans..
컴퓨터를 새로 구입하고 나서 Visual Studio 2019를 다시 설치하고 스크립팅 하려는데 갑자기 비주얼스튜디오 인텔리센스가 작동하지 않는다. 인텔리센스가 작동하지 않으면 자동 완성이나 오류 라인에 표시가 되지 않아 여러모로 불편하니 정상적으로 작동하도록 수정해본다. 🔶 Plan A) Visual Studio Installer 실행 비쥬얼 스튜디오 인스톨러를 실행 후, 수정을 누른다. 만약 여기서 그림에서 표시한 부분이 설치가 안되어 있으면 이 부분을 추가 설치하면 되고, 혹시 모르니 '개별 구성 요소' 탭 - 코드도구 - 'NuGet 패키지 관리자' 가 체크가 안되어 있으면 체크 후 설치하면 된다. 음.. 근데 나는 다 설치가 되어있는데 인텔리센스가 작동하지 않는다. 🔶 Plan B) Unity ..
🤷♀️ UI와 UX, 둘의 차이점은 뭘까? 유니티에서 프로젝트를 제작하다보면 UI를 상당히 많이 작업하게 된다. UI와 UX는 많이 들어보았다. 하지만 그 둘의 차이점을 명확히 설명하려니 헷갈린다. 용어 개념을 확실히 정리하고 넘어가도록 하자. 내가 현재 플레이하고 있는 쿠키런: 킹덤의 왕국이다. 그림-1 게임을 시작하면 로딩 화면을 지나서 왕국에 입성하게 된다. 왕국에 들어오니 돌아다니는 쿠키들도 보이고, 랜드마크도 보이고, 버튼들 등 많은 것들이 눈에 들어온다. 여기서 UI는 눈에 보이는 모든 디자인이나 레이아웃 등을 말한다. 그림-1 화면에 나오는 모든 것중 내가 터치하거나 상호작용 할 수 있는 모든 것이 UI라고 할 수 있겠다. 그렇다면 의문점이 생긴다. UI는 눈에 보이는 모든 디자인이나 레이..
논리적으로 생각하는게 부족한 것 같아서 프로그래머스 문제를 레벨 1,2 부터 순차적으로 풀면서 연습을 해보려고 한다. 첫번째로 풀어본 간단한 문제 내적. 간단한 문제여서 오래 생각 않고 금방 풀었는데, 지금 캡쳐해서 게시글 올리려고 다시보니 왜이렇게 짰나 싶은 느낌이 든다. using System; public class Solution { public int solution(int[] a, int[] b) { int answer = 0; int sum = 0; for(int i = 0; i < a.Length; i++) { sum = a[i] * b[i]; answer += sum; } return answer; } } 처음에 이렇게 코드를 짰었는데 굳이 sum 변수를 선언하지 않고 answer += ..
🤦♀️ 매일 유니티에서 스크립트 생성해서 런타임으로 실행 결과를 확인했었던지라 C# 프로젝트 콘솔창 띄워볼 일이 거의 없었어서 매번 콘솔창 띄우는 프로젝트가 헷갈려서 기억하려고 정리를 해본다. (이런건 이제 기본으로 알아두도록 하자...!) ✔ Visual Studio 2019 실행 - 새 프로젝트 추가 (1) 언어 목록에서 C#을 선택한 뒤, 플랫폼 목록에서 Windows를 선택한다. (2) 언어 및 플랫폼 필터를 적용한 후 콘솔앱(.NET Core) 템플릿을 선택한 후, 다음 선택. 그럼 프로젝트의 기본 "Hello World" 코드가 포함된 코드가 나타난다. 그대로 실행해보면 콘솔창에 로그가 정상적으로 출력되는 것을 확인할 수 있다. * 공부하는 단계입니다. 잘못된 내용이 있다면 피드백 부탁드립니..
* 탐욕 알고리즘 미래를 생각하지 않고 각 단계에서 최선의 선택을 하는 알고리즘. 각 단계에서 최선의 선택을 한 것이므로, 전체적으로도 최선을 바라는 알고리즘이다. -> 여러 경우 중 하나를 선택할 때 그 상황에서 가장 좋다고 생각하는 것을 선택하는 것. 하지만 이 선택이 최선의 선택이지 최고의 선택은 아니다. 즉, 최적해를 구하는 상황에서 사용하는 알고리즘. Greedy의 가장 큰 장점은 속도에 있다. Greedy 방법이 통하는 몇몇의 문제에서는 최적해를 빠르게 산출해 낼 수 있다. 빠른 계산 속도의 장점으로 Dynamic Programming의 단점을 보완하는 개념으로 사용할 수 있다. 해 - 방정식, 혹은 부등식을 충족하는 미지수의 값. 최적해 - 선형 계획법에서 제약 조건을 충족시킬 수 있는 해 ..