분류 전체보기 90

내일배움캠프 25일차 TIL - 알고리즘 문제 풀이

leetcode에서 제공하는 알고리즘 문제중, 하나를 풀고 해설을 읽어보았습니다. 문제는 이러합니다. 정수형 숫자 배열 height 가 주어지며, 가로의 길이는 모두 1이라고 할때, 여기서 넓이가 가장 큰 직사각형을 구하는 문제입니다.이때, 배열의 조건은 다음과 같습니다.1 0 먼저, 처음 저의 풀이는 자신의 우측 배열을 확인한 후, 이 배열의 값이 자신보다 크거나 같으면 길이를 1 늘리고, 그렇지 않으면 반복문을 종료합니다.이후 저장된 길이와 자신의 높이를 곱해서 넓이를 구한 뒤, 저장된 최대값과 비교하여 저장합니다. 이 과정을 배열 전체에 반복하여 가장 큰 넓이를 구합니다.public class Solution { public int LargestRectangleArea(int[] heights..

내일배움캠프 24일차 TIL - 로컬 멀티플레이 인풋 시스템

유니티 입문주차 프로젝트 진행중, 로컬 멀티플레이 기능을 설계하면서 발생한 문제입니다.문제상황캐릭터를 생성했을 때, 1P 캐릭터는 정상적으로 조작이 가능하지만, 2P 는 조작이 불가능한 상황이 발생했습니다.당시, 캐릭터가 같은 액션 에셋을 공유하고, 액션맵을 바꾸는 방식으로 구현하려고 하였습니다. 당시 처음 시도했던 조작 코드입니다.public void IsPlayer2(bool isPlayer2){ if (isPlayer2) { playerInput.defaultActionMap = "Player2P"; } else { playerInput.defaultActionMap = "Player1P"; }} 시도해본 것처음 시도해본것은 캐릭터의 조작을 ..

내일배움캠프 23일차 TIL - Input System 특강 정리 2

New Input System 을 통해 UI 의 버튼등에 상호작용할 수 있는 방법과, Input System의 세부 설정입니다. Standalone Input ModuleUI 를 생성하면, EventSystem 오브젝트가 생성되고 해당 오브젝트를 통해 UI가 작동하게됩니다.이때, Input Manager 를 설치하게 되면 이벤트 시스템의 입력 모듈 대체 여부가 발생합니다.Replace with InputSystemUIInputModule 버튼을 누르게 되면 아래와 같이 변경됩니다.이때, Action Asset에 Input System에서 기본으로 제공하는 액션 에셋이 지정되며, 에셋을 변경해서 개발자가 원하는 방식으로 UI를 조작할 수 있습니다. 기본 제공 액션 에셋을 이러합니다. Action Prope..

내일배움캠프 22일차 TIL - Input System 특강 정리

Input System 은 기존 Input Manager를 대체하는 시스템으로 사실상 기존 Input Manager 가 레거시 시스템이라고 볼 수 있습니다. 다이렉트 방식, 임베디드 방식, 액션 에셋 방식, C# 제너레이트 방식 4종류의 방법으로 사용할 수 있습니다. 입력을 받는 스크립트는 UnityEngine.InputSystem 을 사용해야 합니다.using UnityEngine;using UnityEngine.InputSystem;public class InputSystemTest : MonoBehaviour{ } 다이렉트 방식InputSystem 에서 지원하는 입력방식의 클래스를 변수로 선언하고, 변수를 통해 직접 입력받는 시스템 방식 입니다.이때, 클래스 변수에는 Keyboard.curre..

내일배움캠프 21일차 TIL - 객체지향 특별강의 정리

절차지향 - 코드간의 순서객체지향 - 객체간의 관계-> 비율의 차이일뿐, 절대적인것은 아님 Class - 문법Instance - 메모리에 할당된 객체/클래스Object - 단위, 개념 클래스 - 객체에 필요한 속성과 기능을 관리, 문법으로 표현 (붕어빵 틀)인스턴스 - 메모리에 할당된 클래스 (붕어빵)오브젝트 - 추상화된 개념 (단위) 객체는 기능을 제공한다 - 캡슐화이때, 기능을 담은 캡슐이 클래스 추상화 - 공통 분모로 묶을수 있는것을 클래스로 묶는 작업 상속을 통해서 다양한 클래스를 만든다 - 다형성 상속 - 나의 클래스로 관리가 불가능한 내용을 쪼개서 구현 자식클래스 - 부모 클래스를 상속받아 만들어진 클래스들파생클래스 - == 자식클래스 캡슐화, 추상화, 상속, 다형성 - 객체지향의 특징 4가지..

내일배움캠프 20일차 TIL - abstrack class, Interface 사용 구분

수준별 학습에서 abstrack 와 interface 의 사용 차이점에 대해 그림으로 구분해보고자 합니다. abstrack class 는 추상클래스로, 메서드를 선언하지만 그 내용을 구현하지 않는 상속을 위한 클래스 입니다.interface 는 추상클래스와 비슷하게 메서드의 이름을 선언하고 내용을 구현하지 않지만, 추상클래스와는 다른점이 있습니다. 먼저 가장 큰점은 abstrack class 는 클래스이기 때문에, 이 클래스를 부모 클래스로 가지는 클래스는 다른 클래스를 부모로 가질 수 없습니다(단일상속). interface의 경우, 한번에 여러개의 인터페이스를 상속받을 수 있으며, 추상클래스를 상속받은 상태에서도 인터페이스를 추가로 상속받을 수 있습니다. 이 두가지 기능을 사용할때는 주로 이러한 기준을..

사전캠프/TIL 2024.10.14

내일배움캠프 19일차 TIL - New Input System : 1회만 입력받기

New Input System 으로 버튼 입력을 사용해보면 Press Only 에서는 누를때 true, Release Only 에서는 뗄때 falsePress And Release 에서는 누를때 true, 뗄때 false를 반환하는것을 볼 수 있습니다.//스페이스바 입력시 bool 값 매개변수로 받음public void OnInteracte(InputValue value){ InteracteInput(value.isPressed); Debug.Log(value.isPressed);} 이 경우, 변수나 프로퍼티를 통해 외부에서 입력을 인식할경우, 눌렀다 뗄때까지 입력이 연속으로 들어가는경우가 발생합니다.//입력받은 값을 변수로 전달public void InteracteInput(bool inte..

내일배움캠프 18일차 TIL - 개인프로젝트 스파르타타운 만들기 진행상황

개인프로젝트 - 스파르타 타운 만들기의 필수과제를 모두 제작하여 TIL로 진행상황을 올려봅니다. 먼저 폰트와 에셋은 저작권이 없는것으로 제작하였습니다.https://fonts.google.com/specimen/Jua?subset=korean&lang=ko_Kore Jua - Google FontsJua is a Korean and Latin fontfonts.google.comhttps://www.kenney.nl/assets/rpg-urban-pack RPG Urban Pack · KenneyDownload this package (480 assets) for free, CC0 licensed!www.kenney.nl캐릭터캐릭터는 타일맵에 포함되어있던 6종의 캐릭터를 활용하였으며, 각각 프리팹으로 만..

내일배움캠프 17일차 TIL - Atan2

개인적으로는 LookAt() 혹은 Euler 를 사용하여 타겟을 조준하는 방법만을 사용하였는데,Atan 아크탄젠트를 사용해본적은 없어서 정리해보고자 합니다. 먼저 Euler 를 사용하여 대상을 바라보도록 만들경우 이러한 과정을 거칩니다.//공격대상을 바라보도록 포탑 회전protected void LockOn(){ //바라볼 방향벡터 얻기 Vector3 dir = nowTarget.transform.position - transform.position; //Vector3 값을 Quaternion 값으로 변환 Quaternion lookRotation = Quaternion.LookRotation(dir); //포탑을 천천히 회전시키기(타겟이 보이자 마자 모션없이 바로 보는것을 방..