728x90

필요한 신

1. 타이틀 신 

1.1 인트로

1.2캐릭터선택창

1.3 튜토리얼

2. 메인 신 

2.1 인벤토리

2.2 강화

2.3 퀘스트 및 업적

3. 인게임 신

3.1 캐릭터 구현 

3.2 스킬 구현

3.3 몬스터 구현

3.4 몬스터 패턴

3.5 아이템 드랍

 

 

메인메뉴는 여러개 버튼을 만들기보다는 그냥 렌더러 텍스처로 4명의 캐릭터 띄우고 아래에 RPG PROJECT 쓴후 마무리 할 예정이다. 굳이 여러개의 메뉴가 필요없을거라 생각했기때문이다.

 

 

캐릭터 생성신에서 캐릭터를 가져온후 여기서는 준비동작만 하고있으면되기때문에 모든 스크립트 및 collider rigdbody 삭제후 animator 새로 추가후 idle 상태로 바로연결해주었고 

 

아래보이는것처럼 render texture 생성 카메라 위치를 fighter 쪽으로연결 

 

 

 

4캐릭다 완료하고 나면 이런 식으로 나오고 이제 배경만 집어넣어주면된다. 

 

 

배경을 적당한걸 찾기힘들어서 일단은 클릭을하면 신이옮겨지게끔 코딩을했다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class TitleClickManger : MonoBehaviour
{
   
    public void TitleClick()
    {
        if(Input.GetMouseButtonUp(0))
        {
            SceneManager.LoadScene(1);
        }
    }
}

 

항상 똑같이 빈오브젝트 생성 스크립트생성 이름을 맞춰주고 진행하였다.

 

그러고선 MenuPanel 에 버튼을 추가해 온클릭 으로 읽게하였고 왜냐하면 update를 굳이쓰게된다면 퍼포먼스를 좀더 잡아먹기때문에 정말 필요할때말고는 update는 안쓰는게 좋다고배워서 그랬다.

 

그리고 씬을 넘어갈때 어두워지는게 있어서 

Create신으로가서 상단에 Window - Rendering - Lighting 클릭후 아래 Generate Lighting 을 클릭하여 설정하여주었다. 

 

 

 

 

넘어갈때 씬로딩이 오래걸리는거 같아서 일단 로딩신까지 만들기로했다.

 

로딩신은 만들어본적이없어서 일단은 유튜브를 보고 배웠다.

 

https://www.youtube.com/watch?v=xRiqSmUggpg&t=126s 

 

 

유튜브 코딩을 똑같이 따라치면 내 실력이 안는다는걸 알지만 로딩화면을 직접 구현해본적이없어서 일단은 똑같이 따라쳤고  영상을 2~3번 돌려보면서 왜 이렇게 코딩을 했는지 중점적으로 봤다.

 

 

 

 

재생을 해보니 메인씬이 나올때부터 음악이나와서 캐릭터 선택이 끝날때까지 나오는게 좋을거같아서 다시 코드를 짜보려고한다 .

 

타이틀 씬에서

bgm 게임오브젝트 생성후 

 

오디오소스 추가 및 스크립트 생성후 추가 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TitleBGM : MonoBehaviour
{
    
    static AudioSource bgm;

    private void Awake()
    {
        DontDestroyOnLoad(transform.gameObject); // 오브젝트가 부서지지않게 
        bgm = GetComponent<AudioSource>();   //bgm연결 
    }

    public static void PlayMusic()
    {
        if (bgm.isPlaying) return; //bgm 이 플레이중이라면 return
        bgm.Play(); 
    }


    public static void StopMusic()
    {
        bgm.Stop();
    }
}

 

 

static 으로 한이유는 다른 스크립트에서도 쉽게 선언하기위해서다.  instance를 해도되지만 오늘 static 으로 하는것도 배웠기때문에 복습하는 개념으로 써봤다.

 

그리고 TitleManger 스크립트에서 메뉴판넬이 켜질때 브금이 틀어지도록 

IEnumerator DelayTime(float time)
    {

        yield return new WaitForSeconds(time);
        intropanel.SetActive(false);
        menupanel.SetActive(true);
        TitleBGM.PlayMusic();
    }

 

추가해줬다. 

 

 

 

 

내일은 원래는 PlayerPrefab 으로 닉네임을 저장해서 그냥 간단하게 플레이를 할려했지만 

 

일단은 서버를 써보는게 좋을거같아서 뒤끝서버를 이용해 가입 및 로그인 닉네임 까지 등록해보려한다. 

반응형