Engine

    매주 토요일 오후 3시 유니티 스터디 구글 미트로 진행합니다.

    매주 토요일 오후 3시에 구글 미트로 유니티 스터디하실 분 모집합니다. https://meet.google.com/pgj-rafo-mja Meet Google에서 제공하는 실시간 회의입니다. 브라우저를 사용하여 팀원 및 고객과 영상, 데스크톱 화면, 프레젠테이션을 공유하세요. meet.google.com 발표 자료 [유니티 교과서]라는 유니티 입문 서적을 뒷장부터 거꾸로 읽어보면서 중요하다고 생각하는 내용 정리하였습니다. https://present.do/documents/62c92a62e214362cce89bf5e 거꾸로 읽는 유니티 교과서 ver0.1.2 [유니티 교과서]라는 유니티 입문 서적을 뒷장부터 거꾸로 읽어보면서 중요하다고 생각하는 내용 정리하였습니다. present.do

    Unity AR Template 내용 상세

    Unity AR Template 내용 상세

    유니티 버전이 올라가면서 이제는 새로운 프로젝트 생성할 때 템플릿이라는 개념이 새로 생겼다. 아마도 템플릿은 생긴지는 꽤 오래된거 같은데 점점 언리얼 엔진을 닮아간다. AR 템플릿을 선택하면 다른 템플릿과 다른 점은 기본적으로 포함되는 패키지들이다. 그리고 프로젝트 생성 완료되면 Hierarchy에 자동으로 필요한 게임오브젝트들이 붙어있다. Unity AR Foundation 샘플 프로젝트는 아래 링크에서 확인할 수 있다. https://github.com/Unity-Technologies/arfoundation-samples GitHub - Unity-Technologies/arfoundation-samples: Example content for Unity projects based on AR Fou..

    [Unity 2021.3.3f1 LTS] A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to get more details.

    [Unity 2021.3.3f1 LTS] A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to get more details.

    유니티 2021로 업그레이드 하면 메모리 릭이 발생한다고 에러 메시지가 표시된다. 메모리 릭은 잡는 것이 맞겠지만, 이를 콘솔 창에 표시하지 않도록 하고 싶다면 아래와 같이 설정한다. "A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to get more details." Package Manager => + 버튼 클릭 => add package by name => "com.unity.jobs" 입력 => add 버튼 클릭해서 설치 설치가 완료되면 유니티 에디터 상단 메뉴에 Jobs 라는 메뉴가 새롭게 생성된다. Jobs => Leak Detection => Off 로 설정하면 더 이..

    [Unity 2021.3.3f1 LTS] Play 버튼을 클릭하면 reload 없이 바로 재생되도록 하는 옵션

    [Unity 2021.3.3f1 LTS] Play 버튼을 클릭하면 reload 없이 바로 재생되도록 하는 옵션

    유니티 2021 버전부터 게임 재생 버튼을 클릭하면 바로 재생되지 않고 "reload script assembly" 와 같은 로딩 창이 뜨고 나서 한참 뒤에 게임이 재생되도록 디폴트로 설정이 되어 있는데요. 이전 버전과 같이 바로 재생되도록 하기 위해서 아래와 같은 설정이 필요합니다. Project Settings => Editor => Enter Play Mode Options 체크 (활성화) Reload Domain 체크 해제 (비활성화) 유니티 공식 문서에는 Domain Reload에 대해 다음과 같이 명시되어 있습니다. Domain Reloading resets your scripting state, and is enabled by default. It provides you with a comp..

    [Unity Animation window] 키 프레임 시간 조정하는 방법

    [Unity Animation window] 키 프레임 시간 조정하는 방법

    Animation 창을 열면 오른쪽 상단에 파란색의 시간이 설정되어 있는데 이것을 늘리거나 줄이려면, 간단히 마우스 휠을 스크롤 하면 조정이 가능합니다.

    [Unity 2021.3.3f1 LTS] auto refresh 해제 방법

    [Unity 2021.3.3f1 LTS] auto refresh 해제 방법

    유니티가 버전 업 되면서 auto refresh 설정을 해제 하는 메뉴가 변동되었습니다. 이전 버전에서는 Preference => General => Auto Refresh 였습니다. 2021 버전에서는 Asset Pipeline 메뉴에 Auto Refresh를 해제할 수 있는 옵션이 위치합니다. 이 기능을 해제하면 매번 에셋 변경이 있을 때마다 컴파일이 되는 디폴트 설정이 변경됩니다. 윈도우의 경우 Ctrl+R 단축키로 refresh를 할 수 있습니다.

    Flutter 3 출시 소식

    Flutter 3 출시 소식

    벌써 플러터 3가 출시 되었습니다. 베타 때부터 시작해서 그동안의 여정을 보면 발전 속도가 놀라운데요. 특히 이번 3.0 버전에서는 macOS, Linux 등의 플랫폼을 지원하고, Apple Silicon 빌드 또한 지원하기 시작했습니다. 가장 눈에 띄는 기능은 플러터 캐주얼 게임 툴킷 (Flutter Casual Games Toolkit) 인데요. 두 가지 면에서 Unity 엔진과 Flutter 3가 시장 포지셔닝이 비슷하네요. 첫째, 멀티 플랫폼 지원 둘째, 캐주얼 게임 개발 보다 자세한 소식은 아래 링크를 참고하시기 바랍니다. https://medium.com/flutter/introducing-flutter-3-5eb69151622f Introducing Flutter 3 The culminati..

    Flutter 장점만 나열

    Flutter 장점만 나열

    Flutter는 React Native와 비교가 많이 되는 편으로 보인다. 네이티브 급으로 속도가 빠르다. RN은 Bridge가 있는 반면에, Flutter는 네이티브로 컴파일 된다. 개발이 쉽다 크로스 플랫폼 지원 (웹, 모바일, 데스크탑 등) 새롭지만 친숙한 프로그래밍 언어 Dart 개발사가 Google이다(!?) React는 JavaScript를 다룰줄 알아야 하는데, C++ / C# 위주로 개발한 나로서는 Flutter가 더 매력적으로 느껴진다. 참고 서적 - https://ridibooks.com/books/3780000151?_s=search&_q=%ED%94%8C%EB%9F%AC%ED%84%B0&_rdt_sid=search&_rdt_idx=1 쉽고 빠른 플러터 앱 개발 인프런의 인기 강의, ..

    [UE5] City Sample 권장 사양

    Current Recommended Specs: - 12-Core CPU @ 3.4 GHz - 64 GB RAM - GeForce RTX 2080 or AMD Radeon 6000 (or higher) - At least 8GB of VRAM. Engine Scalability and Mass AI density can be reduced to increase performance. Nanite is only supported by NVIDIA Maxwell GPUs and AMD GCN GPUs or higher. Up to date graphics drivers and DirectX 12 are required. 출처 - https://www.unrealengine.com/marketplace/ko/..

    [실전 유니티 C#] 스프라이트 (Sprite) 배치

    [실전 유니티 C#] 스프라이트 (Sprite) 배치

    지금까지 유니티 에디터의 콘솔 창에 텍스트만 출력해 보았지, 실제로 게임이 돌아가지는 않았습니다. 이제부터 좀 더 재미있을거에요. 실제로 이미지들을 원하는데로 이동시킬 수 있을테니까요. Sprites 폴더 내에서 Player 에셋의 오른쪽에 있는 화살표 버튼을 클릭해 봅시다. 그러면 아래 화면과 같이 하나의 이미지 파일 안에 여러 개의 스프라이트 (Sprite)가 포함되어 있는 것을 확인할 수 있습니다. 이미지 에셋은 이렇게 최적화와 관리적인 측면에서 하나의 파일에 여러 개의 스프라이트들을 담아놓고 씁니다. 원래는 스스로 스프라이트를 잘라서 사용해야 하는데, 골드 메탈님이 이미 잘 잘라놓은 스프라이트들을 우리는 사용하기만 하면 됩니다. 이제 이 스프라이트들 중 하나를 클릭해서 Scene 창으로 드래그 앤..

    [실전 유니티 C#] 유니티 에셋스토어

    [실전 유니티 C#] 유니티 에셋스토어

    유니티 에셋스토어는 개발자가 게임을 개발하는데 필요한 에셋(asset)들을 제공하는 플랫폼입니다. 정말 다양하고 좋은 에셋들이 많이 있으므로 적극 활용하시기 바랍니다. 하지만 지금은 유니티와 C#을 배우고 있는 단계이기 때문에, 무료 2D 이미지만 필요하겠습니다. 유니티 에셋스토어로 이동합니다. https://assetstore.unity.com/ 에셋스토어 여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다. assetstore.unity.com "종스크롤" 로 검색하면 바로 우리가 원하는 에셋을 무료로 구할 수 있습니다. 무료로 에셋을 배포해 주신 Goldmetal님께 감사의 ..

    [실전 유니티 C#] 열거체 enum

    [실전 유니티 C#] 열거체 enum

    using System; using System.Collections; using System.Collections.Generic; using UnityEditor.UI; using UnityEngine; public class Player : MonoBehaviour { public enum State { Idle = 0, // 아무것도 하지 않는 상태 Move, // 이동 중인 상태 Attack, // 공격 중인 상태 Skill, // 스킬 사용 중인 상태 Damaged, // 적에게 공격을 받아 피해를 받은 상태 Die // 죽은 상태 } public int currentHP = 70; // 현재 체력 public const int maxHP = 100; // 체력 max public string ..

    [실전 유니티 C#] switch case 문

    using System; using System.Collections; using System.Collections.Generic; using UnityEditor.UI; using UnityEngine; public class Player : MonoBehaviour { public int currentHP = 70; // 현재 체력 public const int maxHP = 100; // 체력 max public string name; // 이름 public string guildName; // 길드 명 public int currentLevel = 1; // 현재 레벨 public int state = 0; // 플레이어의 현재 상태 private void Start() { name = "용감한 ..

    [실전 유니티 C#] if 와 else if 와 else

    [실전 유니티 C#] if 와 else if 와 else

    using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { public int currentHP = 70; // 현재 체력 public const int maxHP = 100; // 체력 max public string name; // 이름 public string guildName; // 길드 명 public int currentLevel = 1; // 현재 레벨 public bool isDead = false; // 살아있는지 여부 public int state = 0; // 플레이어의 현재 상태 private void Star..

    [실전 유니티 C#] if 문으로 조건을 만들다

    [실전 유니티 C#] if 문으로 조건을 만들다

    어떠한 특정 조건을 만족시키면, 이 코드를 실행시키고, 그렇지 않으면 다른 코드를 실행시킬 수 있도록 분기를 나눌 수 있습니다. 지난 시간에 배웠던 bool 형 변수를 이용하여 if 문에 대해서 배워 보겠습니다. 바로 코드부터 볼까요? using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { public int currentHP = 70; // 현재 체력 public const int maxHP = 100; // 체력 max public string name; // 이름 public string guildName; // 길드 명 ..

    [실전 유니티 C#] 문자열 다루기

    [실전 유니티 C#] 문자열 다루기

    지난 시간에 문자열은 문자들의 합쳐놓은 것이라고 배웠습니다. 문자는 char, 문자열은 string이라는 데이터 타입을 사용하는데요. string은 자주 쓰이는 데이터 타입이니 조금 익숙해질 필요가 있겠습니다. 첫번째 시간에 저희가 콘솔 창에 문자열을 출력해 보았습니다. 여기서 조금만 더 발전해 나가 볼까요? using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { public int currentHP = 70; // 현재 체력 public const int maxHP = 100; // 체력 max public string nam..