목록분류 전체보기 (255)
Deff_Dev
⚒️ 옵저버 패턴이 뭘까 어떤 객체의 상태가 변할 때, 그 객체에 의존성을 가진 다른 객체들이 그 변화를 통지 받고 자동으로 업데이트될 수 있게 만드는 패턴 해당 객체 정보를 모르고 있더라도, 변화가 발생하면 등록되어 있는 이벤트들이 전부 다 실행되기 때문에 정말 편리하다. 사용 방법C# 에서는 델리게이트(Action, Func 등)를 이용하여 여러 함수를 구독, 실행시킬 수 있다. [체력 상호작용 예제 코드]더보기using UnityEngine;using System;public class PlayerHealth : MonoBehaviour{ [SerializeField] private int maxHealth = 100; private int currentHealth; // ..
⚒️ 경량 패턴이 뭘까 ? 여러 객체 간에 공통된 상태(intrinsic state)를 공유함으로써 메모리 사용량을 줄이는 패턴 → 동일한 정보를 가진 객체의 개수가 많을 때 사용 사용 방법 ⇒ 객체를 하나 생성하고, 해당 객체를 재사용하여 동일한 다른 객체들을 생성 이때, 하나의 객체의 정보를 가지고 여러 객체들이 공유하기 때문에 const/readonly 로 선언하여 변하지 않게 해야 하는 것이 좋음 [나무 랜덤 생성 예제 코드]더보기using UnityEngine;using System.Collections.Generic;// 나무의 내부 상태를 나타내는 클래스 (공유됨)public class TreeType{ public Mesh mesh; public Material mate..
⚒️ 명령 패턴이 뭘까 ? 명령 패턴은 메서드 호출을 실체화 한 것 이다. 함수 호출을 객체로 감쌌다라는 의미⇒ 콜백을 객체지향적으로 표현 실체화란 ? → 어떤 개념을 변수에 저장하거나 함수에 전달할 수 있도록 객체로 바꿀 수 있다는 걸 의미 특징작업을 캡슐화하여 하나의 명령을 실행기능 실행, 취소 재실행할 때 적합일반적으로 1 대 1 관계하나의 수신자(리시버)에 대해 하나의 명령이 실행 명령 패턴의 좋은 예시리플레이를 구현할 때, 매 프레임마다 전체 게임 상태를 저장해도 되지만 해당 방법은 너무 많은 메모리가 필요하다.그렇기 때문에, 명령 패턴을 사용하여, 전체 개체가 실행하는 명령 모두를 매 프레임마다 저장하여 리플레이할 때는 이전에 저장한 명령들을 순서대로 실행하여 게임을 시뮬레이션한다. [플레이..
[관련 블로그 글] [Unity/C#] TextMeshPro Material유니티에서 Text UI를 개발할 때, TextMeshPro를 많이 사용한다. 이때, 텍스트의 OutLine,Underlay 등을 설정하고 싶을 때, Material에서 OutLine 등을 설정하게 된다면 모든 해당 폰트를 사용하는 모든 Text가deff-dev.tistory.com Material Preset 변경TextMeshPro의 Material Preset을 스크립트로 변경해야할 때, 어떻게 해야할까 ? Text 객체.material로 변경한다면 material은 변경되지 않는다. 이럴 땐 Text 객체.fontMaterial로 변경하면 된다.public class MaterialChanger : MonoBehaviour..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제는 입력된 문자열을 숫자로 변환하여 반환하는 문제이다. char 아스키 코드 비교(48 ~ 57)를 이용해 숫자를 판별하고, 각각의 숫자 영단어에 따른 숫자 문자 반환 함수를 만들어 풀이했다. 문제를 다 푼뒤, 숫자 문자 판별할 때, isdigit를 사용하면 쉽게 판단할 수 있다는 걸 알게되었다.#include #include using namespace std;char GetNum(string s){ char c; if(s == "zero"){ c = '0'; } else if(s == "one"){..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이일부 학생들이 체육복을 도난당함 (lost).일부 학생들은 여벌의 체육복을 가져옴 (reserve).체육복은 바로 앞번호나 뒷번호의 학생에게만 빌려줄 수 있음여벌 체육복이 있는 학생도 도난당했을 수 있으며, 이 경우 다른 학생에게 빌려줄 수 없음체육수업에 참여할 수 있는 학생 수를 최대화하는 것이 목표함수는 체육수업에 참여할 수 있는 최대 학생 수를 반환어렵지 않은 문제지만, 여벌 체육복을 가져온 학생도 도난당할 수 있다는 점을 잘 생각해야한다. 그리고 lost 벡터가 정렬되지 않을 경우를 생각하여 오름차순 정렬한 후, 탐색을 시작했다.#includ..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제는 참가자(participant) 중 완주(completion)하지 못한 한 사람을 찾는 문제이다. unordered_map을 사용하여 완주한 사람의 수를 저장한다.이후, 참가자들을 탐색하여, unordered_map의 값이 0인 사람을 찾은 뒤 return한다.#include #include #include using namespace std;unordered_map completionMap;string solution(vector participant, vector completion) { string answer = ""; ..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이맵을 이용하여 풀이했다. 처음 탐색한 알파벳이라면 answer에 -1 저장 후, i + 1 값 설정이미 탐색한 알파벳이라면 얼마나 가까운지 구하고, 해당 위치 + 1 저장 여기서 i + 1을 한 이유 맵의 기본값이 0이기 때문에 i로 저장하게 된다면, i가 0일 때 -1이 중복으로 들어가는 경우가 생겨서 + 1을 저장#include #include #include using namespace std;map word;vector solution(string s) { vector answer; for(int i = 0; i