Home
Night's Devlog
Cancel

[C++] 연산자 오버로딩

연산자 오버로딩이란? 연산자 오버로딩은 사용자 정의 타입에서도 +, -, \와 같은 연산자를 사용할 수 있게 하는 문법이다. 예를 들어, 아래와 같이 코드를 구현했다고 가정하자. #include<iostream> using namespace std; class Point { int _x, _y; public: expl...

[Unity] Coroutine은 비동기가 아니다

Coroutine의 기본적인 개념과 사용법은 알고 있다는 가정 하에 작성한 글입니다. 처음에 Unity를 독학했을 때 Coroutine(이하 코루틴)은 유니티에서 비동기 처리를 지원하는 메소드인 줄 알았다. 하지만 이 글의 제목처럼 코루틴은 실제로 비동기 처리를 하는 것이 아닌 하나의 스레드(싱글 스레드)에서 비동기처럼 작동하는 메소드이다....

[Unity Shader] ShaderLab과 Shader 작성 방식

1. ShaderLab(쉐이더랩) ShaderLab이란 유니티에서 모든 Shader 파일을 작성할 때 사용하는 선언형 언어이고 중첩 중괄호 구문을 이용해 다양한 요소로 선언이 가능합니다. 유니티에서 Shader 파일을 만들어서 열어보면 평소 우리가 사용하는 언어와 비슷하지만 조금씩 다른 점을 확인하실 수 있습니다. 자세한 내용은 공식 문서에 잘 ...

[C++] 스마트 포인터 - unique_ptr

description unique_ptr은 이름에서 알 수 있듯이 하나의 대상에 하나의 unique_ptr 포인터로만 가리킬 수 있습니다. auto_ptr과 비슷해 보이지만 auto_ptr과 다르게 컴파일 에러를 발생시켜 하나의 대상에 여러 개의 포인터가 가리키는 일을 컴파일 단계에서 차단해 줍니다. 사용 방법은 아래와 같습니다. #includ...

[C++] 스마트 포인터 - shared_ptr

description shared_ptr은 포인팅 횟수(카운트)를 계산해서 카운트가 0일 될 때 대상 객체를 삭제(해제)하는 스마트 포인터입니다. 예를 들어, A라는 객체를 N개의 shared_ptr 포인터로 가라키게 된다면 카운트는 N이 됩니다. 그리고 여기서 1개의 shared_ptr 포인터가 소멸된다면 A 객체가 소멸되지 않고 카운트가 N...

[C++] 스마트포인터 - auto_ptr

auto_ptr은 스마트포인터 중에서 가장 오래된 스마트포인터입니다. 구형인만큼 auto_ptr은 사용에 불편함이 많아 사용하지 않는 것이 바람직한데요. 왜 불편하고 사용하지 말라고 하는지 하나씩 살펴보도록 하겠습니다. auto_ptr C++ 표준 라이브러리 헤더 파일 ****을 include 해야 사용이 가능합니다. 스마트 포인터인 ...

Boids(Flocking) Algorithm 만들어보기 (feat. Unity)

Boids(Flocking) 알고리즘을 만들어 보면서 정리한 글입니다. 공부하면서 정리한 글이기에 잘못된 점이 있을 수 있습니다. 이 점 참고 부탁드리며 오류를 발견하셨다면 편하게 댓글로 공유해 주세요!! 1. Description Boids(Flocking) 알고리즘이란 새들이 떼를 지어 다니는 행동에 대한 시뮬레이션(군집 이동 알고리즘...

[Unity] Behavior Tree(BT) 만들어보기

1. Behavior Tree Behavior Tree에 대한 이론은 가볍게만 짚고 넘어가려고 합니다 틀린 점이나 공유할만한 내용이 있다면 댓글로 공유해 주세요! AI를 구현할 때 간단한 AI는 FSM으로도 충분히 구현할 수 있습니다. FSM이란, 유한상태기계(finite-state machine, FSM)의 줄임말입니다. 말 ...

[Unity] 구면 좌표계로 3인칭 카메라 움직임 구현하기

0. 서론 3인칭 게임에서 대부분의 카메라는 타켓을 중심으로 하는 구 형태를 그리면서 움직이고 있습니다. 이러한 카메라 움직임을 구현하는 방법은 다양합니다. 그중에서 “구 형태”를 그린다는 것에 집중하여 구면 좌표계로 구현해 보면 어떨까? 란 의문이 들었고 이를 직접 구현해 보면서 작성한 글입니다. 1. 구면 좌표계 구현 구면 좌표계에 ...

[C++] r-value 참조

r-value 참조 r-value는 단순 대입 연산자의 오른쪽 항을 말하며 r-value로써 변수가 올 수도 있고 1, 5와 같은 리터널 상수가 올 수도 있습니다. Ex. int a = 3; -> 3은 r-value 1에다가 5를 참조할 수 없듯이 변수가 아닌 대상(l-value)에 참조를 선언하는 건 허용되지 않았으나 C++11...