개발 공부

유니티 강의 추천, 처음 유니티 시작할 때 좋은 강의, 유데미 강의 후기 The Ultimate Guide to Game Development with Unity (Official)

그저 그 하루 2022. 10. 2. 23:03
반응형

드디어 유데미 강의 하나를 마무리 지었다.

내가 처음으로 들은 유데미 유니티 강의는

The Ultimate Guide to Game Development with Unity (Official)

 

https://www.udemy.com/course/the-ultimate-guide-to-game-development-with-unity/

 

The Ultimate Guide to Unity Games Development

Created in partnership with Unity Technologies: learn C# by developing 2D & 3D games with this comprehensive guide

www.udemy.com

우선 처음 강의를 고를 때는 생소한 내용이기 때문에 친근한 영어 발음을 골랐다.

그리고 unity official 이라는 것이 뭔가 끌려서 골랐다.

 

결론적으로는 나쁘지 않은 강의였다.

좋은 강의였다.

 

맨 처음 인도출신 강사의 강의를 들으려했는데 발음이 너무 특이해서

이해하는데 불편해서 바꿨는데 잘 바꾼 것 같다.

 

https://museumhyun.tistory.com/555

 

인프런 루키스 C# 유니티 강의 1 후기

https://museumhyun.tistory.com/554 지난 번에 커리큘럼에 대한 고민을 올렸고 드디어 강의 하나를 마무리하며 후기를 남길 수 있게 되었다. https://www.inflearn.com/roadmaps/355 MMORPG 게임 개발, 켠김에 끝..

museumhyun.tistory.com

추후에 올라오겠지만 나는 베이스는 인프런 루키스 강의와

유튜브 골드메탈 강의로 C# 에 대한 이해도는 어느 정도 있는 편이었다.

 

강의의 특징을 말하자면

대부분의 process를 일부를 가르쳐주고

challenge를 통해서 자신의 직접 코딩을 해보도록 하는 것이었다.

 

아무래도 한 단계 한 단계 나눠서 챌린지를 시도하고

단계별로 이루어져 있었기 때문에

challenge를 시도하는 맛이 났고

 

막혔을 떄 어떻게 인터넷을 이용해서 해결하는지도 알려주기 때문에

어느샌가 스스로 코딩을 하는 자신의 모습에 뽕이 차오른다.

 

프로젝트는 3개로 나뉘 어진다.

 

첫 번째 프로젝트는

갤럭시 슈터이다.

2D 슈팅 게임으로

transform과 prefabs 그리고 instantiate scene Manager 를 중점적으로 배운다.

대략 이런 식의 게임이다.

메인화면에서 시작해서 게임화면으로 넘어가고 solo 와 co-op을 선택할 수 있다.

생각보다 Scene Management는 간단했다.

 

코드리뷰

 

주요하게 기억남는 것은 private void OnTriggerEnter2D(Collider2D other)

2020 버전에서는 왜인지 모르겠는데 other.tag가 안되고, other.GameObject.tag였나 조금 복잡해졌다.

코루틴에서도 배운다.


    IEnumerator SpeedUpActivePowerDownROutine()
    {      yield return new WaitForSeconds(speed_duration);
        speedUpActive = false;
        _speed /= _speedMultiplier;    }

 코루틴 예시

 

 

다음은 2.5D 플랫폼으로 넘어가기 전 간단한 프로젝트 이다.

3D 기반이기 때문에 OnTriggerEnter 를 쓰고

바닥이 움직이는 것을


    private void OnTriggerEnter(Collider other)
    {
       if(other.tag == "Player")
        {
            other.transform.parent = this.transform;
        }
    }

상속을 통해 구현한다.

3번 째 프로젝트는  3D 플랫폼 총게임이다.

총의 타격을 나타내는 법을 알려준다.

그리고 일인칭 시점의 FPS의 기초를 알려주는데

    void Shoot()
    {  _muzzleFlash.SetActive(true);
        currentAmmo--;
        _uiManager.UpdateAmmo(currentAmmo);

        if (_weaponSound.isPlaying == false)
        {            _weaponSound.Play();        }

        Ray rayOrigin = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0));

        RaycastHit hitinfo;
        if (Physics.Raycast(rayOrigin, out hitinfo))
        {          g.Log("Hit: " + hitinfo.transform.name);
            GameObject hitMarker = Instantiate(_hitmarkerprefab, hitinfo.point, Quaternion.LookRotation(hitinfo.normal)) as GameObject;
            Destroy(hitMarker, 1f);
        }
    }

Raycast를 통해서 시연한다.

 

솔직히 기억에 다 남지는 않는데 코딩을 다시 하라고 하면

충분히 유니티와 구글링을 통해 다시 할 수 있는 기초를 쌓아주고

자신감을 올려준다. 조금 막힐 뿐 언제가는 다 코딩을 하게 될 것이라는 자신감이 생긴 강의이다.

 

단점이라하면 조금 오래돼서 마지막 저 3D FPS는 오류가 많이 생긴다.

GUI 를 지워줘야 하고, 나중의 PostProcessing은 오류 떄문에 그냥 pass했다.

그리고 마지막 세션은 2017 구버전 용이라서 딱히 볼 필요가 없는 정도?

 

유니티 유데미 강의 처음으로 좋은 것 같다.

 

현재는

https://www.udemy.com/course/unitycourse2/

 

Video Game Development Using Unity: Code Games with C#

Design & Develop Video Games. Learn C# in Unity Engine. Code Your first 3D Unity games for web, Mac & PC.

www.udemy.com

 

이 것을 듣고 있는데 이전 강의 덕분인지 좀 더 수월하게 듣고 있다.

완전 기초라면 (C#도 안 해봤다면 이 강의로 시작하는 것을 추천드린다.)

 

강의를 하면서 오류를 겪었던 것을 여기다 적어 놓는다.

혹시나 도움이 될지도

 

#203 번 강의 오류

using UnityEngine.UI 를 해야하며

GUIText 가 아닌 Text를 써야함

포기하지 말기!

#209 강의 실수

auto sync transforms 를 켜야 제대로 된다.

반응형