[펌] 언리얼 스크립트 함수문법과 유용한 함수편

클래스 글로벌 변수

- var를 이용해서 선언

 

함수안의 변수

- 로컬 변수는 local을 이용해서 선언한다.

- 클래스 변수는 var를 이용해서 선언한다.

 

함수

- 특정 키워드인 function을 써줘서 선언한다.

- 어떤 특정한 반복되는 일을 하나를 묶음으로 만들어주고 필요할 때 마다 사용할 수 있는

   어떤 하나의 일을 묶게 된다.

 

function MyFunction()

{

     // 어떤 일을 넣기

}

 

- 함수는 파라미터 값들을 가질 수 있다.

function int Addition( int A, int B )

{

   return A + B;

}

 

Out 파라미터

- 일반적인 파라미터가 거기에 입력된 변수가 있을 때 그 변수의 복사값을 넘긴다면 Out으로 사용된 경우에는 그 실제 변수가 넘어간다.

 

function Addition( int A, int B, OUT int C )

{

   C = A + B;

}

 

function TestFunction()

{

   local int i, j, Result;

   i = 2;

   j = 3;

   Addition( i, j, Result );

}

 

Optional

- 디폴트 값이 있어 함수가 파라미터를 가지고 있더라도 따로 값을 입력하지 않아도 그 함수를 호출 가능하다.

 

function Addition( Optional int A = 2, Optional int B = 3, OUT int C )

{

C = A + B;

}

 

function TestFunction()

{

local int Result;

Result = Addition( i, j, Result );

}

 

디폴트값이 지정되어 있을 경우 

Add( , j ) 이런식으로 비워놓아도 된다...

 

Coerce

- 입력된 내용을 강제로 파라미터를 선언할 때 사용한 변수 타입으로 형변환 시키는 것을 의미한다.

 

언리얼 스크립트 함수 재정의

- 함수는 또 그 함수가 선언된 클래스의 자식 클래스에서 재정의 가능.

- 자식 클래스에서 부모에서 선언된 함수의 내용을 변경하거나 추가한다.

- 보통 재정의는 같은 함수를 통해서 불려지지만 그 자식 클래스들이 서로 다른 의미나 정의를 가지고 있을 때 분리하는 방법에 사용한다.

 

특정 부모의 함수를 호출하고 싶을 때는

Super(Grandparent).MyFuction();

으로 접근해서 호출해 줄 수 있다.

 

언리얼 스크립트 함수 형식 지정자들...

- 게임중에 콘솔창을 통해서 불려 질 수 있는 함수를 의미한다.

- 게임 중에 콘솔창에 이 함수의 이름과 만약 파라미터가 있다면 그 파라미터 값도 입력하면 그 내용이 전달되어서 실행된다.

 

exec function Additive( int A, int B )

{

   log( A@"+"@B@"="@A+B);

}

1. 게임 실행중 Tab키를 눌러서 콘솔창을 연다.

2. Additive 3 5를 입력하고 엔터를 입력하면 이 함수가 호출된다.

3. 로그창에 3 + 5 = 8을 표시한다.

 

Protected

- 함수가 선언된 클래스 안에서나 그 클래스의 자식 클래스들 안에서만 호출될 수 있다.

- 다른 클래스에서 호출해서 사용할 수가 없다.

 

Private

- Protected와 비슷하지만 이 형식지정자를 가진 함수는 함수가 선언된 클래스에서만 호출될 수 있다.

- 그 클래스의 자식 클래스들에서도 이 함수는 호출할 수 없으며, 오직 그 함수가 선언된 클래스에서만 호출할 수 있다.

- 어떤 함수가 오직 그 클래스안에서만 어떤 목적으로 사용되고 다른 곳에서는 절대 불리지 않도록 보호하고 싶을 때 사용한다.

 

Singular

- 이 형식 지정자가 붙어 있는 함수는 재귀 호출될 수 없는 함수를 의미한다.

- 함수가 어떤 목적에 의해서 자기 자신을 함수내에서 호출할 수 있는데 이 형식지정자로 선언된 함수는 그것을 허용하지 않는다.

 

Latent

- 게임이 진행되는 동안 백그라운드에서 실행될 수 있는 함수를 나타낼 때 사용한다.

- native와 같이 선언된 함수에만 사용할 수 있다.

- 이 지정자가 선언된 함수는 state안에서만 호출될 수 있다.

 

Final

- 자식 클래스 안에서 함수가 재정의되는 것을 막는 데 사용한다.

- 즉, 그 자식 클래스에서 함수가 동작되는 내용을 바꿀 수 없게 된다.

- 어떤 함수를 선언하고 어떻게 동작하도록 정의해 두었을 때 그 내용이 자식 클래스들에 의해서 바뀌지 않기를 원할 때 사용한다.

 

Iterator

- Actor들 리스트를 전부 돌면서 어떤 작업을 하는 반복문 명령어인 Foreach에서 사용될 수 있는 함수임을 나타낸다.

 

Simulated

- 클라이언트에서 동작하는 함수

- 클라이언트에서만 동작되기 위해서는 함수를 소유하고 있는 Actor가 ROLE_SimulatedProxy나 ROLE_AutonomousProxy여야 한다.

 

Client

- 이 형식 지정자를 가진 함수는 실행되기 위해서 클라이언트로 보내질 수 있는 함수를 의미한다.

 

Server

- 이 형식 지정자를 가진 함수는 실행되기 위해서 서버로 보내질 수 있는 함수를 의미한다.

 

Reliable

- 네트워크를 통한 서버와 클라이언트 사이의 연결과 replication을 다루는 방법을 정의한다.

- reliable은 꼭 replicate된다는 것을 보장하는 것을 의미한다.

 

Unreliable

- 네트워크를 통한 서버와 클라이언트 사이의 연결과 replication을 다루는 방법을 정의한다.

- unreliable은 replicate된 것이 네트워크 상태나 대역폭 제한등 여러가지 조건에 의해서 replicate되지 못하고 사라질 수 있다는 것을 의미한다.

 

Static

- 다른 클래스에서 이 함수를 호출할 때 이 클래스로 생성된 오브젝트가 없더라도 그 클래스 자체를 가지고 호출할 수 있다는 것을 의미한다.

- 그 클래스 내부에 static이 아닌 함수들을 호출할 수 없으며 또한 그 클래스의 글로벌 변수들을 사용할 수 없다.

 

Event

- native코드에서 호출될 수 있는 함수를 만들자면, 그 함수가 하는 내용은 native에서가 아니라 언리얼 스크립트 내부에서 정의한다.

- 언리얼 스크립트 내부에서 정의된 함수를 native코드에서 호출할 필요가 있을 때 사용한다.

 

Native

- 언리얼 스크리브에는 함수의 선언만이 있고 실제적인 함수의 내용은 native코드에서 선언한다는 의미이다.

 

Const

- 이 형식의 지정자는 native형식 지정자와 같이만 사용할 수 있고, 독립적으로 사용될 수 없다.

- C++헤더에 함수가 const선언되도록 해준다.

 

Noexport

- native형식으로 지정된 함수가 native코드를 위해서 자동으로 선언되는 것을 방지한다.

 

수학관련 함수

integer관련 

- function int Rand( int Max )

  Max로 정한 한도내에서 랜덤값을 반환한다.

- function int Min( int A, int B )

   A와 B중 작은 수를 반환.

- function int Max( int A, int B )

   A와 B중 큰 수를 반환

- function int Clamp( int V, int A, int B )

   입력된 값을 A와 B사이의 값으로 제한한다.

- function string ToHex( int A )

   입력된 A값을 16진수로 변환한 문자열로 반환한다.

 

function float Lerp( float A, float B, float Alpha )

- A와 B사이의 값에서 Alpha값만큼의 값을 반환한다.

function float Abs( float A )

- 입력된 A의 절대값을 반환한다.

function int Round( float A )

- 입력된 A의 반올림을 한다.

function int FFloor( float A )

- 입력된 값 A에 내림을 한다.

function int FCeli( float A )

- 입력된 값 A에 올림을 한다.

 

function float VSize( vector A )

- VSize는 입력된 벡터 A의 크기값을 구한다.

function vector Normal( vector A )

- 입력된 벡터 A의 Normal값을 구한다. 

 

출처클릭