메서드 이론
함수로 불리기도 하며 게임에서 작은 특정한 것을 하도록 만드는 코드의 블록을 실행하는 것이다.
수행해야하는 것
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);
}
}
'유데미 강의 > 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 |