튜토리얼 네비게이션(방향 시스템) 마무리, 스테이지 수정, 스테이지 요소 추가
오늘은 튜토리얼에서 방향을 알려주는 네비시스템을 만들어보았다.
먼저 방향을 보여주는 sprite를 캔버스의 worldspace에 이미지로 넣어주었다. 그리고 별로 사용하고 싶지는 않지만 던전 씬이 로드되면 플레이어를 부모로 만들어 밑에 존재하도록 하였다.
이러면 플레이어가 움직일때 목적지의 방향을 알려주어 편할거라 생각되었다.
그리고 목적지들도 여러곳이 있으니 Transform배열로 만들어 주었고, 목적지에 도달하면 다음 목적지를 향하도록 하였다.
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class FindWayHelper : MonoBehaviour
{
[SerializeField] private Transform[] target; // 목적지 오브젝트
[SerializeField] private Transform arrow; // 화살표 오브젝트
[SerializeField] private float arrivalThreshold = 3f;
private int curTargetIndex = 0;
private TutorialController controller;
private void Start()
{
controller = GetComponentInParent<TutorialController>();
curTargetIndex = controller.curIndex;
GameObject player = GameObject.FindWithTag("Player");
if(player != null)
{
transform.SetParent(player.transform);
}
}
private void Update()
{
if (target == null || arrow == null) return;
Transform curTarget = target[curTargetIndex];
Vector3 dir = curTarget.position - arrow.position;
dir.y = 0f;
if(dir != Vector3.zero)
{
arrow.rotation = Quaternion.LookRotation(dir);
}
float distance = Vector3.Distance(arrow.position, curTarget.position);
if (distance <= arrivalThreshold)
{
NextTarget();
}
}
private void NextTarget()
{
curTargetIndex++;
if (curTargetIndex >= target.Length)
{
enabled = false;
}
}
}
하지만 조금 더 손 봐야할 부분은 튜토리얼에도 트리거를 이용하여 ui를 보여주고 하는 부분들이 있는데 겹치는 부분인거같기도 하고 목적지에 도달한 위치를 범위를 arrivalThreshold로 지정해주고 있는데 너무 넓히기도 뭐하고 살짝 문제가 있어 보였다. 순서또한 목적지에 도달하면 넘어가는 것 이것도 뭔가 튜토리얼에서 같이 관리해주면 좋겠다는 생각이 들었다.
하지만 일단은 넘어가도록 하였다.
먼저 튜토리얼를 마무리 해야해서 튜토리얼 맵 디자인 작업을 했다.
튜토리얼 순서에 맞게 움직임과 점프 설명이 나오고, 다음 장소로 이동하면, 트리거에 닿아 다음 튜토리얼이 진행된다. 트리거를 이용해 진행되는 부분도 있고, 튜토리얼 컨트롤러의 순서에 따라 순차적으로 실행되기도 한다.
일단은 움직임,점프 설명 -> 대쉬 설명 -> 퍼즐 설명 -> 포탈 설명 -> 클리어 순으로 1스테이지를 구성하였다.
2스테이지까지는 튜토리얼로 구성해야될 것 같다.
몬스터 전투 -> 아이템 획득 및 장비템 장착 -> 클리어
로 일단은 2스테이지까지의 튜토리얼은 마무리하였다.
여기서도 아쉬움이 남는 부분은 몬스터를 죽였을 때 정보와 인벤토리의 정보를 불러오는 것이 음..잘 되지 않기도 하고,, 다른 파트에서 작업을 해줘야 되기도 하고 해서 일단은 글로만 튜토리얼을 진행하게 되었다. 할 것이 많기에..
이쯤에서 일단은 튜토리얼은 마무리 하도록 하고 내일은 스테이지가 너무 휑해서 각 스테이지에 맞는 퍼즐 요소들과 장애물 등 스테이지를 재밌게 구성할 요소들을 추가해볼 예정이다. 끝.