퀘스트 UI 안에 이미지를 넣고
퀘스트가 클리어 한 상태이면 이 이미지를 활성화 하는 방식을 사용하려고 했다.
콜백함수를 사용 해보려고 했으나, Find 함수로 이 퀘스트 이펙트가 가진 클래스를 찾는 부분에서 에러가 발생했다.
퀘스트 매니저가 싱글톤으로 만들어져 있고 Monobehavior를 상속받지 않아서 inspector상으로 넣어주는게 불가능했다.
그래서 일단 Update함수로 퀘스트 매니저의 상태를 확인해서 이펙트를 활성화했다.
public class QuesteClearEffect : MonoBehaviour
{
[SerializeField] private Image image;
private Color color;
private void Start()
{
color = image.color;
}
private void Update()
{
if(Manager.Quest.CurrentQuest.objectiveValue <= Manager.Quest.CurrentQuest.currentValue)
{
color.a = 0.5f;
image.color = color;
}
else
{
color.a = 0f;
image.color = color;
}
}
}
Color로 사용한 이유는 UI - Image는 SetActive 함수가 사용이 안되서 색상을 변경했다.
아니면 오히려 SetActive를 사용하면서 생기는 부하를 줄여지지 않나 생각도 든다.