이 글은 PC 버전 TISTORY에 최적화 되어있습니다.
함수의 기능
1. 코드의 묶음. 여러개의 코드가 하나의 일을 처리할 경우 이 명령어들을 묶어서 함수로 만들어 사용하면 편리합니다. 어떤 명령의 집합을 반복적으로 사용할 때 코드 재활용 측면에서 코드를 계속 복사해서 붙여넣을 수 있지만, 함수로 만들어 호출해주는 것이 훨씬 좋은 방법입니다.2. 실행하면 내부적으로 순서대로 명령을 처리해 얻은 결과 값을 반환하는 용도로도 사용합니다.3. 어떤 값을 입력하면 이 값을 받아 내부에서 어떤 계산을 하여 그 결과값을 반환하는 용도로 사용합니다.
함수의 종류
1. 반환하지 않고 명령들만 실행하는 함수
// Use this for initialization
void Start ()
{
print ("Reload Bullet");
print ("Take Aim");
print ("Shoot");
print ("Reload Bullet");
print ("Take Aim");
print ("Shoot");
}
위와 같이 장전 - 조준 - 격발의 동작을 2번 진행하는 것을 볼 수 있다. 만약 100발을 쏴야한다면 100번을 저 명령어를 써야할까요?
// Use this for initialization
void Start ()
{
Shooting();
Shooting();
}
void Shooting() {
print ("Reload Bullet");
print ("Take Aim");
print ("Shoot");
}
반환 값이 없는 함수의 타입에는 void를 붙여줍니다. 저렇게 코드로 묶인 함수들을 호출해주기만한다면 코드의 재사용성은 엄청나게 높아지는 것을 알 수 있습니다.
2. 반환 값이 있는 함수 (& 입력 값이 있을 수 있다.)
private int myHp = 100;
private int currentHp;
// Use this for initialization
void Start ()
{
currentHp = RemainHp(10);
currentHp = RemainHp(20);
print (currentHp);
}
int RemainHp(int damagedHp) {
myHp = myHp - damagedHp;
return myHp;
}
위와 같이 입력 값으로 입은 데미지를 받고, myHp에서 입은 데미지를 감하여 반환하는 함수를 만들 수 있습니다. 함수의 타입은 반환할 타입을 써주고, 리턴은 꼭 해줘야하는 것을 기억해주세요.
결과는 위와 같이 나오게 됩니다.
유니티 내장 함수
유니티에는 위와 같이 사용자가 직접 정의해 사용하는 커스터마이징 함수 외에도 유니티에서 제공하는 유니티 내장 함수가 있습니다. 앞서 보았던 MonoBehaviour 클래스에 이미 정의되어 있는 함수들을 말합니다. 이 함수들을 어떻게 사용할 수 있는지는 클래스와 상속 파트에서 다루도록 하고, 이번에는 어떤 함수가 있고, 어떻게 다뤄야하는지를 배워보도록 하겠습니다. 주의해야할 점은 내장 함수 사용시 대, 소문자를 정확히 적어야지 그렇지 않으면 유니티에서 커스터마이징 함수로 간주하여 헤매게 되는 경우가 생길 수 있습니다. 유니티에서 가장 많이 사용하는 Mouse 관련 함수들에 대해 배워보도록 하겠습니다.
OnMouseEnter( ) : 마우스 커서가 게임 오브젝트의 충돌체 안으로 들어갈 때 자동 실행되는 함수OnMouseExit( ) : 마우스 커서가 게임 오브젝트의 충돌체 안에서 바깥으로 나갈 때 자동 실행OnMouseDown( ) : 충돌체가 있는 오브젝트에 마우스 커서를 갖다 대고 왼쪽 버튼을 누르는 순간 자동 실행OnMouseUp( ) : 충돌체가 있는 오브젝트에 마우스 커서를 갖다 대고 왼쪽 버튼을 눌렀다 떼는 순간 자동 실행
1. 마우스 테스트라는 스크립트를 작성합니다.
2. 오브젝트에 스크립트를 붙여줍니다.
3. OnMouseEnter 유니티 함수는 오브젝트에 마우스가 올라가면 자동 호출 됩니다.
4. OnMouseExit는 마우스가 올라갔다가 나갈 때 자동 호출 됩니다.
5. OnMouseDown는 오브젝트 위에서 마우스를 눌렀을 때 자동 호출 됩니다.
6. OnMouseUp은 마우스가 눌렸다가 떨어질 때 자동 호출 됩니다.
※ 주의 ※ Mouse 관련 함수는 오브젝트가 충돌체여야 합니다. 큐브는 생성 시 자동으로 Box Collider가 있습니다.
참고 사이트
반응형
'Frontend > Unity' 카테고리의 다른 글
[유니티 C# 기초 강의] 7. 배열 (3) | 2016.07.25 |
---|---|
[유니티 C# 기초 강의] 6. 조건문 (3) | 2016.07.24 |
[유니티 C# 기초 강의] 5. 열거형 (12) | 2016.07.24 |
[유니티 C# 기초 강의] 4. 주석 (0) | 2016.07.24 |
[유니티 C# 기초 강의] 2. 변수 (20) | 2016.07.23 |
[유니티 C# 기초 강의] 1. 스크립트 생성 (11) | 2016.07.22 |