no image
유니티 플러그인에 dll추가 후 빌드 안되는 문제
원인은 os에 맞는 폴더에 dll을 추가 해야 하는데 그러지 않아서 일어난 문제였다. 다 필요없고 패킷 라이브러리를 라이브러리 프로젝트가 아닌 일반 프로젝트로 만들어서 안에 들있던 Main()함수가 문제였다. 이렇게 친절하게 알려주고 있었는데 이걸 못보고 몇일을 삽질한건지 모르겠다;;;
2022.12.12
no image
알발 페스타 공모전(4)
이번에는 게임 내에서 가장 중요한 강도AI를 만들어 보자. 아래 그림과 같은 구조로 만들 것이다. 우선 NPCBaseState 클래스를 추상클래스로 만들어서 개별 상태를 정의한다. 그리고 필요한 상태 클래스를 만들어 준다. (그림에는 없지만 Patrol 상태도 필요해서 하나 만들어 주었다.) 이제 상태(State)들이 만들어 졌으니, 만들어진 상태를 관리해줄 상태 관리 클래스(NPCFSMMgr)가 필요하다. 이 상태 관리 클래스에는 각 상태들이 사용해야 하는 기능들과, 상태를 전환 시켜주는 기능들이 있다. 한마디로 상태 관리 클래스가 각각의 상태들을 불러오고 그 상태에 알맞는 기능을 실행시킨다고 보면 된다. 대략적인 설명이 끝났으니 이제 상태를 하나씩 자세히 살펴보자. 첫번째로 Idle(기본 상태)이다...
2022.07.18
no image
알발 페스타 공모전(3)
이번에는 조준 기능과, 회피 기능을 구현해 보자. 우선 마우스의 좌표를 받아와주는 UtilsClsss를 만들었다. public class UtilsClsss : MonoBehaviour { public static Vector3 GetMouseWorldPosition() { Vector3 vec = GetMouseWorldPositionWithZ(Input.mousePosition, Camera.main); vec.z = 0f; return vec; } public static Vector3 GetMouseWorldPositionWithZ() { return GetMouseWorldPositionWithZ(Input.mousePosition, Camera.main); } public static Vect..
2022.07.18
no image
알발 페스타 공모전(2)
맨 처음 구현하기로 정한것은 플레이어의 움직임과 아이템, 인벤토리 기능이다. 플레이어의 움직임은 별로 어려운 점 없이 바로 구현하였다. PlayerController라는 스크립터블 오브젝트를 만들어서 플레이어에게 할당해준 뒤, FixedUpdate에서 속도만큼 이동시켜 주었다. using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(fileName = "PlayerController", menuName = "InputController/PlayerController")] public class PlayerController : InputController { public override f..
2022.07.18
알발 페스타 공모전(1)
방학 중 7월 한달 간 진행되는 AR/VR 페스티벌 공모전에 참가하기로 했다. 팀원은 나 포함 총 3명으로 진행되었다. AR/VR 공모전이지만 꼭 AR/VR만 참가신청이 되는게 아니라서 2D 게임으로 참가하게 되었다. 우리가 만들려는 게임의 전반적인 기획이다. 주제: 저택을 지키고 뒷정리를 하는 메이드/집사 장르: 탑-다운 액션 타임어택 플랫폼: PC우선 (가능 시 PC -> 모바일 -> 콘솔 순서로 진행) 컨트롤 방식: 키보드 & 마우스 (후차적 게임패드 호환성) 시점: 탑-다운 그래픽 스타일: 2D, 픽셀아트, 귀여움 기타: 싱글 플레이어 타겟 플레이어: 짧게 아케이드 느낌으로 즐길 수 있는 게임을 찾는 플레이어들 프로그래머인 내가 전반적으로 구현해야될 핵심 기능들은 강도의 AI, 플레이어 기능, 아..
2022.07.18