📝 24.01.26
오늘도 팀 과제를 진행했다. 그런데 오늘은 기본적으로 버그 픽스나 사이클 조정 등을 많이 하다보니 딱히 적을 게 없다...
일단 대표적으로 진행한 것 하나는 Player
오브젝트를 GameManager
에 넣는 방식으로 바꿔준 것이다.
왜냐하면 현재는 맵 생성과 캐릭터 이동이 로컬좌표계가 아닌 월드 좌표 기준으로 되어있어서, 매번 덧셈 이동해줘야 한다는 문제가 있었다.
하지만 만약 이 Player
오브젝트를 이동할 때마다 생성된 맵의 자식 오브젝트로 넣어주면, 새로이 생성된 맵 기준의 로컬 좌표를 사용할 수 있게 된다. 더 쉬운 이동이 가능해지는 것이다.
참고로 이 맵의 순간이동 포탈의 경우에는 따로 기존에는 Map.cs
에서 관리했었는데, 위와 동일한 이유로 아이템과 몬스터 등도 맵 오브젝트의 자식으로 생성하게 되니 OnTrigger
가 포탈이 아닌 다른 오브젝트에서도 발동되는 문제가 발견되었다.
그래서 MapPortal.cs
를 새로 작성하여 Portal 오브젝트에 달아주었다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MapPortal : MonoBehaviour
{
bool isUsed = false;
private void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Player")
{
//TODO: Change to ButtonClicked
MapCreator.instance.CreateNextMap();
isUsed = true;
}
}
}
오랜만에 프로그래머스 풀이를 작성했다.