콘텐츠로 이동

D. Entity로 3D 큐브 만들기

예상 시간: 7분 | 이전: C. 변수 선언 | 다음: E. 완성 코드와 실행


🎯 학습 목표

이 강의를 마치면 다음을 할 수 있어요:

  • Entity()로 3D 객체를 만들 수 있다
  • model, color, scale 인자를 사용할 수 있다
  • ○ Entity를 변수에 저장할 수 있다

핵심 개념

Entity란?

Entity는 Ursina에서 게임 세계의 모든 물체를 나타냅니다.

📝 비유: 레고 블록

Entity는 레고 블록과 같습니다!

  • 다양한 모양의 블록이 있음 (큐브, 구, 평면)
  • 색상을 칠할 수 있음
  • 크기를 조절할 수 있음
  • 여러 개를 조합해서 복잡한 것을 만들 수 있음

Entity는 게임 세계의 기본 건축 블록이에요!

Entity 생성 흐름도

flowchart TD
    A["Entity()"] --> B{"인자 설정"}
    B --> C["model='cube'<br/>모양 결정"]
    B --> D["color=color.red<br/>색상 결정"]
    B --> E["scale=2<br/>크기 결정"]
    C --> F["3D 객체 생성!"]
    D --> F
    E --> F

    style A fill:#e3f2fd,stroke:#1976d2
    style F fill:#e8f5e9,stroke:#388e3c

Entity 만들기

my_cube = Entity(
    model='cube',
    color=color.red,
    scale=2
)

인자 설명:

  • model='cube': 큐브 모양
  • color=color.red: 빨간색
  • scale=2: 크기 2배

주요 인자들

인자 역할 예시 값
model 모양 'cube', 'sphere', 'plane'
color 색상 color.red, color.blue, color.green
scale 크기 1, 2, (2,1,3)
position 위치 (0,0,0), (1,2,3)

사용 가능한 모양들

model 값 모양 설명
'cube' 정육면체 가장 기본적인 3D 모양
'sphere' 둥근 공 모양
'plane' 평면 납작한 바닥판
'quad' 사각형 2D 사각형

⚠️ 인자 형식 주의!

인자는 이름=값 형식으로 작성합니다!

  • model='cube' (등호 사용)
  • model:'cube' (콜론 사용 불가)
  • model-'cube' (하이픈 사용 불가)

예제 코드

from ursina import *

app = Ursina()

# 변수로 설정값 저장
cube_color = color.red
cube_size = 2

# Entity로 큐브 만들기
my_cube = Entity(
    model='cube',
    color=cube_color,
    scale=cube_size
)

app.run()

결과

화면 중앙에 빨간색 큐브가 나타납니다!

  • 크기: 기본의 2배
  • 색상: 빨간색
  • 위치: 화면 중앙 (0, 0, 0)

🎯 퀴즈

퀴즈: Entity 인자
Entity의 모양을 결정하는 인자는?
정답 보기

정답: A) model

  • model: 모양을 결정 (cube, sphere 등)
  • color: 색상을 결정 (red, blue 등)
  • scale: 크기를 결정 (1, 2 등)

🔧 디버그 클리닉

문제: TypeError: Entity() got an unexpected keyword argument

원인: 인자 이름 오타

해결: 정확한 인자 이름 사용

# ❌ 잘못된 코드
Entity(modle='cube')  # model 오타!
Entity(colour=color.red)  # color 오타!
# ✅ 올바른 코드
Entity(model='cube')  # 정확한 이름!
Entity(color=color.red)

문제: 큐브가 안 보여요!

원인: 카메라 위치 또는 큐브 크기 문제

해결: scale 값 확인 또는 EditorCamera 추가

# ✅ EditorCamera로 3D 공간 탐색
from ursina import *
app = Ursina()

Entity(model='cube', color=color.red)
EditorCamera()  # 마우스로 시점 조절 가능!

app.run()

직접 코딩해보기

다양한 Entity를 만들어보세요!

파란색 구 만들기

파란색 구(sphere)를 만드는 코드를 작성하세요.

예시 답안
from ursina import *

app = Ursina()

my_sphere = Entity(
    model='sphere',
    color=color.blue
)

app.run()

결과: 화면 중앙에 파란색 구가 나타납니다!


🧩 핵심 요약

이번 강의에서 배운 내용:

  • Entity: 게임 세계의 모든 물체 (레고 블록)
  • model: 모양 결정 ('cube', 'sphere' 등)
  • color: 색상 결정 (color.red 등)
  • scale: 크기 결정 (숫자)
  • 인자 형식: 이름=값 (등호 사용!)

복습 체크리스트

  • [ ] Entity가 무엇인지 설명할 수 있나요?
  • [ ] model, color, scale 인자의 역할을 알고 있나요?
  • [ ] Entity를 변수에 저장하는 방법을 알고 있나요?

다음 단계: E. 완성 코드와 실행