728x90
반응형

유니티 72

레트로의 유니티 게임 프로그래밍 에센스 / 이제민 [책리뷰]

저자: 이제민 #책소개 독자분들로부터 수많은 찬사를 받았던 유니티 대표 도서 『소문난 명강의:레트로의 유니티 게임 프로그래밍 에센스』가 개정판으로 돌아왔습니다! 이 책은 기본을 빠르게 익히고 나서 게임을 직접 만들며 필요한 기능을 알아가는 입문 + 활용서로서 여러분의 시간을 아껴줍니다. C#을 몰라도, 유니티 엔진을 몰라도 게임을 만들 수 있습니다. C# 입문 + 유니티 에디터 + 실전 게임 개발을 한 권으로 전달하니까요. 또한 아주 낮은 눈높이로 설명하고 차츰차츰 높은 난도의 게임을 완성해나가기 때문에 초보자가 책을 완독하는 데 무리가 없습니다. 이 책에서 제공하는 4가지 게임을 만들다 보면 유니티로 게임을 개발하는 데 필요한 실무 능력을 제대로 갖추게 될 겁니다. 라고 YES24가 소개하더이다. # ..

리뷰/IT 2022.02.26

게임 오브젝트의 2가지 충돌, OnTriggerXXX, OnCollisionXXX [Unity]

유니티에서는 게임 오브젝트의 충돌의 종류에는 일반적으로 2가지가 있다. 충돌 종류에 따라 실행되는 콜백함수가 다르다. 일반적으로 최초의 충돌이 일어났을 때는 OnTriggerEnter, OnCollisionEnter 둘 중 하나의 함수가 실행될 것이다. (충돌 이벤트 메서드(함수)) ** 이 함수가 메시지를 받았기 때문에 실행되는 것인데..? 한 번 알아보자 일반적으로 Start()나 Update() 메서드가 자동으로 실행되는 이유는 Start, Update 메시지를 받아서 해당 함수를 실행하기 때문이다. 즉, 충돌 메시지에 대응하려면 충돌 메시지와 같은 이름으로 메서드를 작성하면 된다는 말이다. 하지만 일반적으로 충돌 메시지에는 메서드 이름뿐만 아니라 충돌한 오브젝트에 대한 정보도 같이 들어간다. A와..

Unity에게 MonoBehaviour란..? [Unity]

유니티에서 New Sciript로 뭐만 만들면 항상 기본적으로 상속되는 클래스 중 하나인데 뭐하는 애일까?? 알아보자 MonoBehaviour 클래스는 유니티에서 미리 만들어져서 제공되며 컴포넌트에 필요한 기본 기능을 제공한다. 줄여서 말하자면 MonoBehaviour에는 컴포넌트에 필요한 필수 기능들이 들어가있다. 다시 말하면 MonoBehaviour를 상속받아야만 컴포넌트 기능을 쓸 수 있는 것이다. **유니티의 모든 컴포넌트는 MonoBehaviour를 상속한다. 컴포넌트를 이해하기 위해 컴포넌트 패턴이 어떻게 작동하는 지를 알아보자. 컴포넌트들은 서로 관심이 없다. -> 어떤 컴포넌트는 다른 컴포넌트에 의해서 "의도하고 찾아내기"전 까지 알 수가 없다. 마찬가지로 유니티 엔진에서도 해당 컴포넌트가..

Task, Task<TResult> 클래스 , 비동기 프로그래밍 [Unity]

일반적으로 System.Threading.Tasks 네임스페이스 안에 2가지 클래스가 대표적으로 들어있는데 1. Task -> 비동기 작업을 나타냄 2. Task -> 값을 반환할 수 있는 비동기 작업 위 2개의 클래스들의 역할은 간단하게 말하자면 쓰레드풀로부터 쓰레드를 가져와 비동기 작업을 실행한다. ** Task 관련 클래스들과 Parallel 클래스들을 합쳐 Task Parallel Library(TPL)이라 부르는데 기본적으로 다중 CPU 병렬 처리를 염두해서 만들었다. ???뭔지 모르겠다고?? 알아보자 먼저 1번 Task부터 살펴보자 Task클래스 사용을 위해 흔히 사용되는 방법은 두 가지가 있다. 첫번째로 Task.Factory.StartNew()를 사용하여 실행하고자 하는 "메서드에 대한 델..

UniRx, Reactive Extension for Unity - 개념

UniRx가 무엇이길래 요즘에 엄청 많이쓰나?? 알아보자 무엇이냐?? UGUI, GameObject 등의 유니티의 시스템으로도 쉽게 Reactive Programming 의 사용을 가능하게 한다. 즉, 비동기적 처리를 더 효율적으로 하기 위한 도구 중 하나라는 말이다. 기존에는 그렇다면 비동기처리 도구가 없었느냐? 있다면 기존의 것은 뭐가 안좋은데?? 없었던 것은 아니었다. 닷넷에는 .NET Rx이라는 것이 있었다. 하지만 Unity에 최적화된 것은 아니었다. 즉, UniRx는 Unity C#에 최적화되어 만들어져있다. 때문에 Unity 개발에 유용한 기능이나 오퍼레이터가 추가적으로 구현되어 있다. 게다가 ReactiveProperty 등이 추가되어 있다. 그래서 UniRx가 기존의 닷넷에서 쓰던 Rx보..

Camera, 카메라에 대한 것들 [Unity]

카메라에 대해 한 번 모든 것들을 정리해보려고 노력 중이다. 알아보자 1. Perspective vs Isometric(Orthographic) **사실 뒤에 나오는 Projection Transform에서 다시 설명한다. 여기 gizmo가 있다. 바로 카메라를 보여주는 방식을 결정하는데 아래에 현 상태가 나와있다. 위 사진 상태는 Perspective 상태로 Toggle 기능을 가지고 있어서 한 번 누르면 다른 상태로 바뀐다. Isometric 상태로 바뀐다. ** Isometric is usful in combination with clicking one of the conical axis arms to get a front, top or side elevation. -> 2D라고 생각하면 gizmo..

게임 일시정지하기, 퍼즈, pause 만들기 [Unity]

간단하다. 하지만 응용은 무궁무진하다. 버튼을 눌러서 일시정지 상태를 조절할 수 있고 어떠한 조건에 걸리면 일시정지 후 어떤 행동을 할 수 있다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Util : MonoBehaviour { bool isPause; //초기화 void Start () { IsPause = false; } void Update () { if (여기서 내가 원하는 조건이 들어갈 수 있다.) { //퍼즈 if (IsPause == false) { Time.timeScale = 0; IsPause = true; return; } // 퍼즈 풀기 if (IsPause =..

유니티 No Sprite Editor Window registered 해결 방법 [Unity]

3D 프로젝트에서 진행하다보면 이런 오류가 뜬다. 흔히 발견되는 오류로 2D에서 Multiple로 바꿨을 경우 발생한다 그래서 오류 해결방법은 간단하다. 저기 위에도 다운받아달라고 써있다. Window > Package Manager 가자. 내 프로젝트엔 없다. 그렇다면 유니티 안에는 들어있겠지? 있다 다운로드 받자 오 생겼다. 와 열렸다. ㅎㅎ 문제해결

프로젝트 게임 - 1 [Unity]

github.com/powerpower2005/MiniProject/tree/master **짧은 플레이 영상은 밑에 있음 이 프로젝트로 얻고자하는 바 Event 함수 체화 사용자 입력을 스크린에서 처리 기본적인 Physics와 점수 UI 일시적인 데이터 저장 게임목표 사과를 받아서 최고점수를 도달하자. 마우스로 움직인다. ** 키보드로도 입력받을 수 있다. 작업 내역 및 구현한 부분 Apple 요약: 사과 상세: 해당 값이 넘어가면 destroy하고 다른 스크립트의 메서드를 실행해서 Notify기능 -> 해당 오브젝트가 파괴되면 게임을 재시작해야함. ApplePicker 요약: 사과 줍는 사람 상세: Notify를 받으면 자신의 인스턴스를 하나 삭제하며 게임을 재시작하기 위해서 FindGameObjec..

Race Condition, 자원 경쟁, 경쟁상태 [Unity]

운영체제에서 세마포어, 뮤텍스... 등으로 많이 배운 Race Condition이다. 그렇게 Low하게 가지는 않을 것이고.. 유니티 내에서 조작해보자 맨 밑에 요약있음 우리는 유니티에서 값을 Initilaizing 후 사용한다. 하지만 Start()에 넣을 수도, Awake()에 넣을 수도 있다. 때문에 초기화 도중 만들어지기도 Object에 접근하는 상황이 발생해서 맨날 일어나는게 NullReferenceException Error다. 물론 Awake에 있는 것을 Start로 보낼 수 있으나.. 다른 방법도 존재한다는 것을 알아두자 스크립트 또한 우리가 실행순서를 정할 수 있다. 유니티 메뉴바에서 Edit -> Project Settings에 들어가서 아래와 같이 찾아볼 수 있다. 요약 1. Even..

728x90
반응형