내일배움캠프 103

내일배움캠프 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의 경우, 한번에 여러개의 인터페이스를 상속받을 수 있으며, 추상클래스를 상속받은 상태에서도 인터페이스를 추가로 상속받을 수 있습니다. 이 두가지 기능을 사용할때는 주로 이러한 기준을..

내일배움캠프 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); //포탑을 천천히 회전시키기(타겟이 보이자 마자 모션없이 바로 보는것을 방..

내일배움캠프 16일차 TIL - 2D 충돌감지

문제상황 2D 프로젝트중, Collider를 통해 벽을 만들고, 이동을 구현할경우 벽에 부딪치면 이러한 상황이 발생합니다. 시도해본것Character Contoller 컴포넌트를 사용하여 움직임을 구현할경우, 벽을 인식하지 못하는 상황이 발생합니다. private Move(){ characterContoller.Move(_input.move * moveSpeed * Time.deltaTime);}해결 방법레이캐스팅을 응용하여 벽을 감지하고, 벽이 감지되면 해당 방향의 벡터를 0으로 만들어 움직이지 않도록 추가로 구현할 필요가 있습니다.//이 오브젝트의 콜라이더private BoxCollider2D _collider;//감지된 콜라이더가 저장될 배열private RaycastHit2D[] wallHi..

유니티 기능 - Rule Tile

이전에 타일맵을 만들어주었습니다.그런데 타일을 종류에 따라 일일히 붙여주는것은 시간이 너무나도 오래걸립니다. 이 문제를 해결하기위해 Rule Tile 기능이 존재합니다.Rule Tile 기능은 규칙에 따라 타일을 자동으로 붙여주는기능입니다.하나의 타일에 여러가지 모양을 지정한 뒤, 타일이 어떻게 설치되었느냐에 따라서 설치되는 타일을 자동으로 바꿔줍니다. 먼저 폴더에서 우클릭후, Create - 2D - Tiles - Rule Tile 을 선택하여 룰 타일 오브젝트를 생성해줍니다. 룰 타일 오브젝트의 인스펙터창 입니다.Default Sprite에 이 타일을 대표할 이미지를 넣어준 뒤, Tiling Rules 에 이 타일이 가질 규칙을 만들어주면 됩니다. 24개의 규칙을 가진 풀밭을 당담하는 룰타일을 만들어..

유니티 기능 - 타일맵

2D 프로젝트 진행전, 2D 게임을 만들때 자주 사용되는 타일맵에 대해서 정리해보자 합니다.먼저, 기본 타일이 될 이미지가 필요합니다.저는 kenney 에서 무료 에셋을 받아서 사용할 예정입니다.https://www.kenney.nl/assets/rpg-urban-pack RPG Urban Pack · KenneyDownload this package (480 assets) for free, CC0 licensed!www.kenney.nl※해당 에셋은 저작권이 없는 에셋입니다 받아준 이미지의 Sprite Mode를 Multiple로 변경해줍니다. Sprite Editor를 열어서 이미지를 나누어줍니다.Slice 를 선택한 후, 이미지를 칸갯수로 나누는 Grid By Cell Count 옵션을 사용하거나 ..