호우동의 개발일지

Today :

article thumbnail
[Unity 3D] GUI 에서의 Event의 역할 및 사용

Event OnGUI()를 호출하는 주체(OnGUI 보다 Low-Level) - 사용자와의 입력과 상호작용 - 트리거들을 공통적으로 처리하는 예약된 함수들이 정의되어 있다 - 효율성을 위해 OnGUI() 내부 코드와 현재 Event의 관계 여부에 따라 무시할 수 있음 1. 현재 이벤트가 드로잉이 아닌데, 드로잉 관련 코드를 만나면 그 코드를 무시 2. MouseClick 이벤트로 OnGUI()가 호출되면 해당 흐름에서는 Drawing 수행 코드 무시 Event 종류 Event.current: 현재 OnGUI()를 호출하게 된 Event Layout Event: Repaint 전 GUI들의 배치 값 관련 수집 이벤트 유니티 상단에 MyTool/OpenTool을 눌러 생성된 창 위에 마우스를 올리고 클릭, ..

article thumbnail
[Unity 3D] 많이 사용되는 GUI 요소 그룹 사용법 정리

EditorGUILayout 함수 using UnityEngine; using UnityEditor; public class TestEditorWindow : EditorWindow { int intValue; float floatValue; Color colorValue; Gradient gradientValue = new Gradient(); Rect rectValue; Vector3 vector3Value; Vector3Int vectorInt3Value; UnityEngine.Object objectValue; string passwordValue; string tagValue; UnityEngine.ParticleSystemCollisionType enumValue; private void On..

article thumbnail
[Unity 3D] GUI 4가지 생성 방식과 방식 간의 차이 정리

스크립트 기본 준비 기본적으로 GUI를 사용하기 위해서는 2가지 사전 준비가 필요하다. 1. 스크립트에 UnityEditor를 사용함을 명시한다. 2. 해당 클래스의 부모를 EditWindow로 지정한다. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; // UnityEditor 사용 public class TestEditorWindow : EditorWindow // EditorWindow를 부모로 지정 { } 유니티 Scene에 새로운 스크립트 TestEditorWindow를 만들어 위와 같이 수정한다. 새로운 윈도우 만들기 GUI를 만드려면 그 GUI를 그리기 위한 도화지(..

article thumbnail
[C++] 백준/BOJ - 15724 : 주지수
Algorithm/BOJ 2022. 11. 17. 17:55

문제 이해 단계 쉽게 말하면 2차원 표가 주어지고 그 표 안에는 사람 수가 적혀 있다. 그리고 입력으로 시작좌표(x, y)와 끝좌표(x, y)가 들어온다 그 사이를 사각형으로 둘러쌓을 때, 그 안에 들어오는 사람수의 총합을 구하는 문제이다. 문제 접근 단계 일단 이 문제를 읽자마자 너무 당연해서 당황했다. 그냥 당연히 좌표제한해서 하나하나씩 세면 되지 않을까? 근데 그러면 문제를 냈을 리가 없지, 하면서 문제 조건을 잘 읽어봤다. 영토 크기는 최대 1024X1024 = 즉 2^20으로 엄청나게 크다. 무엇보다도 계산을 한 번만 하는 게 아니다. 궁금해하는 영토의 개수 K가 최소 100,000개이기 때문에 일반적으로 개수를 세서 더하는 걸로는 딱 봐도 시간초과가 뜰 것 같다. 이전 계산의 결과를 저장하거나..

[C++] 백준/BOJ - 10844 : 쉬운 계단 수
Algorithm/BOJ 2022. 9. 18. 18:31

문제 이해 단계 인접한 수(양쪽에 있는 수)랑 차이가 딱 1씩만 나는 수를 계단 수라고 한다. 자릿수 N이 주어질 때, 총 몇 가지 경우의 수가 나오는지 구하는 문제이다. 문제 접근 단계 이 문제를 들었을 때는 전혀 감이 잡히지 않았기 때문에 일단 두 자리 계단수부터 계속 써봤다. N = 2 10 / 21 / 32 / 43 / 54 / 65 / 76 / 87 / 98 12 / 23 / 34 / 45 / 56 / 67 / 78 / 89 N = 3 101 / 121 / 123 / 212 / 232/ 234 / 343 / 345 454 / 456 / 565 / 567 /... / 898 / 987 / 989 1. 연속적인 숫자가 나타난다. 2. 경우의 수에 영향을 주는 것은 끝자리에 어떤 수가 오느냐이다. 3..

article thumbnail
[C++] 백준/BOJ - 9465 : 스티커
Algorithm/BOJ 2022. 9. 12. 20:00

문제 이해 단계 https://www.acmicpc.net/problem/9465 세로가 2이고 가로가 n인 스티커가 있는데 각 스티커에는 점수가 적혀있다. 스티커를 뗄 때에는 특징이 있는데 점수를 얻는 스티커의 상하좌우에 있는 스티커는 더 이상 사용 할 수 없다. 이러한 상황일 때, 얻을 수 있는 점수의 최댓값을 구하는 문제 문제 접근 단계 해당 문제를 풀기 위해서 예제로 처음부터 시뮬레이션을 돌려보도록 하겠다. 시작값 50일 때 움직일 수 있는 칸 목록이다. 이렇듯 사실상 왼쪽과 아래에 있는 10,30을 제외하면 다 움직일 수 있는 것으로 보인다. 하지만 우리는 스티커 점수의 최댓값을 구하는 것이다. 이렇듯 100, 20,10은 50뿐만 아니라 다른 수에서 접근할 수 있다. 즉 굳이 50에서 바로 접..

[C++] 백준/BOJ - 11055 : 가장 큰 증가 부분 수열
Algorithm/BOJ 2022. 9. 8. 10:59

이해 단계 수열 문제 시리즈이다. 수열이 주어질 때 증가하는 부분 수열을 원소들을 찾는다. 그 원소들의 집합 중 합이 가장 큰 집합을 찾아 그 값을 찾아내는 문제이다. 문제 접근 단계 가장 큰 수열 ~ 문제 시리즈 상 문제를 읽지 않아도 DP로 풀어야겠구나라고 생각이 바로 들더라.. 이러면 안 되긴 하는데 너무 문제가 시리즈상으로 많이 있어서 자연스럽게 그렇게 됐다.. 그래도 이 문제가 왜 DP로 풀 수 있는지 따져보기로 했다. 이 문제의 예제로 살펴보도록 하자. {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 왼쪽부터 x = 1이라고 해서 순차적으로 올라가 보면서 생각해 보겠다. x = 1 일 때 최댓값은 1이다. x = 2 일 때, (1)(1+100)(100) 중, 최댓값은 101이다...

article thumbnail
[C++] 백준/BOJ - 2579 : 계단 오르기
Algorithm/BOJ 2022. 8. 30. 11:52

문제 이해 단계 https://www.acmicpc.net/problem/2579 입력으로 계단의 개수가 주어지고, 그다음부터 각 계단의 점수가 순서대로 주어진다. 출발부터 시작하여 마지막 계단까지 이동하는데 2가지 규칙을 따른다. 1. 이동은 1칸 또는 2칸을 이동한다. 2. 1칸을 이동할 때는 연속되는 3칸을 이동할 수 없다(1,2,3 이런 식) 이런 조건에서 마지막 칸까지 이동할 때 얻을 수 있는 최대 점수를 구하는 문제이다. 문제 접근 단계 마지막 계단을 무조건 밟아야 하기 때문에 마지막 계단부터 생각해 보자. 마지막 계단으로 도달할 수 있는 경우의 수는 2가지가 있다. 1. 1칸 이동했을 때 2. 2칸 이동했을 때 그런데 우리가 구해야 하는 것은 마지막 계단에 도착했을 때의 최대 점수이다. 때문..