전체 글 56

Unity3D 추격

어떤 장르의 게임이든 잘 사용되는 추격 기능에 대한 코드를 보겠습니다. 여기선 Vector3, 정규화, Time.deltaTime 3가지를 사용하여 만들 수 있는데 여기서 벡터는 수학적 개념이 들어간 기능입니다. 여기서 벌써 벽이 느껴지는데 먼저 Vector 연산에 대해 다뤄보겠습니다. 위가 벡터의 기본 연산 방법 예시입니다. 덧셈, 곱셈, 나눗셈은 거리에 대한 것뿐이지만, 뺄셈은 다릅니다.그림에 적혀있듯이 A - B = B에서 A로의 방향과 거리를 뜻합니다. 즉, x축 3에서 1이 되려면 -2, y축에서 1에서 3이 되려면 2가 필요합니다. 그래서 (-2, 2)가 됩니다. 이는 유니티에서 오브젝트 간의 추격 기능에 중요하게 다룹니다. 네 개의 연산 외에도 내각과 크로스하는 점을 다루는 내적, 외적이라는..

대리자(delegate)

C#언어의 컬렉션(Collection)과 C언어의 함수 포인터(Function Pointer)에서 계속 언급한 대리자(delegate)에 대해 아주 간단히 그림과 짧은 코드로 작성해보겠습니다. 대리자는 현실로 치면 중개업자 역할이라고 생각합니다. 이전 글에서는 요식업 중 배달의 민족으로 예시를 드렸는데 이번엔 스폰지밥으로 시각자료를 만들어보았습니다.이제 간단히 알아볼 코드를 살펴보겠습니다.class Program{ // 대리자 public delegate void MethodDelegate(); static void PrintHello() { Console.WriteLine("Hello"); } static void PrintWorld() { ..

함수 포인터(Function Pointer)

이번 글은 C언어의 함수 포인터(Function Pointer)에 대해 알아보겠습니다. 함수포인터는 기존의 주소값 저장하던 포인터기능을 함수에 접목하여 함수를 호출하는 대리자의 역할을 대신하는 겁니다. 이는 C#의 대리자(delegate)와 비슷한 기능을 합니다. 컬렉션 글에서 대리자를 다룬 적이 있으니 관심이 있으시면 살펴보시면 될 것 같습니다. ㅎㅎ컬렉션(Collections) (tistory.com) 컬렉션(Collections)컬렉션이란? 아래의 기능을 사용하여 여러 개의 데이터를 하나의 구조로 그룹화하여 관리하는 기능입니다. using System.Collections;using System.Collections.Generic; //컬렉션에서 제네릭을 사용하기 위한hwangameinformati..