※ 지금까지는 Start() 메서드 안에 모든 처리를 작성했지만, 모아둔 처리마다 이름을 붙여서 재사용 할 수 있게 할 것이다.
2.7.1 메서드
- 메서드(method) : 의미가 있는 처리 블록으로 분해하고 이름을 붙이는 구조에서 각 처리를 메서드라고 한다
- 인수 : 메서드(method)로 건네는 값
- 반환값 : 메서드(method)에서 돌려받는 값
- 인수는 여러개 건넬 수 있지만, 반환값은 1개만 받을 수 있다.
- 이 반환값을 여러개로 받고 싶다면 배열로 받아서 값을 처리하면 된다.
2.7.2 메서드를 만드는 방법
※ Add() 메서드의 예시
using System.Collections;
using System.Collections.Generic;
using UnityEngine; // 유니티가 동작하는데 필요한 기능 제공
using UnityEngine.UIElements;
public class test : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
int answer;
answer = Add(3, 4);
Debug.Log(answer);
}
int Add(int num1, int num2)
{
int sum = num1 + num2;
return sum;
}
}
- Add() 메서드를 선언하고, 어떤 값을 리턴 할지 코드 상에서 작성해줘야 한다.
- 선언되지 않은 메서드를 사용 할 수 없다.
- 메서드 호출방법 Add(숫자, 숫자) 로 사용하면 각 값이 더해져서 sum의 값이 answer에 들어가게 된다.
결과값 보기
7
2.7.3 인수도 반환값도 없는 메서드
※ Console 창에 Hello를 출력하는 메서드
using System.Collections;
using System.Collections.Generic;
using UnityEngine; // 유니티가 동작하는데 필요한 기능 제공
using UnityEngine.UIElements;
public class test : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
SayHello();
}
void SayHello()
{
Debug.Log("Hello");
}
}
- void 로 메서드를 선언하면 반환 값이 없이, 그냥 동작하고 동작이 완료되면 종료된다.
- 작성한 메서드를 호출해서 사용한다
2.7.4 인수가 있는 메서드
※ 인수를 출력하는 메서드
using System.Collections;
using System.Collections.Generic;
using UnityEngine; // 유니티가 동작하는데 필요한 기능 제공
using UnityEngine.UIElements;
public class test : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
CallName("Dawn");
}
void CallName(string name)
{
Debug.Log("Hello " + name);
}
}
결과값 보기
Hello Dawn
인수는 string으로 선언되었지만, 인수의 값을 넣지 않고 CallName()으로 호출하면, 인수값이 전달되지 않았기 때문에
오류가 발생한다.
2.7.5 인수와 반환값이 있는 메서드
※ 값을 두 개 받아 합계를 반환하는 메서드
using System.Collections;
using System.Collections.Generic;
using UnityEngine; // 유니티가 동작하는데 필요한 기능 제공
using UnityEngine.UIElements;
public class test : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Debug.Log(Add(2, 3));
}
int Add(int num1, int num2)
{
int sum;
sum = num1 + num2;
return sum;
}
}
결과값 보기
5
- 어떠한 처리를 추가적으로 하지 않기 때문에 console창에 찍기 때문에 코드 간결화를 위해서 한꺼번에 넣음
- num1 과 num2 변수에는 메서드를 호출하는 곳에서 지정한 순서대로 값이 대입
- 메서드를 실행한 후에는 메서드의 호출 부분이 반환값으로 바뀌는 형태
한번 해보기 : 문제를 하나 내 드리겠습니다. 풀어보시고, 제가 작성한 코드와 비교해보시기 바랍니다.
i. 인자 3개를 받는 메서드를 만들고, 그 메서드는 3개의 인자를 더해서 그 결과를 반환시키는 메서드
코드 보기
using System.Collections;
using System.Collections.Generic;
using UnityEngine; // 유니티가 동작하는데 필요한 기능 제공
public class test : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
int answer = 0;
answer = Add(2, 3, 5);
Debug.Log(answer);
// 결과 값 : 10
}
int Add(int num1, int num2, int num3)
{
int sum;
sum = num1 + num2 + num3;
return sum;
}
}
ii. 인자 5개를 받아 그 값의 평균을 내서 반환하는 메서드
코드 보기
using System.Collections;
using System.Collections.Generic;
using UnityEngine; // 유니티가 동작하는데 필요한 기능 제공
public class test : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
float answer = 0;
answer = NumAverge(45, 61, 73, 19, 83);
Debug.Log(answer);
// 결과 값 : 56.2
}
float NumAverge(int num1, int num2, int num3, int num4, int num5)
{
int sum = num1 + num2 + num3 + num4 + num5;
float avg = 1.0f * sum / 5;
return avg;
}
}
iii. 배열 길이 4짜리 array 변수를 선언하고, 배열의 각 값 중 10보다 큰 값만 더한 값을 반환해주는 메서드 OverTenSum()을 구현하시오
※ 기본 코드를 제공합니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine; // 유니티가 동작하는데 필요한 기능 제공
using UnityEngine.UIElements;
public class test : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
int[] array = {11, 4, 69, 1};
int result = OverTenSum(array);
Debug.Log(result);
}
int OverTenSum(int[] array)
{
}
}
코드 보기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
int[] array = {11, 4, 69, 1};
int result = OverTenSum(array);
Debug.Log(result);
// 결과값 : 80
}
int OverTenSum(int[] array)
{
int sum = 0;
for (int i = 0; i < array.Length; i++)
{
if (array[i] >= 10)
{
sum += array[i];
}
}
return sum;
}
}
'개발 > 유니티(UNITY)' 카테고리의 다른 글
2.9 Vector 클래스 사용하기 (0) | 2023.09.09 |
---|---|
2.8 클래스 만들기 (0) | 2023.09.08 |
2.6 배열 사용하기 (0) | 2023.09.08 |
2.5.5 for 문으로 반복하기 (0) | 2023.09.07 |
2.5 제어문 사용하기 (0) | 2023.09.07 |