기능 소개플레이어 정보를 관리하기 위해 Manager System 구축Managers를 통해 각 담당 매니저를 인스턴스 하는 클래스 구현 [제너릭 싱글톤]기능 구현제너릭 싱글톤public abstract class SingletonBehaviour : MonoBehaviour where T : SingletonBehaviour{ private static T instance = null; public static T Instance { get { return instance; } } protected virtual void Awake() { if (instance != null) { Debug.LogError(string.Format("허..
2D 공 충돌 물리엔진'알카노이드' 스타일의 공 충돌 물리엔진을 구현하려 한다.기능 소개화면 충돌화면을 덮는 Edge Collider 2D를 생성바닥은 다른 Box Collider 2D로 충돌 시, 공을 파괴시키는 기능을 추후에 넣을 예정 Ball Bound Screenpublic static class Extensions{ /// 카메라 사이즈에 맞는 엣지 콜라이더 바운드 생성 public static void GenerateCameraBounds(this EdgeCollider2D screenEdge) { var halfScreenHeight = Camera.main.orthographicSize; var halfScreenWidth = Camera.main...
스프라이트 아웃라인NPC 일정 범위 내의 접근 시 아웃라인 효과 부여셰이더 사용보다는, 간단하게 표현하는 게 낮다 판단하여 이미지 두 개를 덮어 씌어서 작업하였다.기존 NPC와 똑같이 작동하는 SpriteRenderer와 Animator를 복사 생성한다.NPC 보다 스케일을 1.15배로 키우고 유니티 내에서 제공하는 셰이더인 GUI/Text Shader로 하얗게 표현기존 이미지 보다 뒤에 있어야 되므로 sortingOrder 값을 하나 낮춘다.대화창 연출NPC와 대화하기 버튼을 누를 시, 양쪽 사이드바가 사라지는 연출을 추가했다양쪽이 그대로 있을 때, 다른 버튼 작동 제어를 구현 안 했는데 사라지는 연출을 추가해 주면서, 다른 버튼을 누를 필요도 없고, 자연스러움이 더욱 묻어나는 거 같았다.Extensi..
📌 NPC 간단 대화 시스템NPC 근처에 가면 대화 걸기 버튼 생성, 멀어지면 버튼 사라짐버튼을 누르고 대화 시작 📌 구현 결과 NPC 대화창을 구현, 가져올 데이터는 NPC 이미지, 이름, 대화 로그📄 NPCBlueprint.cspublic class NPCBlueprint : CharacterBlueprint{ [SerializeField] private string npcIntro; public string NPCIntro => npcIntro;}캐릭터 설계도를 베이스로 모든 NPC는 대화 인트로를 가지게 설계함임시로 NPC에 설계도를 하나씩 붙여서 데이터를 불러오게 함 => 나중에 리소스 제어로 관리하도록 수정 필요📄 NPC.cspublic class NPC : MonoBehav..
📌 참석 인원 표시하기현재 참석한 인원의 이름을 표시하는 커뮤니티창 구현이름 교체시 커뮤니티에 등록된 이름도 같이 교체 📌 구현 결과 인원 표시 창을 나타내게 하는 버튼과 현재 인원을 표시하는 리스트 창을 만들어 둔다. 📄 UI_Scene_Main.cs private void InitViewCommunity(){ communityShowBtn.onClick.AddListener(ShowCommunity); communityHideBtn.onClick.AddListener(HideCommunity); Manager.Game.CommunityList = communityList; // 등록할 커뮤니티창 게임매니저에서 설정}private void ShowCommunity(){ c..
📌 메인 화면 캐릭터 정보 변경메인 씬에서 캐릭터 정보 변경캐릭터 이미지 교체와 이름 변경 가능 📌 구현 결과 메인 화면 좌측에 Left Side를 구성하고 해당 버튼에 기능을 설명하는 Text를 배치함.버튼을 누르면 해당 패널을 SetActive로 설정하여 패널을 불러오도록 한다.캐릭터 교체 창은 전에 작업했던 로비 씬에서 작업한 에셋을 그대로 가져와서 사용했다.똑같이 토글 방식으로 캐릭터를 누르고 버튼을 눌러서 교체가 가능하다.한가지 추가 기능으로는 선택 창이 활성화 되었을 시, GameState로 플레이어 조작을 제어하고, 교체랑 x버튼 이 외에는 다른 UI 버튼이 누르지 않도록 추가 했다.이름 교체 창도 똑같이 로비 씬에서 작업한 에셋을 그대로 가져와서 사용했다.화면 제어 부분도 위에 선택 창..
📌 캐릭터 선택 창캐릭터 이미지를 선택하고 선택한 캐릭터가 인게임에 나오도록 구현 📌 구현 결과public enum LobbyStep{ Start, Select, Input, Finish,}우선 캐릭터 생성 순서를 열거형 단계로 나눠서 표현한다.캐릭터 선택창 안에는 ScriptableObject로 저장된 CharacterBlueprint 수 만큼 가져와서 생성된다.📄 CharacterBlueprint.cs[CreateAssetMenu(fileName = "Character", menuName = "Blueprint/Character")]public class CharacterBlueprint : ScriptableObject{ [SerializeField] private ..
📌 현재 시간 표시인게임 내에서 실제 현재 시간을 표시하는 기능 구현 📌 구현 목록📄 Util.cspublic static string GetCurrntTime(){ // 현재 시, 분 출력 return DateTime.Now.ToString(("HH : mm"));}DataTime.Now를 출력하면 일/월/년도 시간:분:초 {오전/오후}가 표시된다.format을 지정하여 원하는 형태로 출력할 수 있다.[yyyy : 년도] [MM: 월] [dd : 일] [HH : 시] [mm : 분] [ss : 초] [tt : 오전, 오후]📄 UI_Scene_Main.cspublic class UI_Scene_Main : MonoBehaviour{ [SerializeField] private Te..
📌 캐릭터 아이디 입력InputField를 이용하여 아이디 입력입력된 아이디는 플레이어 아이디에 저장 📌 구현 목록🔧 Lobby Scene플레이어 아이디를 입력할 로비씬 생성간단하게 타이틀 제목 하나 넣고, 아이디를 입력할 InputField 랑 메인 씬으로 넘어갈 플레이 버튼 생성📄 UI_Scene_Lobby.cspublic class UI_Scene_Lobby : MonoBehaviour{ [Header("Input Field")] [SerializeField] private TMP_InputField idInput; [SerializeField] private Button playButton; private void Start() { idInput.on..
📌 타일 꾸미기서드파티 에디터인 ProCamera2D로 동적인 카메라 구현추가적으로 캐릭터 애니메이션과 가벼운 이펙트 추가 구현 📌 구현 목록🎁 ProCamera2D https://assetstore.unity.com/packages/2d/pro-camera-2d-the-definitive-2d-2-5d-camera-plugin-for-unity-42095?locale=ko-KR Pro Camera 2D - The definitive 2D & 2.5D camera plugin for Unity | 2D | Unity Asset StoreGet the Pro Camera 2D - The definitive 2D & 2.5D camera plugin for Unity package from Luís P..