스크린샷

구현/개선한 사항

  • 아이템 바 UI 추가
    • 현재 선택된 아이템은 하이라이트 처리되도록
  • 플레이어캐릭터 3D 모델로 교체 및 애니메이션 적용
  • 기타 버그 수정
    • 애니메이션 재생 중 피격시 애니메이션 재생이 멈추는 현상 수정
  • 아이템 박스 추가
    • 플레이어 캐릭터가 가까이 갈 시 아이템 습득, 자체적으로 계속해서 회전

 

  • 진행중 : 캐릭터/Gun Enemy 3D 모델 애니메이션에 총기 모델 Binding하기

추후 개선 사항

  • 계속 진행 : 캐릭터/Gun Enemy 3D 모델 애니메이션에 총기 모델 Binding하기
  • Object Pooling 적용
    • ItemBox, Bullet, Enemy 등
  • Item Drop Table 구현
    • Enemy 사망시 확률 적용
  • 피격 파티클 이펙트 적용
  • 아이템 바 UI 수정
    • 현재는 미리 Sprite를 받아와 처리하는데, 스프라이트 정보를 별도 클래스에서 관리하고, 아이템 정보로부터 스프라이트명을 받아와서 참조할 수 있도록(Key-Value Table)

'게임개발 > ShootingDefence' 카테고리의 다른 글

[ShootingDefence] 개발 일지 - 2022.06.05  (0) 2022.06.05

스크린샷

구현/개선한 사항

적 캐릭터 개선

  • Mixamo에서 3D 모델 및 애니메이션을 다운받아 적용함

  • Coroutine 사용 방식 개선
//실제 코드는 아닌, 동작 방식을 설명하기 위한 간이 코드임
	private void ChangeCoroutine(IEnumerator nextCoroutine)
    {
        if (currentCoroutine != null)
            StopCoroutine(currentCoroutine);
        currentCoroutine = StartCoroutine(nextCoroutine);
    }
    
    Start()
    {
     StartCoroutine(CoroutineIDLE());
    }
    
    CoroutineIDLE()
    {
     //.....
    StartCorutine(CoroutineRun());
    }
    
    CoroutineRun()
    {
     //.....
     StartCorutine(CoroutineAttack());
    }
    ...
  • 근접 공격형 적 유형 추가
  • Enemy Spanwer 추가

커스텀 마우스 포인터 구현

  • 기존 마우스 포인터 대신, Texture2D 기반의 마우스 포인터로 교체
  • 마우스포인터를 이용하여 사격가능/재장전 중 상태를 구분할 수 있도록 함

 

기타 플레이 개선

  • 마우스를 캐릭터와 겹쳐서 댈 경우, 플레이어 캐릭터가 기울어지던 현상 수정
    IEnumerator CharacterMoveMent()
    {
        while(true)
        {
            float horizon = Input.GetAxis("Horizontal");
            float vertical = Input.GetAxis("Vertical");

            Vector3 Movement = new Vector3(horizon, 0.0f - transform.position.y, vertical) * pSpeed;

            charController.Move(Movement);

            // 마우스가 향하는 방향으로 캐릭터 회전
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

            if (Physics.Raycast(ray, out hit))
            {
                Vector3 targetPosition = new Vector3(hit.point.x, 1.0f, hit.point.z);

                Quaternion rotation = Quaternion.LookRotation(targetPosition - transform.position);

                transform.rotation = Quaternion.Lerp(transform.rotation, rotation, Time.deltaTime * 10.0f);
                //Fix : X축 회전을 고정하여 마우스포인터가 캐릭터와 근접할시 캐릭터가 상하로 기울어지는 현상 해결
                Vector3 euler = transform.rotation.eulerAngles;
                euler.x = 0;
                transform.rotation = Quaternion.Euler(euler);

            }
            yield return new WaitForSeconds(0.01f);
        }
    }

 

추후 구현/개선 사항

  • 무기 UI 수정 및 인벤토리 기능 구현
  • 아이템 엔티티 구현 / 아이템 습득 기능 구현
  • Player Character도 기존 임시 모델에서 3D 모델로 변경할 것

'게임개발 > ShootingDefence' 카테고리의 다른 글

[ShootingDefence] 개발 일지 - 2022.06.08  (0) 2022.06.09

플레이 영상

 

구현/개선한 사항

스테이지 종료 목표 구현

  • 종료 조건(스코어, 특정블럭제거) 달성시 Game Clear 처리하도록 함
  • 기존의 종료 조건(블럭이동 횟수 사용) 달성 시에는 Game Over 화면으로

로딩 화면 추가

  • Coroutine을 사용하여, 현재 로딩 퍼센트를 화면에 표시

게임 플레이 개선

  • 가로줄 블럭 제거, 세로줄 블럭 제거, 폭탄 아이템 구현
    • 아이템은 이동/3-Match시 발동함
    • 아이템으로 블록 제거시 이펙트 추가
  • 블록의 떨어짐을 개선
    • 기존에는 1블럭을 떨어질때나, 3블럭을 떨어질때나 같은 속도
      • 많은 블럭을 떨어질 경우, 그만큼 빠르게 떨어지도록 수정
    • 블럭이 1단계 떨어진 후, 잠깐 멈췄다가 다시 떨어지는 현상을 수정
      • 부드럽게 한번에 떨어지도록.

최적화 및 개선

  •   메인 루프를 Update -> Coroutine상에서 동작하도록 수정

 

앞으로 구현할 사항

  • 스테이지 정보 저장/불러오기(JSON)
  • Map editor
  •  

앞으로 개선할 사항

이제 새 포트폴리오를 만들면서, 남는 시간에 진행할 것

github 링크

https://github.com/mistsixteen/RestaurantCrush

https://youtu.be/3L4GHkTTcVQ

 

구현/개선한 사항

  • 새로운 종류의 노드 구현
    • 이동불가능 노드, 얼어있는 노드 추가
      • 얼어있는 노드의 경우, 주변 블럭의 매칭을 감지하여 원래 노드로 돌아가게끔 설계함.
  • 최적화
    • GameBoard에서 저장하던 Node의 정보들을 Node 클래스 안으로 내제화
    • 프로퍼티를 적용하여 노드 상태에 따라 다른 값을 얻을 수 있도록 수정
    private NodeType nodeType;

    public NodeType NodeType
    {
        get
        {
            if (isIced == true)
                return NodeType.None;
            else
                return nodeType;
        }
        set
        {
            nodeType = value;
        }
    }
  • 기타 개선 사항
    • UI 버튼의 작동조건을 OnMouseDown -> OnMouseUP으로 변경하여, 
    • 기타 버그 수정

 

앞으로 개선할 사항

  • 스테이지 종료 목표 구현(타겟 제거 / 스코어링)
  • 스테이지 정보 불러오기 기능 구현(JSON)
  • UI 개선
  • 최적화 
    • GameManager 클래스의 진행 방식 수정(FixedUpdate -> Coroutine)

GItHub 링크

https://github.com/mistsixteen/RestaurantCrush

 

GitHub - mistsixteen/RestaurantCrush: Unity 2D Puzzle Game project

Unity 2D Puzzle Game project. Contribute to mistsixteen/RestaurantCrush development by creating an account on GitHub.

github.com

 

 

 

구현/개선한 사항

  • 스테이지 정보를 별도 클래스로 분리.
  • 위의 스테이지정보 클래스를 로드하는 클래스 구현.
  • GM, 효과음 추가

 

앞으로 개선할 사항

  • 스테이지정보 로드를 json을 사용하도록 수정
  • 컨텐츠 추가
    • 다양한 블럭/스테이지 추가할 수 있도록
  • UI 개선
  • GameManager 클래스의 진행 방식 수정
    • State에 따른 switch문 -> Coroutine 사용

 

메모

  • 이것저것 동시에 할 게 많지만, 이쪽도 꾸준히 개선해나갈 것

 

구현/개선한 사항

  • 코루틴을 사용하여 파티클의 지나친 Update 호출 방지
  • 3Match 후 노드가 자리를 채우러 내려갈 때, 코루틴을 사용한 딜레이를 추가하여 시인성 개선
  • 게임오버 화면 구현
    • 게임오버 후 메인으로 돌아갔다가 -> 다시 플레이 가능하도록
  • Node, Particle 생성을 Simple Factory 패턴을 적용한 별도의 Factory에서 전담하도록 하였다.
    • MonoBehavior를 상속하지 않은, Singleton Class에서 구현
    • MonoBehavior를 상속하지 않은 Class에서 Instantiate 사용시, GameObject.Instantiate() 로 사용해야함을 유의

앞으로 구현 필요한 사항

  • 이펙트 개선
    • Match시 어느 부분이 매치되었는지 표시해주는 이펙트 추가
  • 스테이지 기능 구현
    • 스코어 이외의, 특정 블록을 N개 획득하여 클리어하는 종류의 스테이지 추가
    • 메인에서 스테이지를 선택할 수 있도록.
    • 아이템/움직이지못하는 블록 등 추가
  • 사운드 추가
    • BGM, Effect

메모

알고리즘이나 유니티 공부도 좋지만, 게임개발도 하루에 일정 시간 이상은 할 수 있도록 하자.

+ Recent posts