4월29일 부터 8월2일까지 어떻게 보면 길고도 짧았던 프로젝트 리뷰를 남긴다.

현재 플레이스토어에 비공식으로 테스트 버전으로 올라가 있다.

 

기존의 게임을 똑같이 오마주 삼기보다 여러 게임의 아이디어를 가져와 종합하느라,

레퍼런스라고 딱히 지정할 것이 없어서 "창작"이라고 생각하는데 가깝다.

그렇기에 팀원들이 한 곳을 바라보아야 하는데 각자 생각하는 프로젝트의 그림이 달라서 이 점을 종합하는데

다소 시간이 들였다.

 

하지만 우리는 Papter prototype을 통해 게임의 재미를 입증하였고, 의견을 모을 수 있었다.

필자는 "던전 추적자"라는 프로젝트를 동시에 했기에 몇달간 하루에 4시간 가량만 잠을 자며 정말 바빴다.

하지만 돌이켜 생각해보면 우리가 원했던 '개발자가 해도 만족스러운 게임'을 지향하며 달려온 길은 행복했다.

다들 고생이 많았고, 모두에게 행복한 기억으로 남았으면 좋겠다.

 

게임 시작 씬

 

로비 씬

 

특성 창
카드 도감 창
설정 창
마지막 특성 활성화 후, 게임 시작 시 선택 창
초기 카드 선택 씬
시작 스토리
맵 씬
아이템 인벤토리와 스탯 창
준비 카드 인벤토리
행동카드 인벤토리
전투 씬
게임 승리 및 패배 씬
크레딧

처음 도감켰을 때와 닫기 누르고 도감 버튼으로 눌렀을 때

 

프로그램 종료하고 다시 켰을때 색깔 유지 및 조정

 

+ 도감이 켜져있을 때 도감 버튼 다시 누르면 도감창 꺼짐

대화 씬의 예외처리 재수정하여 적의 이미지가 남아 있거나,

적의 이름이 나오지 않는 점 수정

 

 

 

룰렛을 돌렸을 때 폭탄이 나왔을 시 랜덤한 종류의 아이템이 출력되어 적용됨.

아이템을 획득시 가방에 저장됨.

각각의 룰렛에 있는 물약이미지들은 각각 다른 아이템을 준다.

이 중에서 파란색 물략 이미지가 나올 경우 3개의 비약중에 랜덤을 1개를 획득하여

가방에 저장한다.

 

'Project > Skill Steal Girl' 카테고리의 다른 글

[SSG] 대화, 룰렛 수정  (0) 2024.07.08
[SSG] 룰렛을 돌려 나온 아이템 획득하기  (0) 2024.07.03
[SSG] 대화창에 배경적용 시키기  (0) 2024.06.30
[SSG] Dialog Canavs Btn Test  (0) 2024.06.23
[SSG] Dialog RnD  (0) 2024.06.15

대화하는 인물과 대화를 케이스로 분류해놨는데

그에 맞춰 배경까지 연결

배경 리소스를 더 구하고

캐릭터가 각각 말할 때 DOTween을 이용하여 알파 값 처리할 필요가 있음

+ 대화하는 인물 연결 및 커멘터리(해설자 시점) 처리 필요

 

 

처음에 버튼을 클릭후 캔버스를 띄어주고

버튼이 사라져야 하는데

사라지지 않아 카메라의 렌더 타입을 Overlay -> base 바꾸니 해결되었다.

 

게임에 사용할 스토리 제작

캐릭터의 이름이 주인공인지 적인지 구별하여

그에따라 대화의 id를 찾아서 대화를 띄어주는 것 연구중..

 

using System.Collections;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class UISound : MonoBehaviour
{
    public AudioSource backgroundAudioSource;
    public AudioSource effectAudioSource;

    public Slider backgroundSoundSlider;
    [SerializeField] private TMP_Text backgroundSoundAmount;

    public Slider effectSoundSlider;
    [SerializeField] private TMP_Text effectSoundAmount;

    private int backgroundSoundValue;
    private int effectSoundValue;

    private IEnumerator CoPlay;
    private IEnumerator CoEffect;

    void Start()
    {
        // 슬라이더 값 로드
        LoadSoundSettings();

        backgroundSoundSlider.onValueChanged.AddListener(delegate { UpdateBackgroundSoundAmount(); });
        effectSoundSlider.onValueChanged.AddListener(delegate { UpdateEffectSoundAmount(); });

        UpdateBackgroundSoundAmount();
        UpdateEffectSoundAmount();

        CoPlay = CoPlayBackgroundMusic();
        StartCoroutine(CoPlay);
        CoEffect = CoPlayEffectMusic();
        StartCoroutine(CoEffect);
    }

    public IEnumerator CoPlayBackgroundMusic()
    {
        backgroundAudioSource.loop = true;
        backgroundAudioSource.Play();

        while (true)
        {
            float backVolume = backgroundSoundValue / 100f;
            backgroundAudioSource.volume = backVolume;
            yield return null;
        }
    }

    public IEnumerator CoPlayEffectMusic()
    {
        effectAudioSource.loop = true;
        effectAudioSource.Play();
        while (true)
        {
            float volume = effectSoundValue / 100f;
            effectAudioSource.volume = volume;
            yield return null;
        }
    }

    void UpdateBackgroundSoundAmount()
    {
        backgroundSoundValue = (int)backgroundSoundSlider.value;
        backgroundSoundAmount.text = backgroundSoundValue.ToString();
        SaveSoundSettings(); // 슬라이더 값 변경 시 저장

        Debug.Log($"Background Sound Value: {backgroundSoundValue}");
    }

    void UpdateEffectSoundAmount()
    {
        effectSoundValue = (int)effectSoundSlider.value;
        effectSoundAmount.text = effectSoundValue.ToString();
        SaveSoundSettings(); // 슬라이더 값 변경 시 저장

        Debug.Log($"Effect Sound Value: {effectSoundValue}");
    }

    void SaveSoundSettings()
    {
        PlayerPrefs.SetInt("BackgroundSoundValue", backgroundSoundValue);
        PlayerPrefs.SetInt("EffectSoundValue", effectSoundValue);
        PlayerPrefs.SetString("BackgroundSoundAmount", backgroundSoundAmount.text);
        PlayerPrefs.SetString("EffectSoundAmount", effectSoundAmount.text);
        PlayerPrefs.Save();

        Debug.Log("Sound settings saved.");
    }

    void LoadSoundSettings()
    {
        if (PlayerPrefs.HasKey("BackgroundSoundValue"))
        {
            backgroundSoundValue = PlayerPrefs.GetInt("BackgroundSoundValue");
            backgroundSoundSlider.value = backgroundSoundValue;
        }
        else
        {
            backgroundSoundValue = (int)backgroundSoundSlider.value;
        }

        if (PlayerPrefs.HasKey("EffectSoundValue"))
        {
            effectSoundValue = PlayerPrefs.GetInt("EffectSoundValue");
            effectSoundSlider.value = effectSoundValue;
        }
        else
        {
            effectSoundValue = (int)effectSoundSlider.value;
        }

        if (PlayerPrefs.HasKey("BackgroundSoundAmount"))
        {
            backgroundSoundAmount.text = PlayerPrefs.GetString("BackgroundSoundAmount");
        }

        if (PlayerPrefs.HasKey("EffectSoundAmount"))
        {
            effectSoundAmount.text = PlayerPrefs.GetString("EffectSoundAmount");
        }

        Debug.Log($"Loaded Background Sound Value: {backgroundSoundValue}");
        Debug.Log($"Loaded Effect Sound Value: {effectSoundValue}");
    }
}

+ Recent posts