본문 바로가기

study/unity

[unity] #4. C# 스크립트 기초 - 배열, 함수

- 배열

: 동일한 특성을 가지며 일정한 규칙에 따라 몇몇 요소가 나열되어 있는 데이터 집합

 

new 키워드 : 스크립트에서는 만든다는 뜻에 가깝다.

배열을 만들려면 배열을 선언하고 바로 이어서 new를 이용해 배열에 필요한 크기를 지정해야 한다.

데이터타입[] 변수명 = new 데이터타입[크기]; 로 선언 및 할당해준다.

//정수 배열 선언
int[] points;

//배열 크기 지정
int[] points = new int[5];

//배열의 요소에 값을 대입할 때 간단히
int[] array = {2, 10, 5, 15, 3};

 

 

배열의 길이(요소 수)는 배열형의 변수명.Length를 써서 배열의 길이를 얻을 수 있다.

 

<배열에 포함되는 값의 평균을 구하는 스크립트>

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
	void Start(){
    	int[] points = {83, 99, 52, 93, 15};
        int sum = 0;
        
        for(int i = 0; i < points.Length; i++){
        	sum += points[i];
        }
        int average = sum / points.Length;
        Debug.Log(average);
    }
}

출력 결과

위의 문제의 평균 값은 68.4가 정답이지만 68로 출력된다.

float average = sum / points.Length;

위의 코드처럼 float형으로 선언해도 똑같이 68이 나온다.

C#에서 정수끼리 나눗셈을 하면 소수점 이하가 버려져 결과가 정수가 되기 때문이다.

소수점까지 출력하고 싶다면 float형을 곱해주면 된다.

float average = 1.0f * sum / points.Length;

 

- 함수(Method)

: 길어진 처리를 의미가 있는 처리블록으로 분해하고 이름을 붙이는 구조

함수에 값을 전달해서 계산하거나 계산 결과를 돌려받을 수 있도록 하는 역할을 한다.

함수로 건네는 값을 인수, 돌려받는 값을 반환값이라고 한다.

인수는 여러 개를 전달할 수 있지만 반환값은 한 개로 정해져 있다.

스크립트에 처음부터 있었던 Start와 Update도 함수이다.

작성한 함수는 호출해서 사용한다.

 

- 작성 방법

반환값의 데이터형 함수명(데이터형 인수, 데이터형 인수){

         메서드 처리;

         return 반환값;

}

- 호출

함수명(인수, 인수 ...);

 

<Console 창에 Hello를 출력하는 SayHello 함수>

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
	void SayHello(){ //인수와 반환값이 없는 함수
		Debug.Log("Hello");
	}

	void Start()
	{
		SayHello();
	}
}

출력 결과

 

<Console 창에 Hello + name을 출력하는 CallName 함수>

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
	void CallName(string name){ //인수가 있는 함수
		Debug.Log("Hello" + name);
	}

	void Start()
	{
		CallName("Tom");
	}
}

출력 결과

 

<인수로 변수 2개를 받아 두 변수의 합계를 반환하는 Add 함수>

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
	int Add(int a, int b){ //인수와 반환값이 있는 함수
		int c = a + b;
		return c;
	}

	void Start()
	{
		int answer;
		answer = Add(2, 3); //인수에 변수도 지정 가능
		Debug.Log(answer);
	}
}

출력 결과

 

출처 : <유니티 교과서 개정 3판> 책

'study > unity' 카테고리의 다른 글

[unity] #6. 운세 룰렛  (2) 2020.08.12
[unity] #5. C# 스크립트 기초 - 클래스, 벡터  (0) 2020.08.09
[unity] #3. 스크립트 개념  (0) 2020.08.05
[unity] #2. 유니티 기능 알아보기  (2) 2020.08.04
[unity] #1.시작  (0) 2020.08.03