분류 전체보기 (27) 썸네일형 리스트형 Overload 와 Overriding Overload과적하다는 의미로 같은 이름의 메서드를 반환 값 혹은 매개변수를 다른 타입 혹은 다른 개수로 선언하여 다른 형식에 동일하게 작동하는 같은 이름의 메서드를 정의할 수 있다. private int Multiply(int a, int b) { return a * b; } private float Multyply(float a, float b) { return a * b; } private double Multyply(double a, double b) { return a * b; } } 위 코드 처럼 같은 메서드에 다.. 객체 지향 프로그래밍이란? with C# 절차지향(Procedural Programming)필자는 절차적으로 실행이 결정된다고 해석했다. 기능의 위주로 설계하고 함수를 만드는 프로그래밍이다. 예를 들어 계산기를 만든다면 계산기에 필요한 각 함수를 만들고 해당 함수들을 계산기의 절차에 맞게 만들어 주는 것이다. int main(){ sum(a, b); mult(a, b); return 0;}int sum(int a, int b){ //더하기 정의}int mult(int a, int b){ //곱하기 정의} 위 코드(수도 코드)는 더하기, 곱하기의 기능으로 나누어 절차에 따라 실행흐름을 정해줬다.객체 지향 프로그래밍(Object Oriented Programming)public class Ship { public .. 스킬 디버깅 하는 방법 보호되어 있는 글입니다. 배열로 구현한 스택 - 2024.08.19(월) 스택 - 후입 선출, LIFO(List in First Out)나중에 들어온 요소가 가장 먼저 나가는 자료구조다. 다음과 같은 원통에 요소를 채워넣고 위에서 부터 꺼낸다고 생각하면 편하다. typedef struct tagNode{ int Data;}Node;typedef struct tagStack{ int Capacity; // 용량 int Top; // 최상위 인덱스 캐싱 Node* Nodes; // 노드 포인터}Stack; // 스택 정의typedef enum{ false = 0, true = 1}BOOL; 노드의 데이터는 int 값이며 스택 필드의 멤버 변수로는 배열의 용량을 알기위한 Capacity, 최상단 노드를 카리키기 위한 Top, 그리고 배열을 가리킬 노드 포인터 이렇게 3개의 맴버 .. URP(universal/Rendering PipeLine)에 대하여 Rendering Pipe Line 이란?그래픽 최적화를 할 때 꼭 해야하는 작업으로(특히 3D 작업에 필수이다) 3차원으로 만들어진 오브젝트를 2D로 투영하여 화면에 출력하는 과정이다. 정점의 값을 받아 삼각형 모양으로 표면을 그리는 작업이라고 하는데 옅은 지식만 갖고 있기에 이렇게만 설명하려고 한다. URP란?중복된 쉐이더를 하나로 묶어 계속해서 쉐이더를 사용하는 기술이다. (오브젝트 풀링과 유사하게 만들어 놓은 쉐이더를 재사용하는 방식) 라이팅 개수 즉 빛의 개수를 제한하여 빛에 필요한 많은 양의 계산을 줄일 수 있다. 빌트인에서 URP 설정 방법 Window 탭에서 Package Manager을 누른다. Universal RP를 검색 후 다운 받아준다. 프로젝트 창에서 파이프라인 에셋을 생.. Unity에서 Lerp Lerp(선형 보간)두 점 사이에 임의의 직선 위에 특정한 지점을 해당 직선 거리에 비례하여 구하는 방법이다. Note.개념은 어렵지만 일반적으로 이해하기로는 부드러운 움직임을 연출할 때 사용하는 기능인 것 같다. EX.다음 예제는 Vector3.Lerp를 이용하여 부드러운 움직임을 구현할 것이다.Lerp의 과정을 가장 확실하게 볼 수 있어 Vector3.Lerp를 선택했다.Transfrom을 Translate로 바꾸는 코드와 Lerp를 사용하여 바꾸는 코드를 비교하려고 한다. Code.Lerpusing System.Collections;using System.Collections.Generic;using UnityEngine;public class TestVector3Lerp : MonoBehavio.. 2024/07/02 (화) DontDestroyOnLoad에 대해 사용 방법DontDestroyOnLoad(_object);전달 인자로 보존하고 싶은 오브젝트를 넣어주면 된다.DontDestroyOnLoad 더 자세히 보기1. 전달 인자인 "_object"는 씬 전환시 보존된다.씬 전환시 모든 오브젝트가 파괴된다. 따라서 게임 메니저와 같은혹은 계속 존재해야하는 오브젝트를 보존할 때 사용하는 유용한 기능이다. Note1. Object 클래스의 메소드로 선언은Object.DontDestroyOnLoad(Object target);이지만 Object클래스의 메소드는 Object가 생략가능하다. Note2. 자식 객체도 함께 보호된다. Player 오브젝트를 보호하면 자식 오브젝트인 Body와 Main Camera도 같이 보호되는 것을 확인할 수 있다. Note3. 항상 .. 2024.06.05 코루틴이란? 오브젝트의 제어권은 Unity엔진에게 제어권이 있다.Start, Update 등등 유니티의 라이프 사이클에 의한 콜백 함수로 돌아간다. 하지만 코루틴을 사용하게 되면 제어권이 잠시 오브젝트에게 넘어간다.StartCoroutine은 오브젝트 오브젝트가 코루틴 사용을 통보한 후 제어권을 오브젝트가 가지고 오게 된다.하지만 코루틴은 yield return을 무조건 써야하며 지정된 시간 프레임 단위 만큼 다시 Unity에게 제어권을 넘겨준다. 코루틴의 특징 코루틴은 스레드가 아니다.코루틴은 동기이지만 비동기처럼 보이는 동시성(동시에 작업이 실행 되는 것 처럼 보이는 것)의 역할을 한다.동기로 작업을 처리한다.자신의 코드를 다 수행할 때까지는 다음 코드를 진행X반환 시점과 완료 시점이 같다. 이전 1 2 3 4 다음