레트로의 유니티 게임 프로그래밍 에센스 - 5.1

Cosmos·2023년 3월 30일
0

학습 매체 : 책

책이름 : 레트로의 유니티 게임 프로그래밍 에센스

저자 : 이제민


본 내용은 해당 강의 내용을 공부하면서 정리한 글입니다.


  • 게임 월드 속 사물을 '오브젝트'라고 한다. 온전한 하나의 사물이라고 인식할 수 있다면 어떠한 것도 오브젝트가 될 수 있다. 예를 들어, 게임 상의 캐릭터는 캐릭터 오브젝트, 탄알은 탄알 오브젝트, 바위는 바위 오브젝트라고 할 수 있다.

  • 대부분의 프로그램에서는 '하나의 독립적인 사물'을 오브젝트라는 단위로 표현한다. 그러한 오브젝트들이 상호작용하여 프로그램을 이룬다.

  • 이 장에서 배울 객체지향은 독립적이며 스스로 동작하는 여러 객체(오브젝트)가 모여 거대한 프로그램이 완성되는 구조를 만드는 방법이다. 그리고 그것이 우리가 작성할 유니티 C# 스크립트의 '클래스'가 동작하는 방식이다.

  • 클래스와 오브젝트의 개념과 그것을 어떻게 C# 문법에서 사용하는지 배운다. 또한 변수로 오브젝트의 참조를 가리키는 방식을 통해 게임 오브젝트와 컴포넌트를 여러분 마음대로 조종하는 방법을 배운다.


이 장에서 다루는 내용

  1. 클래스와 오브젝트의 개념
  2. C# 클래스로 원하는 사물을 정의
  3. 오브젝트 생성
  4. 참조 변수를 사용하여 유니티의 컴포넌트를 조작

5.1 클래스와 오브젝트

  • 클래스와 오브젝트는 객체지향의 핵심이다. 객체지향은 '사람이 현실 세상을 보는 방식'에 가깝게 프로그램을 완성하는 것이다.

  • 일반적으로 사람은 사물을 '하나의 온전한 독립체'로 여기는 경향이 있다.

  • 휴대폰을 예로 들어보자. 휴대폰은 프로세서, 카메라, 디스플레이 등 각종 센서와 엄청난 수의 논리회로로 이루어져 있다. 하지만, 우리는 휴대폰을 여러 부품의 집합으로 여기지 않고 하나의 온전한 물건(오브젝트)으로 본다.

  • 객체지향은 프로그램을 이러한 오브젝트의 집합으로 구성하는 방식이다.


5.1.1 클래스

  • 3장에서 클래스(class)묘사할(추상화) 대상과 관련된 코드(변수와 메서드 등)를 묶는 틀이라고 했다.

  • 다양한 사물에 관한 코드를 각자의 클래스로 만들어 묶어두면 코드 관리가 훨씬 쉬워진다.

  • 정리하면 클래스는 표현하고 싶은 대상을 추상화하여 대상과 관련된 변수와 메서드를 정의하는 틀이다.

추상화

  • 추상화란 대상의 핵심적인 개념과 기능을 추려내는 거다.
  • 클래스는 프로그램 속에서 실제로 존재하는 사물(실체 또는 오브젝트)이 아니다. 클래스는 틀이다. 틀은 물건이 아니지만 틀(클래스)에 쇳물을 부어 실제 물건(오브젝트)을 만들 수 있다.

5.1.2 오브젝트

  • 물건의 설계도인 클래스와 달리 오브젝트(object)는 실제로 존재하는 물건(실체)이다.

  • Human 클래스는 실제로 존재하는 오브젝트가 아니다. 하지만 Human 클래스라는 틀을 사용해 실제 존재하는 Human 오브젝트를 찍어낼 수 있다.

  • 클래스는 하나만 존재하지만 클래스를 기반으로 생성한 오브젝트는 여러 개 존재할 수 있다는 사실에 주목하자.

  • 클래스라는 틀로 오브젝트를 찍어내 실체화하는 것을 인스턴스화한다고 하며, 인스턴스화를 이용해 생성된 오브젝트를 인스턴스라고 한다.

  • 이 책에서는 오브젝트가 실시간으로 어떤 클래스에서 복제 생성되었다는 사실을 강조하기 위해 때로는 오브젝트를 인스턴스라고 표기한다.


5.1.3 오브젝트의 독립성

  • 하나의 원본 클래스에서 여러 개의 오브젝트를 생성할 수 있다. 그럼에도 오브젝트는 서로 독립적이며 구별 가능한 실체이다.

다음 강의에서 계속~

profile
게임 개발을 목적으로 공부하고 있는 대학생입니다.

0개의 댓글