우선 Sequence는 단일 객체가 아닌,다수의 객체에 대한 여러 트윈을 하나로 묶고등록한 순서대로 트윈을 재생하기 위해 사용합니다. Sequence sequence;Sequence는 변수 선언 시 null 상태입니다. sequence = DOTween.Sequence(); static으로 선언된 생성자가 있습니다.이 생성자를 통해 Sequence를 만듭니다. 시퀀스는 생성 즉시 자동으로 재생됩니다. sequence = DOTween.Sequence().Play();Play()를 사용해 시퀀스를 재생할 수 있지만 자동 재생입니다. sequence = DOTween.Sequence().Pause();이를 원치 않으면 트윈을 추가하면서 동시에 재생을 중단해야 합..
0. 코드전문using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using DG.Tweening;[RequireComponent(typeof(Canvas))]public class InfoUIController : MonoBehaviour{ readonly Queue infoUIs = new Queue(); public Image prefab; Image currentInfo = null; [SerializeField, Header("시작 위치")] RectTransform startPosition; [SerializeField, Header("목표 위치")] RectTransform tar..
0. 코드 전문123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166..
1. Hand (손, 패)Hand는 말 그대로 플레이어의 손을 의미합니다.원래는 손에 들고 있는 카드를 의미하지만List로 손에 들고 있는 Card 오브젝트를 관리하는 class입니다. [SerializeField] List list = new List();인스펙터에서 확인할 수 있도록 어트리뷰트를 추가했습니다. public int[] AllIDs { get { int[] ids = new int[list.Count]; for (int i = 0; i 여차하면 카드 목록을 전달할 수 있게,특히 카드의 ID를 전달하기 위해 int 배열 함수를 준비했습니다.null에 대한 예외 처리가 필요할 수 있습니다. public ..
1. 덱과 카드 관리먼저 Mirror에서Command나 ClientRpc 등의 속성을 가진 메서드를 사용할 때class의 인스턴스를 매개변수로 전달할 수 없습니다.기본적으로 직렬화 가능한 기본 자료형(int, float, string, bool)만 주고 받을 수 있기 때문입니다.대신 카드 오브젝트를 int 형 ID로 주고받을 수 있습니다. using UnityEngine;public class Card : MonoBehaviour{ // 카드의 고유 ID (외부에서 수정 불가, 읽기 전용) public int Id { get; private set; } // 카드의 이름 public string cardName; // 카드 ID를 설정할 수 있는 초기화 메서드 public..
1. 특정 인원을 만족하면 게임을 시작하기Unity Mirror 라이브러리를 사용하여 멀티 플레이 환경을 제작하고 있습니다.NetworkManager를 사용하여 Game Scene에서 4명의 플레이어가 접속하면 게임이 시작되게 할 것입니다. GameManager에서 생성된 플레이어의 수를 int 값으로 기록하고 저장합니다.플레이어 객체가 생성되면 Start() 메서드로 GameManager의 int 값을 +1 합니다.그리고 그 수가 4가 된다면 게임을 시작하기 위한 메서드를 실행합니다.using UnityEngine;using Mirror;public class GameManager : NetworkBehaviour{ // 접속된 플레이어 수를 서버에서 관리하기 위한 네트워크 동기화된 변수 [..
포트폴리오용 1인 게임 개발 프로젝트를 시작했습니다.학원에서의 마지막 작업일 듯합니다.작업 기한은 ~2024.10.04 입니다.주제는 창작 카드게임입니다.4명이서 플레이할 수 있도록 네트워크 통신까지 추가할 계획입니다. 그런데 카드 게임이란게 비주얼적인 부분이 빈약해서 다른 게임에 비해 초라하다고 생각하고 있습니다...그에 비해 다른 학생들은 애니메이션이나 쉐이더의 재미에 쏙 빠진것 같아 보이는데,과연 로직이라도 훌륭하게 완성하여 내실이라도 튼튼한 프로젝트가 될지 걱정입니다... 기능정의서Unity의 Mirror 라이브러리를 사용하여 4인 멀티 카드 게임을 제작합니다.4명의 플레이어가 모일 때까지 대기합니다. 필요한 인원이 모이면 게임을 시작할 수 있습니다.NetworkRoomManager를 활용하여 로..
NetworkRoomManager에서 Start Host나 Start Client를 실행하면Offline Scene에서 Online Scene으로 이동합니다.이후에 벌어지는 일을 정리해봅니다. Online Scene으로 이동하면 NetworkRoomPlayer 객체가 생성됩니다.객체의 Start 구문에서 DontDestroyOnLoad(gameObject)가 실행됩니다. 그리고 싱글톤이 된 NetworkRoomManager의 RoomSlots에 자신을 추가합니다. RoomSlots은 NetworkRoomPlayer형 HashSet입니다.( HashSet : 중복 값을 허용하지 않는 고유한 값의 컬렉션)NetworkRoomManager의 RoomSlots을 조회하면 원하는 플레이어를 호출할 수 있겠습니다..