최종프로젝트 진행상황
오늘의 작업 :
우선, Unit 이 될 친구들의 Assets 을 확인해보니 sprite sheet 으로 구성되어 있었고, Sprite Editor 에서 Grid By Cell Size 로 슬라이스 진행 !
슬라이스 하면서 각 애니메이션 상황별로 이름을 구분지어줬고
라잌디스.jpg
준비된 sprites 로 애니메이션 만들기 시작 !
애니메이션 작업 과정
1. sprite sheet 정리하고 (위에서 했던 작업들)
2. Hierarchy 에 특정 애니메이션에 해당하는 sprites 를 drag&drop 한 다음 Assets - @Resources - Animations 폴더에 저장. (나중에 Resources 폴더로 옮겨야지~)
3. 애니메이션 폴더를 보면 Animator Controller 와 Animation Clip 이 생긴 것을 확인할 수 있다.
4. 같은 오브젝트에 대한 다른 애니메이션을 추가하고 싶다면, Hierarchy 에 생긴 해당 오브젝트 안에 애니메이션 sprites 를 drag&drop 해주면 Animator Controller 는 기존에 생긴 것을 사용하게 되며 Animation Clip 만 따로 생기게 된다.
Unit_Gun Controller
Animator Override Controller 를 만들 때 기억해야 할 점은
Inspector 창을 보면 Controller 에 기본 틀 역할을 해줄 Controller 를 넣어줘야 하고, 상황에 맞는 애니메이션들을 drag&drop 해줘야 한다.
Unit_Jotem Controller
Unit_Warrior Controller
GameManager.cs (아직 작업ing)
using System.Collections.Generic;
using UnityEngine;
public class GameManager : IManagers
{
private int playerMoney; // 플레이어 보유 돈
private List<Unit> playerUnits = new List<Unit>(); // todo : 플레이어가 보유한 유닛 리스트 -- 리스트 자료형 체크
private List<Tile> playerTiles = new List<Tile>(); // todo : 플레이어가 보유한 타일 리스트 -- 리스트 자료형 체크
public static bool isGamePaused { get; private set; } // 다른 스크립트에서 쉽게 접근이 가능하도록 메모리에 할당 - static, 읽기전용
public bool Init()
{
return true;
}
// Start is called before the first frame update
private void Start()
{
// 돈 관련 UI 업데이트
Refresh();
}
// Update is called once per frame
private void Update()
{
if (isGamePaused)
{
Time.timeScale = 0.0f;
}
else
{
Time.timeScale = 1.0f;
}
}
public void PauseTime()
{
isGamePaused = true;
}
public void ResumeTime()
{
isGamePaused = false;
}
// 돈 관리
private void Refresh() // UI 에 Update 해줄 함수 구현
{
//moneyText.text = playerMoney.ToString();
}
public void AddMoney(int money)
{
playerMoney += money;
Refresh();
}
public void Spendmoney(int money)
{
if (playerMoney < money) // 돈 부족 시
{
ShowWarning();
Debug.Log("돈이 부족해 !!");
}
playerMoney -= money;
Refresh();
}
// 유닛 관리
public void AddPlayerUnit(Unit unit)
{
playerUnits.Add(unit);
}
public void RemovePlayerUnit(Unit unit)
{
playerUnits.Remove(unit);
}
// 타일 관리
public void AddPlayerTile(Tile tile)
{
playerTiles.Add(tile);
}
public void RemovePlayerTile(Tile tile)
{
playerTiles.Remove(tile);
}
public void ResetPlayerResources() // 플레이어의 자원(돈, 유닛, 타일 등)을 초기화하는 함수
{
playerMoney = 0;
playerUnits.Clear();
playerTiles.Clear();
}
public void InitGame() // 게임을 초기화하는 함수
{
// e.g. 초기 자원 할당 등
}
public void GameOver()
{
}
private void ShowWarning() // "잔액이 부족합니다" 팝업
{
//popupMsgUI.SetActive(true);
}
}
이렇게 하는게 맞나 싶지만 일단 생각나는대로 다 적어보고 있다 !
내일은 조원분께서 작업하신 Status 관련 스크립트를 Unit 에 연결시키는 작업과
구매(유닛, 땅&방타일) 관련한 UI 제작 및 스크립트 작성 작업을 위주로 진행할듯하다 !
🔥
남은 오늘도 파이팅 !
내일도 아자아자 파이팅 !