본문 바로가기
개발일지/게임개발

[유니티 게임 개발] 동방을 걷다 프로젝트 11 - NPC 마리사 추가 2024 05 29(AM 00:30)

by 라이티아 2024. 5. 29.

현재 듣고있는곡

乱躁滅裂ガール - れるりり

고오오오전 곡이다

그렇지만, 특유의 악기 센스가 돋보이는 곡 중 1개이다

나중에 참고 하면서 작곡에 활용해보고 싶다

 

 

 

여기에 마리사와 대화하는 장면을 만들 계획이다

 

이미 레이무와의 대화 장면을 구현해 두었으니, 그것의 연장선이라 생각하면 편하다

 

대충 이런 느낌이 될 것 같다

 

역시 복붙이 최고야! 짜릿해!

(이미 미쳐버린 개발자이다)

 

UI가 추가되었으니 UI매니저도 추가해준다

 

이제 텍스트를 추가 하려고 보는데...

갓 뎀......

 

이미 텍스트 매니저가 레이무 전용으로 만들어져 버렸다

 

따로 마리사 전용의 텍스트 매니저를 만들어 주도록 하자

 

마리사 전용의 txt 매니저를 따로 만들어 주었다

 

만드는 과정은 이전의 글에서 다룬적 있으니 여기서는 더 설명하지 않겠다

 

이제 텍스트로 사용될 엑셀 파일을 마리사용으로 만들어 볼것이다

나 문과 아니라고!!!!!

 


대충 앞 텍스트만 만들어서 테스트를 해보자

대충 이런 느낌이 될 것 같다

 

 

이제 마리사가 있는 장면으로 이동하는 장소를 구현 해볼 것 이다

 

레이무가 있는 곳으로 이동하는 버튼 기능을 수정해서 사용할 예정이다

 

using UnityEngine;
using UnityEngine.SceneManagement;

public class goto_reimu : MonoBehaviour
{
    // 버튼을 눌렀을 때 호출되는 함수
    public text_manager text_Manager;
    public GPSManager player;
    public CameraSwitch C;
    public GameObject text_M;
    public AudioSource Sound;
    // 버튼을 눌렀을 때 호출되는 함수
    public void GoTo()
    {
        Sound = GetComponent<AudioSource>();
        Soundmanager.Instance.Playsound("hakurei");
        if(text_Manager.is_First == false)
            text_M.GetComponent<text_manager>().DisplayNextSentence();
        player.ismove = false;
        C.isCameraActive = 4;
    }
}

이게 원래 하쿠레이 신사로 이동하는 스크립트인데, 이걸 수정해서 사용할 것 이다

 

public class goto_marisa : MonoBehaviour
{
    // 버튼을 눌렀을 때 호출되는 함수
    public Mrisa_text_manager text_Manager;
    public GPSManager player;
    public CameraSwitch C;
    public GameObject text_M;
    public AudioSource Sound;
    // 버튼을 눌렀을 때 호출되는 함수
    public void GoTo()
    {
        Sound = GetComponent<AudioSource>();
        Soundmanager.Instance.Playsound("hakurei");
        if(text_Manager.is_First == false)
            text_M.GetComponent<Mrisa_text_manager>().DisplayNextSentence();
        player.ismove = false;
        C.isCameraActive = 5;
    }
}

필요한 부분만 수정해서 사용한다

 

마리사의 장면에 진입하는 버튼을 활성화 하는 스크립트도 작성한다

public class marisa_house : MonoBehaviour
{
    public GameObject button; // 버튼 GameObject를 저장할 변수

    // 충돌이 시작될 때 호출되는 함수
    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player")) // 충돌한 객체가 Player 태그를 가지고 있는 경우
        {
            //Debug.Log("마리사집 충돌");
            if(button != null) // 버튼이 유효한 경우에만 실행
            {
                button.SetActive(true); // 버튼을 활성화
            }
        }
    }

    // 충돌이 종료될 때 호출되는 함수
    private void OnTriggerExit2D(Collider2D other)
    {
        if (other.CompareTag("Player")) // 충돌한 객체가 Player 태그를 가지고 있는 경우
        {
            if(button != null) // 버튼이 유효한 경우에만 실행
            {
                button.SetActive(false); // 버튼을 비활성화
            }
        }
    }
}

플레이어가 마리사 집 장소 표식과 충돌하고 있으면 버튼이 true가 되어 누를 수있는 상태로 만들어준다

 


이렇게 말이다

 

 

이제 마리사도 완성했으니, 다음은 홍마관의 파츄리가 될 것 같다

 

마리사는 야바위 도박장 미니게임을 만들까 싶다 ㅇㅅㅇ