메서드 이론

함수로 불리기도 하며 게임에서 작은 특정한 것을 하도록 만드는 코드의 블록을 실행하는 것이다.

 

수행해야하는 것

1. 메서드를 선언하고 정의한다. (이것을 하는 거야) ex) CleanYourRoom // 옷 정리하기, 쓰레기 버리기

2. 메서드를 실행하고 싶을 때 불러와야 한다. (이제 가서 실행해)

1. 메서드 선언

 

1. 반환을 요청 가능(반환 값이 있을 시 중괄호 내에 return 반환형 값; 필수)

2. 메서드를 불러올 때 필요한 매개변수를 설정할 수 있음(매개변수 있을 시 앞에 타입을 적어줌)

선언 - 메서드 선언 코드 내부에 ';' 있음

/*반환형 함수이름(파라미터)
    {
        ~해라;
    }*/
void Clean Your Room(int deadline) 
{
	// ~해라; 
}

// 반환 유형은 불려진 곳으로 돌아가고 매개변수는 불린 곳에서 인자를 받아옴
bool CleanYourRoom(int time)
{
	return false; // 반환 키워드(반환 타입이 bool타입 일 때)
}

2. 메서드 호출

호출 - 메서드 이름 뒤에 ';' 있음

// 함수명(매개변수 있을 시 값만 써줌);

CleanYourRoom();

 

그럼 Start()와 Update()는?!

유니티 내부 로직이 적절한 시기에 대신 호출해줌

Start() - Play버튼 누를 때

Update() - Start() 후 매 프레임마다 실행 됨

 

 

메서드 실습

Mover.cs

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

public class Mover : MonoBehaviour
{
    [SerializeField]
    float moveSpeed;
    void Start()
    {
        // 함수로 실행하면 가독성이 좋음
        // 문제가 생기면 작성했던 곳에서 수정하면 됨
        // 여러 곳에서 반복해서 사용할 수 있음
        PrintInstruction();
    }

    void Update()
    {
        MovePlayer();
    }

    // 반환 값 없고 매개변수 값 없음
    void PrintInstruction()
    {
        Debug.Log("welcome to the game");
        Debug.Log("Press arrow keys to move");
        Debug.Log("avoid walls");
    }

    void MovePlayer()
    {
        float xValue = Input.GetAxis("Horizontal") * Time.deltaTime * moveSpeed;
        float zValue = Input.GetAxis("Vertical") * Time.deltaTime * moveSpeed;
        transform.Translate(xValue, 0f, zValue);
    }
}

Method

 

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 장애물 코스' 카테고리의 다른 글

Score, Time.time, If, Rigidbody  (0) 2022.08.02
OnCollisionEnter(), GetComponent<>()  (0) 2022.08.02
Collision  (0) 2022.07.28
Cinemachine  (0) 2022.07.28
Time.deltaTime  (0) 2022.07.27

+ Recent posts