분류 전체보기 77

C# 연산자와 문자열 처리

본론에 앞서 이 블로그는 어디까지나 본인의 학습을 위해 정리를 해두는 곳이라 이미 잘 알고 있는 정보는 가볍게 서술하고 헷갈리거나 잊어버리기 쉬운 개념일수록 빨간색에 가깝게 표시해뒀다. 연산자 산술연산자: 사칙연산과 같은 숫자를 대상으로 사용하는 연산자 ex) +, -관계연산자: 두 값을 비교하여 True, False 값을 반환 ex) >, 논리연산자: True 혹은 False 값을 대상으로 쓴다. ex) &&, ||, ! 이 세가지는 잘알고 있는 연산자지만 비트연산자는 생소할 수 있어 좀 더 자세히 다뤄본다. 비트연산자 비트연산자: 비트(bit) 단위로 연산을 수행하는 연산자 비트는 0과 1로 구성되어 있음, 다시 말해 2진수이다. 더보기2진수를 나타내는 리터럴은0..

C# 2024.04.23

C# 입출력과 각종 용어들

코드를 볼 때는 원리보다는 무슨 의도로 만들어졌을까에 집중하고 또한 많은 실패 경험은 도움이 된다는 스파르타코딩클럽의 튜터님의 조언으로 시작한다. using System 이는 System이라는 namespace 안의 기능을 사용하겠다는 의미이다. namespace는 클래스들의 묶음이자 기능들의 묶음으로 볼 수 있다. 출력 C#에선 콘솔에 출력을 담당하는 C++의 cout의 역할을 하는 것이 바로 Console.WriteLine이다. string name = "bugmin"; Console.WriteLine("Hello, {0}!", name); Console.Write($"Hello, {name}!"); Console.WriteLine은 메서드 오버로딩이 되어있어 문자열이 아닌 정수형, 실수형 변수를 넣..

C# 2024.04.22

스파르타코딩클럽 1주차 프로젝트 KPT 회고록

1주차 프로젝트가 끝났다. 팀원들과 프로젝트를 하면서 만족한 부분(Keep), 개선이 필요했던 부분(Problem), 해결 방법(Try)에 대한 회고를 해보고자한다. Keep 각자 해야할 부분을 적절하게 배분하여 작업을 하였다. 변경 사항이나 버그가 생긴 부분에 대한 공유가 빠르게 되었다. 궁금한 것이나 모르는 부분이 생기면 상황 공유를 하며 서로에게 도움을 줄 수 있어 좋았다. Problem 초반에 방향성이 제대로 잡히지 않아 소통에 있어 어려움이 있었고 내 자신이 내성적인 성격이라 의견 피력하지 못한 것이 아쉬움 완성이 되지 않은 상태에서 완성이 된 상황을 가정하고 추가적인 기능을 구현하고자 해 완성이 늦어졌다. 여러 버그들과 버그들을 찾는 과정에 있어 많은 시간이 소요되었다. 분명 더 효율적인 코드..

KPT 회고록 2024.04.19

유니티 PlayerPrefs

총 easy, normal, hard 3가지의 스테이지가 있는 게임이라 하자 이 세 가지의 스테이지에 대한 최고 점수를 PlayerPrefs를 이용해 간단하게 저장하고자 한다. switch (level) { case 1: key = "easyBest"; break; case 2: key = "normalBest"; break; case 3: key = "hardBest"; break; } int로 선언된 level 변수의 값에 따라 PlayerPrefs에 쓸 key 값을 설정해주자 bool PlayerPrefs.HasKey(string key) key 값은 string으로 PlayerPrefs의 HasKey 함수를 통해 해당 key의 데이터가 있는 지를 확인 할 수가 있다. 데이터가 있다면 true 값을..

유니티 2024.04.18

유니티 UI의 Rect Transform

일반적인 Transform과 다르게 UI를 만들어보면 Rect Transform이라는 컴포넌트를 가지고 있다. 트랜스폼은 포지션, 로테이션, 스케일의 값을 가지고 있는 반면 렉트 트랜스폼은 로테이션, 스케일 말고도 다양한 값을 가지고 있다. 그중에서 가장 눈에 가는 것이 자주 쓰이는 앵커(anchors)를 모아둔 앵커 프리셋이다. 앵커 프리셋 설명에 앞서 앵커에 대해 알아보면 앵커는 UI 위치의 기준점이라 볼 수 있다. 이 기준점은 UI의 부모 오브젝트의 영역을 대상으로 하는데 부모가 Screen Space - Overlay로 렌더링된 캔버스일 경우 스크린 전체가 캔버스가 된다. 고로 이미지의 앵커가 middle center면 아래 사진과 같이 스크린의 정중앙에 네모 이미지가 위치하는 것을 알 수 있다...

유니티 2024.04.17

유니티 캔버스(Canvas)와 Render Mode

RectTransform 에 앞서 UI에 대해 얘기해보면 UI, 즉 유저 인터페이스는 유저가 소프트웨어를 편리하게 다룰 수 있도록 도움을 주는 역할을 하고 이러한 UI는 유니티에서는 캔버스(Canvas)라는 도화지 위에서 그려지게 된다. 캔버스는 Canvas 컴포넌트를 포함하고 있다. 캔버스의 경우 카메라로 찍는 것이 아니라 화면에 그려지기에 기본적으론 카메라의 위치와는 무관하다. 씬에 캔버스가 없다면 UI를 만들면 자동적으로 캔버스를 생성하며 생성한 UI는 캔버스의 자식으로 만들어지게 된다. 즉 모든 UI는 캔버스 안에 있어야 한다는 것이다. 캔버스 컴포넌트는 다음과 같이 생겼다. 이중에서 렌더 모드에 대해 알아보자 Render Mode 1. Screen Spcae - Overlay Render Mod..

유니티 2024.04.16

유니티 C# OrderBy와 ThenBy

using System.Linq; 시스템의 Linq를 사용했을 때 쓸 수 있는 기능 int[] arr = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 }; arr = arr.OrderBy(x => Random.Range(0f, 7f)).ToArray(); 만일 위와 같이 배열을 선언하고 OrderBy를 통해 정렬하면 어떻게 정렬이 되는가 위의 코드는 짝맞추기 게임에 활용되는 코드라 0,0 1,1 2,2 이렇게 배열에 짝을 맞추는 숫자가 있는 것인데 좀 더 쉬운 예시를 들면 int[] arr = { 0, 1, 2 }; arr = arr.OrderBy(x => Random.Range(0f, 3f)).ToArray(); 위와 같이 있다해보자 OrderBy는 시퀀스의 ..

유니티 2024.04.15