골드메탈 강의 중



게임은 연극 같다
알만툴에서도 캐릭터를 액터 라고 표현함

game 게임 - scene 장면 - object 오브젝트 - script 스크립트


배우와 소품 = 오브젝트
대본 = 스크립트

 

+

 

 

0 과 1 의 나열 java, Csharp 같은 언어 ai 챗봇 과 영어 같은 자연어

 

컴퓨터가 알아들을 수 있도록

언어를 이렇게 중간중간 해석하는 게 프로그래밍임

+

Csharp 에서는 마침표 대신 세미 콜론 땀표시로
문장을 마무리 한다

 

+

 

 

 

콘솔 디버그 창에서 글자 띄우는 법

 

+

 

 


변수 : 
특정한 데이터를 저장하는 상자
내가 원하는대로 변하는 숫자


변수엔 4개 종류가 있다
int 
float
string
bool

 

int  123  단순한 숫자
float  15.5f   소수점까지 포함한 숫자형 데이터임
끝엔 알파벳f 를 꼭 붙임
string  "문자" 따옴표 속에 글자를 입력함
bool true true 또는 false  둘 중 하나를 결정하는 데이터




+

 

플레이어레벨 변수를 콘솔디버그 창에서 알고 싶을 땐

Debug.Log("플레이어의 레벨은?");
Debug.Log(level);

 

+

 

 

우리는 1 2 3 ... 1 부터 시작하지만

 

프로그래밍에선 0 1 2 ... 0 부터 시작함

 

+

 

 

이런식으로 스크립트 내에서

사칙 연산 가능함

 

%는 퍼센테이지가 아니라, 

나눗셈을 하고 남은 나머지 임.

 

이는 주로 다음 레벨까지의 경험치 를 표현할 때 씀

 

+

 

 

타이틀 칭호 표현법

 

중간 따옴표는 공백을 의

 

+

 

 

level 변수가 10 이상일 때

엔드튜토리얼의 값은 트루

 

디버그 로그에 true 로 출력

 

 

 

+

 

 

부등호

> 초과

< 미만

>= 이상

<= 이하

 

+

 

 

체력도 50이하, 마나도 20 이하면 배드컨디션임

 

bool 의 &&은 양쪽 둘다 true 값일 때를 의미함

 

|| 는 둘 중 하나만 true 값일 때를 의미

 

+

 

 

 

? A : B 

는 트루가 A 펄스가 B 로 연되게 함

 

+

 

int float string bool new List 등 

이런 고유 스크립트 용어는 내가 변수로 지정할 수 없으니 주의할 것

 

+

 

        // 리스트 선언 및 초기화
        List<string> names = new List<string>();

        // 리스트에 요소 추가
        names.Add("Alice");
        names.Add("Bob");
        names.Add("Charlie");

        // 리스트의 크기 확인
        Debug.Log("List Count: " + names.Count); 
        // Output: List Count: 3

        // 리스트에서 요소 접근
        Debug.Log("First Name: " + names[0]); 
        // Output: First Name: Alice

        // 리스트의 요소 제거
        names.Remove("Bob");

        // 변경된 리스트 출력
        foreach (string name in names)
        {
            Debug.Log(name);
        }
        // Output:
        // Alice
        // Charlie

 

List 는 유연하게 변화되는 상자 

 

  • Add(): 리스트에 요소를 추가합니다.
  • Remove(): 리스트에서 특정 요소를 제거합니다.
  • Count: 리스트의 요소 개수를 반환합니다.
  • Contains(): 리스트에 특정 요소가 있는지 확인합니다.
  • Clear(): 리스트의 모든 요소를 제거합니다.

 

파티 멤버나 인벤토리에 대해 쓰임

 

+

 

 

if 는 true 일 때만 중괄호 안의 로직 실행함

 

 

 


else 는 앞의 if 조건이 아닐 때 실행

 

else 값이 아무것도 없으면 else 는 통째로 빼도 무관함

 

+

 

true false 는 두 가지 값이다

나는 세 가지 값을 따지고 싶다

 

그러면 switch 를 이용한다

 

switch (해당변수)

case 값1 :

break;

case 값2 :

break;

case 값3 :

break;

default :

break;

 

이런식으로 쓴다

 

해당 변수의 값이 1일 땐 무표정이고

해당 변수의 값이 2일 땐 휘청거리고

해당 변수의 값이 3일 땐 누워있고

해당 변수의 값이 다 해당 안될 땐 "알 수 없는 상태입니다" 메시지 출력

이런걸 표현할 때 씀

 

+

 

 

위 사진속 슬라임, 사막뱀 처럼

같은 로직을 저렇게 붙여 써도 된다

 

슬라임이 나와도 "소형 몬스터가 출현!"

사막뱀이 나와도 "소형 몬스터가 출현!"

 

+

 

 

반복문
조건에 만족하면 로직을 반복하는 문구

while (조건)
조건이 트루일 때 로직을 반복 실행
반복은 break; 쓰면 멈춤

 

 

+

 

for (연산할 변수 ; 조건 ; 연산)

for는 변수를 연산하면서 로직을 반복실행함

 

예를 들어 붕대로 체력을 +1 씩 회복. 체력은 최대 +10까지 치료한다던가..

 

+

 



foreach : for의 그룹형 변수 탐색에 용이함

 

이 지역에 남은 몬스터들을 알려줘 할 때 라든가..

 

 

+

 

 

맨 앞쪽에 변수를 설정하는 걸 전역변수 라고 하는데,

이러면 아래 스크립트 문구 속 어느곳에서도 참조 가능하게 됨

 

+

 

 

함수 (메서드)

기능을 편리하게 사용하도록 구성된 영역
레시피 같은 것

start( )
update( )
같은 것도 함수임

return 값을 반환하는 것. 적용하는 것.

void ( ) 반환할 것이 없다는 의미


 함수는 아직 잘 모르겠음

 

+

 

class : 하나의 사물과 대응하는 로직

유니티에선 하나의 파일은 하나의 클래스 가 담당하게 해놓음

 

 


인스턴스 : 

미리 만들어 놓은 클래스를 변수 초기화해서 실체화

 

다른 스크립트 파일에서 저장된 값을

지금 스크립트 파일로 불러오는 개념

 

 



외부 스크립트에서도 쓸 수 있게하려면
private 가 아니라 public 으로 해 놔야 함

private는 빈칸으로 생략되어 표기되기도 함

 

 

타 스크립트에서 해당 값을 public 으로 바꿨더니 비주얼 스크립트 자동완성에 생긴다

 

 

 

+

 

MonoBehaviour 는 유니티의 기본 내장 템플릿임

 

이것저것 구현할 수 있게 만든 디폴트 스크립트임

 

유니티 공식에서 미리 정해놓은 로직은 다음과 같음

 

Start 게임 오브젝트가 존재하기 시작할 때 호출
Update 프레임마다 호출
FixedUpdate 물리 타임스텝마다 호출
OnBecameVisible, OnBecameInvisible 게임 오브젝트 렌더러가 카메라의 뷰에 들어오거나 나갈 때 호출
OnCollisionEnter, OnTriggerEnter 물리 충돌 또는 트리거가 발생할 때 호출
OnDestroy 게임 오브젝트가 파괴될 때 호출

 

 

 

수명 주기 함수 호출 순서

 

 

쓰임새 예시 :

FixedUpdate ( ) 로 썼더니 흔들림 버그가 있다면
LateUpdate ( ) 로 바꿔본다

 

 

반응형
Posted by 이름이 익명
: