개인 포폴 작업 7일차 ..
확실한 기획 없이 진행하려니까 뭐부터 해야할지 생각이 안드는 부분이 있어서
전체적인 기획을 했다.
그냥 노션으로 이것저것 정해서 정리해두니 시간이 꽤 많이 흘렀다.
그리고 인트로 씬을 만들었다.
그리고 취소를 눌렀을때 종료 팝업과
불러오기버튼을 눌렀을때 띄울 UI 작업을 했다.
자동 저장 슬롯, 슬롯1 , 슬롯2로 총 3개의 불러오기 칸을 만들어놨다.
UI를 전부 다바꿔서 이것도 좀 걸렸다.
그리고 게임에 쓸 배경음, 레이저총 효과음, 제트팩 엔진소리 등등 여러가지 BGM을 에셋스토어에서 다운 받았다.
마지막으로 어디서든 접근해서 사운드를 관리할 사운드매니저를 싱글톤패턴으로 만들어 주었다.
#region BGM 사운드 기능
private AudioSource _BgmAudio = null;
public AudioSource BgmAudio
{
get
{
//항상 카메라에 달린 오디오 소스를 가져옴
if(_BgmAudio == null)
_BgmAudio = Camera.main.GetComponent<AudioSource>();
return _BgmAudio;
}
}
private float _BgmVolum = 0.5f;
//BgmVolume을 수정하면 BGM오디오 소스 볼륨이 수정되도록
public float BgmVolume
{
get => _BgmVolum;
set
{
_BgmVolum = value;
BgmAudio.volume = _BgmVolum;
}
}
public void SetBGM(AudioClip clip , bool loop = false)
{
BgmAudio.clip = clip;
BgmAudio.loop = loop;
BgmAudio.Play();
}
#endregion
BGM 오디오 소스는 항상 카메라에 달아놓을거기 때문에 프로퍼티로 오디오소스를 가져오게 했다.
볼륨은 BgmVolume이라는 변수에 접근하면 set에서 설정하게 해두었고,
재생시킬 오디오 클립을 바꾸는 함수를 만들어 주었다.
#region 이펙트 오디오소스 기능들
//몬스터,캐릭터,NPC등 이펙트 오디오소스를 관리할 리스트
public List<AudioSource> EffectSource = new List<AudioSource>();
private float _EffectVolume = 0.5f;
//이 프로퍼티로 접근하여 수정 하면 모든 이펙트오디오 소스들 볼륨이 수정됨
public float EffectVolume
{
get => _EffectVolume;
set
{
_EffectVolume = value;
ChangeEffectVolume(_EffectVolume);
}
}
//이펙트 오디오 소스를 리스트에 넣어줄 함수
public void AddEffectSource(AudioSource myAudio)=> EffectSource.Add(myAudio);
//이펙트 오디오 소스를 리스트에서 삭제시킬 함수
public void DeleteEffectSource(AudioSource myAudio) => EffectSource.Remove(myAudio);
//씬을 이동하거나 할 때 클리어 시킬 함수
public void ClearEffectSource() => EffectSource.Clear();
//일괄적으로 리스트에 있는 이펙트소스 볼륨을 바꾸는 함수
public void ChangeEffectVolume(float V)
{
foreach(AudioSource Audio in EffectSource)
{
Audio.volume = V;
}
}
#endregion
이펙트 오디오 소스는 캐릭터,몬스터,npc까지 한두개가 아닐거기 때문에 리스트로 관리를 하게끔 만들었다.
오브젝트가 생성될때 AddeffectSource로 리스트에 담아두고,
만약 옵션에서 이펙트 사운드를 수정하면 프로퍼티에서 ChangeEffectVolume함수를 호출해서
foreach문으로 전부 돌려주며 리스트에 있는 모든 오디오소스의 볼륨이 수정되게 해두었다.
내일은 씬이동관련 스크립트와 로딩화면을 만들거고,
옵션창 UI는 그냥 전체화면으로 만들어서 메인화면과 게임화면에서 동시에 쓰게 할 예정이다.
오늘은 열심히 3d모델이나 찾아보다 자야겠다.
개인포폴작업 7일차 끗
'개발일지 > Unity 개인 포트폴리오 개발일지' 카테고리의 다른 글
개인포폴 작업 9일차 / 달팽이 몬스터 구현 (0) | 2022.06.25 |
---|---|
개인포폴 작업 8일차 / 몬스터 & 배틀시스템 인터페이스 구현 (0) | 2022.06.24 |
개인포폴 작업 6일차 / 블렌더 본 리깅 & 기능구현과 버그수정 (0) | 2022.06.22 |
개인포폴 작업 5일차 #2 / 넉백기능 구현 (4) | 2022.06.21 |
개인포폴 작업 5일차 / 유니티 리모트 & 공격 및 스킬 구현 (0) | 2022.06.20 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!