목록프로젝트 (30)
cyphen156

항상 모든 몬스터의 인공지능을 개발자가 코딩할 수는 없다. 그래서 유니티에서는 길찾기 알고리즘을 개발하는 시간을 단축할 AI Navigation이라는 레지스트리 패키지를 제공하고 있다.그리고 AI가 돌아다닐 수 있도록 Plain에 NavMesh Surface 컴포넌트를 달아준다.여러가지 옵션들이 있지만 주의깊게 봐야 할 것은 Agent Type과 Default Area이다.어떠한 형태의 오브젝트가 어느 부분을 활용하여 이동할지를 결정하는 것이기 때문에 항상 이것을 실제 AI오브젝트에 달린 컴포넌트와 맞춰 주어야 한다.AI를 통해 제어할 오브젝트에 Nav Mesh Agent컴포넌트와 제어 스크립트를 부착해준다.Using문using UnityEngine.AI;using Unity.AI.Navigation;..

캐릭터를 한개 집어넣었는데 사망 모션 등 상하체, 팔 다리 등을 분리하여 제어하고 싶을 때가 있다. 그럴때 쓰는게 애니메이션에 있는 아바타 마스크이다.아바타 마스크는 다음과 같이 만들어서 개별 컨트롤러를 생성하는 것이다. 그리고 나서 코드에서 다음과 같이 레이어에 대한 가중값을 제어 할 수 있다. animator.SetLayerWeight(1, 1);그러고 나면 다음과 같이 플레이어 애니메이션이 재생된다.

유니티에서는 애니메이션 클립에 이벤트를 추가하여 특정 프레임중에 함수를 실행할 수 있다.가령 걷는 이벤트 중에 발소리가 나야 한다고 했을 때 다음과 같이 코드를 추가하고 이벤트를 통해 함수를 실행할 수 있다.PlayWeaponChangeSound{ if (audioClipWeaponChange != null) { audioSource.PlayOneShot(audioClipWeaponChange); }}이렇게 연결해주면 15번 프레임이 재생될 때 마다 사운드가 재생된다.

※ 공부하는 도중에 작성된 글입니다. 처음부터 설명하는 내용이 아니니 적당히 걸러서 보세요. ※※ 그냥 이런 흐름으로 애니메이션을 작업하는구나 정도로만 받아들여주세요※ 유니티에서 2D 게임을 만들때 가장 중요한 작업들 중 하나가 애니메이션을 만드는 것이다.먼저 여러 개의 스프라이트 이미지가 필요하다.가장 먼저 설정할 것은 이미지들의 피벗과 스프라이트 모드를 설정하는 것이다. 만약 이 피벗 위치가 달라진다면 애니메이션의 재생 위치도 달라질 것이기 때문에 애니메이션을 구성하는 모든 스프라이트 들은 같은 피벗 위치와 모드를 가지고 있어야 한다.피벗과 모드를 전부 설정했다면 다음과 같이 프로젝트 윈도우 아무데나 이미지들을 드래그 하면 유니티 엔진이 자동으로 애니메이션을 만들어 준다.애니메이션 자동 생성 기능 사..

유니티에는 애셋들을 번들링해서 제공할 수 있도록 할 수 있다. 에디터를 수정하여 직접 메뉴창을 만들수도 있다.이거 어디다가 쓰냐 하면 실행파일(apk)의 크기를 줄이고 추가 리소스는 애셋 번들의 형태로 제공함으로써 초기 프로젝트의 용량을 줄이고, 애셋을 다른곳에도 사용할 수 있도록 유연성과 확장성을 확보하는데 있다.우선 Asset폴더 내부에 Editor 폴더를 만들고, 여기에 스크립트를 하나 생성한다.그러고 나면 다음과 같이 메뉴창을 하나 생성할 수 있다.애셋 패키지를 등록하려면 프리펩과 같은 파일들을 다음과 같이 작업하면 등록된다.그리고 나서 다음과 같이 코드를 수정하고AssetBundleBuilder.csusing System.IO;using System.Collections;using UnityEn..

태초에 돈스타브 모작 프로젝트가 존재했다.블로그 주인장은 싱글턴 패턴을 적용하면서 리소스 로드를 수정하다가 멘탈이 터져버렸다.점점 코드가 치기 싫어졌었다. 부트캠프를 다니면서 나머지 공부를 하면서 일주일에 두 번, 하루에 1시간씩 자체엔진 개발을 하기로 결정했다. (C# Basic 수업일)기존에 하던 프로젝트의 코드가 하나도 기억이 안나서 아예 엔진부터 싹 갈아엎기로 했다.우선 사용될 렌더링 API는 기본 베이스를 WIN32 API를 베이스로 GDI+와 D3DX11+를 컴포넌트 식으로 교환하여 사용 할 수 있도록 설계할 예정이다.다행히 WIN32 API와 GDI+는 어느정도 기억이 난다. 3개월 안에 엔진에 D3DX11을 추가 지원할 수 있도록 공부하고 기본 베이스 엔진을 만드는 것이 목표다.다음은 참고..

돈스타브 하다가 하기싫어져서 뛰쳐나온 프로젝트확실히 글쓰면서 공부하면 조금 더 집중을 오래하는것 같다.간단하게 애셋 스튜디오로 리소스 추출하고 프로젝트 모작으로 만들것 같다.맨 처음 유니티6 2D Core(URP)프로젝트를 생성하면 현재 다음과 같은 경고가 발생한다.→ 24.12.16 수정Unity6 0.31f1버전 기준 이제는 안뜨는 에러다 The project currently uses the compatibility mode where the Render Graph API is disabled. Support for this mode will be removed in future Unity versions. Migrate existing ScriptableRenderPasses to the new ..

우선 프로젝트 코드를 정리하자. 다음과 같이 정리하면 깔끔해진다.+++pch.h 관련 설정 추가// dontstarveCopy.cpp : 애플리케이션에 대한 진입점을 정의합니다.//#include "pch.h"#include "framework.h"#include "dontstarveCopy.h"#define MAX_LOADSTRING 100#define WSREGULAR 5000#define WSLARGE 10000// 전역 변수:HINSTANCE hInst; // 현재 인스턴스입니다.HWND hWnd; // 메인 윈도우WCHAR szTitle[MAX_LOADSTRING]; ..