본문 바로가기
Unity, APM TIL

07.09.2024 TIL (게임개발 종합반 1주차 노트)

by 아네린이 2024. 7. 9.

C#이란?

  • 게임 개발 코딩할때 쓰는 언어
  • Microsoft가 개발한 코딩 개발 언어, 유니티에서만 주류로 쓰이는 중

 

유니티란?

  • 충돌/중력/탄성/카메라 등을 쉽게 코딩 할 수 있는 툴
  • 유니티가 존재하기 전에는 게임을 만드는 엔진을 만들고 개발을 했다고 함.
  • 덴마크 출신 개발자 2명이서 만든 게임 엔진

 

유니티를 사용하는 이유

  • 게임 개발에 최적화된 개발 환경이기 때문
  • 특히 2D 게임은 거의 100% 유니티로 개발한 것

 

유니티 화면 개념

  • Scene : 실제 게임의 구성요소를 보는 곳, 실질적인 게임 개발 씬
  • Game : 게임이 실제로 보여지는 곳, play 버튼 클릭 후 볼 수 있음
  • Hierachy : 게임 내 구성요소를 볼 수 있는 곳, 개발 시 자주 필요
  • Project : 프로젝트에 포함된 파일들을 모아볼 수 있는 곳
  • Inspector : 클릭한 요소의 속성과 정보를 보여주는 곳

 

캐릭터에 코딩을 입히다

  • 캐릭터가 동작할 수 있도록 한다
함수
Start (너는 태어날 때)
Update (매 순간 이렇게 해라)
transform (캐릭터의 위치와 중, position을 계속 바꿔 줘)
transform.position += Vector3.right * 0.05f;

Vector3.right -> Vector3(1,0,0);
Vector3.right * 0.05f -> Vector3.(0.05f, 0,0);

 

 

르탄이 속도 일정하게 만들기

  • frame : 1초에 호출/계산되는 횟수 (기기 성능이 좋을수록 frame이 높아지므로, 기기 성능과 관계없이 1초에 60번만 호출/계산하도록 고정)
// Start is called before the first frame update
void Start()
{
Aplication.targetFrameRate = 60;
}

 

 

f란?

  • float
  • 소수점을 나타내는 자료형(소수를 쓰고 싶을 때 뒤에 f 붙히기)

 

변수란?

  • 데이터를 담어 놓을 수 있는 박스
  • 반복해서 사용할 데이터/값을 박스에 담아 놓고 꺼내 쓴다.
float direction = 0.05f;
// Start is called before the first frame update
void Start()
{

}

//Update is called once per frame void Update()
{
transform.position += Vector3.right * direction;
}

 

 

연산자

산술 연산자 (Arithmetic Operators)

 

  • + : 더하기 (Addition)
    • 예: a + b
  • - : 빼기 (Subtraction)
    • 예: a - b
  • * : 곱하기 (Multiplication)
    • 예: a * b
  • / : 나누기 (Division)
    • 예: a / b
  • % : 나머지 (Modulo)
    • 예: a % b

 

비교 연산자 (Comparison Operators)

 

  • == : 같다 (Equal to)
    • 예: a == b
  • != : 같지 않다 (Not equal to)
    • 예: a != b
  • > : 크다 (Greater than)
    • 예: a > b
  • < : 작다 (Less than)
    • 예: a < b
  • >= : 크거나 같다 (Greater than or equal to)
    • 예: a >= b
  • <= : 작거나 같다 (Less than or equal to)
    • 예: a <= b

 

논리 연산자 (Logical Operators)

 

  • && : 논리 AND (Logical AND)
    • 예: a && b
  • || : 논리 OR (Logical OR)
    • 예: a || b
  • ! : 논리 NOT (Logical NOT)
    • 예: !a

 

할당 연산자 (Assignment Operators)

 

  • = : 할당 (Assignment)
    • 예: a = b
  • += : 더한 후 할당 (Add and assign)
    • 예: a += b (a = a + b와 같음)
  • -= : 뺀 후 할당 (Subtract and assign)
    • 예: a -= b (a = a - b와 같음)
  • *= : 곱한 후 할당 (Multiply and assign)
    • 예: a *= b (a = a * b와 같음)
  • /= : 나눈 후 할당 (Divide and assign)
    • 예: a /= b (a = a / b와 같음)
  • %= : 나머지를 구한 후 할당 (Modulo and assign)
    • 예: a %= b (a = a % b와 같음)

 

증감 연산자 (Increment and Decrement Operators)

 

  • ++ : 1 증가 (Increment by 1)
    • 예: a++ (후위 증가, a를 사용한 후 1 증가)
    • 예: ++a (전위 증가, a를 사용하기 전에 1 증가)
  • -- : 1 감소 (Decrement by 1)
    • 예: a-- (후위 감소, a를 사용한 후 1 감소)
    • 예: --a (전위 감소, a를 사용하기 전에 1 감소)

 

조건부 연산자 (Comdicional Operator)

  • ? : : 조건부 (삼항) 연산자 (Conditional or Ternary Operator)
  • 예: condition ? first_expression : second_expression
  • 조건이 true면 first_expression, false면 second_expression을 반환

비트 연산자 (Bitwise Operators)

 

  • & : 비트 AND (Bitwise AND)
    • 예: a & b
  • | : 비트 OR (Bitwise OR)
    • 예: a | b
  • ^ : 비트 XOR (Bitwise XOR)
    • 예: a ^ b
  • ~ : 비트 NOT (Bitwise NOT)
    • 예: ~a
  • << : 비트 왼쪽 시프트 (Left shift)
    • 예: a << b
  • >> : 비트 오른쪽 시프트 (Right shift)
    • 예: a >> b

 

 

 

오늘의 학습일지

코딩은 어려워. 재미없어. 나는 수포자라 못해!라고만 생각했었는데

Unity C#은 생각보다 재밌고 할만했다!

강의 속 튜터님이 진행하는걸 그대로 베끼는거지만 그래도 중간중간 오류가 있었고 구글링과 GPT를 활용하면 문제를 해결했다.

스스로 문제를 파악하고 해결하며 뭔가 요상한 쾌감을 느꼈다.

이 맛에 코딩을 하는건가? 라는 생각을 했다.

아직 1주차 밖에 하지 않았지만 하다보면 속도가 붙을것이라고 예상 중!

 

한편으로는 이걸 내가 배우는게 오바인가? 싶기도 하지만 코딩이 흥미롭게 느껴지니 나를 위해서 한다고 생각하리라!

나에게도 좋고, 수강생들의 눈높이에 맞추기에도 좋고!

 

2주차부터는 1주차보다 강의 시간이 거의 절반씩이라 하루에 두개씩 따라할 수 있지 않을까 예상 중!

 

UXUI 공부한 것 처럼 배운 모든 걸 노트정리하고 싶은데 코딩에서는 불가능한 것 같다.

어떤식으로 학습을 기록해야할지 고민해봐야 할 부분같다.

 

보통 문제를 해결한 부분을 정리해서 올리던데.. 아직은 그냥 생 초보라.. ㅎㅎㅎㅎ

일단 따라해보는걸 목표로! 가지고 가다보면 답이 나오리라!

 

내일도 Hello World!