유니티-기초2

아따맘마·2020년 12월 18일
0

Unity

목록 보기
2/5

Life Cycle

1. 초기화

Awake()

    private void Awake()
    {
		
    }

Awake 함수는 게임 오브젝트가 장면 안에 생성할때, 최초로 한번만 실행한다.

Start()

    void Start()
    {

    }

업데이트 시작 직전, 최초 실행

2. 물리연산

FixedUpdate()

    void FixedUpdate()
    {

    }

물리 연산을 하기 전에 실행되는 업데이트 함수. 업데이트 함수는 1초에 여러번 작동(대략 50번).
고정된 실행 주기로 CPU를 많이 사용한다.

3. 게임로직

Update()

    void Update()
    {

    }

게임 로직을 업데이트하는 함수. 물리연산 로직을 제외한 나머지 주기적으로 변하는 로직을 넣어준다. 환경에 따라 실행 주기가 떨어질 수도 있다.

LateUpdate()

    void LateUpdate()
    {

    }

모든 업데이트 영역의 로직이 끝난 후 마지막으로 호출되는 함수. 케릭터를 따라가는 카메라, 로직의 후처리 등을 담당.

4. 해체

OnDestroy()

    void OnDestroy()
    {

    }

오브젝트가 삭제되기 직전에 무언가를 남기고 삭제할 때.

5. 활성화/비활성화

OnEnable()

    void OnEnable()
    {

    }

초기화와 물리 연산 사이에 존재하는 함수. 게임 오브젝트가 활성화 되었을 때 실행

OnDisable()

    void OnDisable()
    {

    }

모든 업데이트가 끝난 시점에 존재. 게임 오브젝트가 비활성화 되었을 때 실행

키보드로 입력받기

유니티에서 키보드로 입력받을 때 사용하는 Built-In 클래스가 있다. Input 클래스를 사용하면 된다.

anyKeyDown

	Input.anyKeyDown

유니티 게임을 실행하고 나서 키보드나 마우스 아무 입력을 최초로 받을 때 이 파라미터(?)가 호출된다.
bool값을 갖는다.

anyKey

	Input.anyKey

anyKeyDown은 한번 누르면 적용되는데 비해 anyKey는 키를 누르고 있으면 적용된다.

GetKey

키보드 버튼을 입력을 받으면 True 상태로!!

GetKeyDown()

        if (Input.GetKeyDown(KeyCode.Return) 
        // Return은 엔터를 의미, KeypadEnter은 숫자패드의 엔터
        // ESC는 Escape
            Debug.Log("아이템을 구입하였습니다.");

키보드 버튼을 누를 때 True

GetKey()

        if (Input.GetKey(KeyCode.LeftArrow)
            Debug.Log("왼쪽으로 이동 중.");

키보드 버튼을 누르고 있으면 True

GetKeyUp()

        if (Input.GetKeyUp(KeyCode.RightArrow)
            Debug.Log("오른쪽으로 이동을 멈추었습니다.");

키보드 버튼을 오른쪽에서 누르고 있는 상태에서 떼면 True

GetMouseButton

마우스 버튼을 입력받으면 True!! 작동원리는 키보드와 같다. 매개변수로는 숫자로 받는다.
0은 마우스 왼쪽버튼, 1은 마우스 오른쪽 버튼을 의미

GetMouseButtonDown()

        if (Input.GetMouseButtonDown(0))
            Debug.Log("미사일 발사!");

마우스 버튼을 누를 때 True

GetMouseButton()

        if (Input.GetMouseButton(0))
            Debug.Log("미사일 모으는중...");

마우스 버튼을 누르고 있는 중일 때 True

GetMouseButtonUp()

        if (Input.GetMouseButtonUp(0))
            Debug.Log("슈퍼 미사일 발사!!");

마우스 버튼에서 뗄 때 True

GetButton

마우스랑 키보드 외에도 Unity에서 제공해주는 Button이 있다. 이를 어디서 확인하냐면~~

Unity 상단에 Edit에서 Project Setting에 들어가보면,

Input Manager이 있을 것이다. 클릭해보면 다양한 버튼이 이미 Setting이 되어 있는데 이를 활용할 수 있다.

GetButtonDown()

        if (Input.GetButtonDown("Jump"))
            Debug.Log("점프!");

Input Manager에 들어가보면 여러 키가 나열되어 있는데 Horizontal, Vertical, Jump ...등 우리가 평소에 게임하면서 자주 사용하는 키들이다. 이들을 C#에서 사용하려면 GetButton함수에서 "버튼이름"을 파라미터로 입력해줌으로써 사용할 수 있다.
똑같이 Down은 눌렀을때 True

GetButton()

        if (Input.GetButton("Jump"))
            Debug.Log("점프를 모으는중...");

GetButton은 누르고 있을 때 True

GetButtonUp()

        if (Input.GetButtonUp("Jump"))
            Debug.Log("슈퍼 점프!!");

Up은 손을 떼어냈을 때 True이다.

profile
늦게 출발했지만 꾸준히 달려서 도착지점에 무사히 도달하자

0개의 댓글