상세 컨텐츠

본문 제목

[유니티 소소모임] 1주차. 유니티 기초 (Editor: Borybop)

24-25/Untiy

by 롱롱😋 2024. 10. 4. 12:04

본문

728x90

 

 

 

 C# 프로그래밍 기초 

1. 변수형 Variable

  •  int: 정수형 데이터
  •  float: 실수형 데이터, 소수점까지 포함   //숫자 뒤 f를 붙여줄 것
float hellohello = 15.5f;
  • string: 문자열 데이터
  • bool: 논리형 데이터, 참/거짓 데이터를 포함

 

2. 그룹형 변수 Group Variable

  • 배열 Array: {}로 배열을 선언
string[] numbers = {"하나", "둘", "셋"};

Debug.log("숫자 하나둘셋 출력!");
Debug.log(numbers[0]);
Debug.log(numbers[1]);
Debug.log(numbers[2]);
  • 리스트 List: <>로 변수형을 선언
List<string> animals = new List<string>();
animals.Add("강아지");
animals.Add("고양이");

Debug.Log("동물들");
Debug.Log(animals[0]);
Debug.Log(animals[1]);
animals.RemoveAt(0);

Debug.Log("동물들");
Debug.Log(animals[0]);
Debug.Log(animals[1]);
//해당 0번지의 원소는 사라지고, 다른 원소들이 앞으로 한 칸씩 옮겨지게 된다.

 

이때 1번지의 원소가 0번지로 옮겨졌기 때문에 1번지의 원소를 출력하는 코드는 오류를 일으킨다!

 

3. 연산자 Operator

상수와 변수의 값을 연산해주는 기호로, 문자열도 연산할 수 있다.

string title = "이웃집";
Debug.Log("영화의 제목은?");
Debug.Log(title + " " + );

//출력결과: 이웃집 토토로

 

4. 키워드 Keyword

예약어, 프로그래밍 언어에서 미리 지정되어 있던 단어

ex) abstract, bool, break, char, do, event 등

 

5. 조건문 Conditional

조건을 만족하면 로직을 실행하는 제어문

  • if-else
if (condition == "참") {
	Debug.Log("진짜네요");
}   // if (조건식이 true) { 로직 실행 }
  • switch-case
switch (결과가 변수인 것) {
	case 값1:
    	break;
    case 값2:
    	break;
    case 값3:
    	break;
    default:
    	위 모든 case에 해당하지 않을 때
    	break;
}


6. 반복문 Loop

조건을 만족할 때까지 반복하는 제어문

  • while
while (조건) { 처리문; }

while (조건) {
	if (조건2) 
    	처리문;
    else
    	처리문;
}
  • for
for (초기값; 조건; 증감값) {
	처리문;
}
  • foreach: 그룹형변수 탐색에 특화된 for문
foreach (조건) {처리문;}

 

7. 함수 Function

특정 작업을 수행하고, 그 결과를 반환하는 코드 블록

함수를 사용하는 것의 장점? 중복된 코드를 줄이고, 코드의 가독성과 재사용성을 높일 수 있다.

반환형 함수이름(매개변수) {
	함수의 동작을 정의하는 코드 블록
	return값;
}
  • 반환형 Retrun Type: 함수의 return값이 가지는 데이터 타입으로, 반환형이 없으면 void를 사용한다.
  • 함수 이름 Function Name: 함수를 호출할 때 사용할 이름
  • 매개변수: Parameter: 함수가 작업을 수행할 때 사용하는 입력값
  • Return: 함수가 작업 수행을 마친 후 반환할 값
  • 인자 Argument: 함수가 호출될 때 실제로 전달되는 값으로, 인자가 함수 안에서 매개변수로 작동한다.

 

 유니티 오브젝트 흐름 (Life-cycle) 

Unity 매뉴얼: 이벤트 함수의 실행 순서

1. 초기화

  • Awake(): 씬이 로드될 때마다 게임 오브젝트가 생성되는 최초 한 번만 실행된다.
    • 게임 오브젝트의 변수 초기화
    • 컴포넌트 가져오기 및 초기화
    • 다른 게임 오브젝트에 대한 참조 설정
  • Start(): 게임 오브젝트가 활성화되는 동안 한 번만 호출되며, 초기화 작업을 수행하는 데 사용된다.

 

2. 프레임

  • Fixedupdate(): 매 물리 프레임마다 호출되며, 물리적인 연산에 사용된다. 고정된 실행 주기 (50fps)
  • Update(): 매 프레임마다 호출되며, 프레임 레이트에 따라 호출 간격이 변한다. 가변적인 실행주기 (60fps)
  • LateUpdate(): 위의 Update() 메서드에서 발생한 변화의 후처리를 하는 데 사용되며, Update() 메서드가 모두 호출된 이후에 호출된다.

 

3. 해제

  • OnDestroy(): 게임 오브젝트나 스크립트가 Destroy() 메서드에 의해 제거되기 직전에 호출되며, 필요한 정리 작업이나 특정 행동을 수행하는 데 주로 사용한다. 삭제되기 직전 실행!

 

4. 활성화

  • OnEnable(): 게임 오브젝트나 스크립트가 비활성화된 후 다시 활성화될 때마다 호출되며, 재활성화 시 수행할 작업을 지정하는 데 적합하다. 실행속도: Awake < OnEnable < Start

 

5. 비활성화

  • OnDisable(): 게임 오브젝트나 스크립트가 활성화에서 비활성화로 전환될 때마다 호출되며, 비활성화 시 수행할 작업을 지정하는 데 적합하다. 비활성화될 때, 삭제될 때

 

 유니티 게임 프로그래밍 기초 

  • Time.deltaTime: Update()함수의 프레임 호출 간격(렌더링 시간)을 계산하는 함수로, 자료형은 float형이다.

 

  • Lerp: Linear Interpolation(선형 보간), 두 점 사이의 값을 구하기 위해 양 끝 값에 따라 사이 값을 비례적으로 반환하는 방법으로, float a와 float b의 사이값을 범위가 0부터 1인 float t로 둔다. 이때, t=0이면 a와 같고, t=1이면 b와 같다.

 

  • DOTween: Do Tweening! Tweening이란 시작 시점과 종료 시점을 설정해 이미지 동작을 자연스럽게 연결하는 애니메이션 기법이다. 이 Tweening이란 또 inbetweening(동화 작업)의 줄임말이다.
    • Tweener: 애니메이션의 수행 주체, DOTween의 행동 주체
    • Tween: 각 애니메이션을 수행하는 하나의 단위
    • Sequence: Tween들을 그룹화하여 관리하고 수행하는 주체

Tweening의 개념
시작시점: 인간, 종료시점: 개

 

  • Coroutine: Co+routine, 동작 중인 함수나 메서드를 중지시키고 다시 시작할 수 있도록 하며, 순차적으로 여러 단계의 작업을 수행하는 데 사용된다.
    • 작업을 병렬로 실행하거나 지연시킬 수 있음
    • 프레임 업데이트와 분리되어 있어 게임 루프에 영향을 주지 않음
    • 게임의 다양한 상황에 대응할 수 있음
IEnumerator MyCoroutine() { 
	yield return null 
}

StartCoroutine("MyCoroutine")
StartCoroutine(MyCoroutine())

StopCoroutine("MyCoroutine")
StopAllCoroutine()

 

  • DLL: Dynamically Linked Library, 필요할 때 불러오는 라이브러리로, 만들고 나면 다른 프로그램에서도 사용할 수 있어 메모리 관리 면에서 효율적이다.

해당 포스트는 골드메탈, [유니티 C# 프로그래밍 기초. 한방에 정리하기], [유니티 게임오브젝트의 흐름], Developer, [유니티 생명주기(Lifecycle)과 이벤트 메서드], 게이머TV, [4. 유니티가 어려운 초보자를 위한 유니티 기초 강의], (2024, 9월 22일), 섹션 1. 유니티 기초 강의를 참고하여 작성하였습니다.

 

 

 

Corner Unity

Editor : 보리밥

728x90

관련글 더보기