DontDestroyOnLoad 를 사용하면 강제로 파괴하지 않는한 오브젝트가 씬 전환에서도 파괴되지가 않게 됩니다. 이 코드를 적으면 하이어라키 창에 DontDestroyOnLoad 항목으로 따로 빠지게 됩니다. docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html
궁금한게 있습니다. UI 버튼 누를때 소리를 출력하고싶은데 다른 씬에는 실행전에는SoundManager이 없으니까 SoundManager를 프리펩으로 만들고 해당 UI버튼에 이벤트를 설정하고 SoundManager스크립트는 public void SFXPlay(AudioClip clip)로 매개변수를 수정해서 사용해도 문제가 없을까요?
UnassignedReferenceException: The variable mixer of Sound has not been assigned. You probably need to assign the mixer variable of the Sound script in the inspector. Sound.SFXPlay (System.String sfxname, UnityEngine.AudioClip clip) (at Assets/script/Sound.cs:56) Player.Atk () (at Assets/script/Player.cs:238) 이런 오류가 뜨는데 해결 방법을 모르겠습니다 public AudioSource bgSound도 같은 오류가 나왔는데 bgsound = gameObject.GetComponent(); 이걸 awake에 넣으니 해결됬습니다 audiomixer는 컴포넌트가 아니라서 안되는거 같은데 뭐가 문제일까요..
이 영상으로 모든 게임에서 적용 가능합니다. 02:05 사운드 매니저 - 효과음 부분에서 사용한 것을 이용하시면 됩니다. 똥이 터지는 소리를 넣고 싶다면 똥이 부딪히는 부분인 oncollisionenter2d 함수에서 SFXPlay() 함수를 호출하면서 재생할 클립을 인자값으로 넘겨주기만 하면 됩니다.
@@moonsungcho5065 코드는 정확하게 적으신것 같습니다. clip 을 변수로 설정하고 인스펙터에 효과음 파일을 넣어줬는지 확인해보세요. 그래도 에러가 난다면 프로젝트 폴더에서 Assets , ProjectSettings 폴더를 압축해서 메일로 보내주시면 확인 후 답장드리겠습니다. giggles.yhg@gmail.com
감사합니다. 졸업 프로젝트로 유니티 게임 개발중인데 많은 도움 받고 있습니다 ㅠ 한가지 궁금한점이 0Prologue -> 1MainMenu -> 2Stage -> 3Boss 순으로 씬이 이동중이고, 그에 맞춰서 사운드 이름도 0Prologue -> 1MainMenu -> 2Stage 으로 만들고 3번째까지 넣었는데, boss 스테이지에서는 배경음을 안나오게 하려면 어떻게 해야할까요? 한가지 더 질문이, 제가 생각했을땐 if (arg0.name == bglist[i].name) { BGSoundPlay(bglist[i]); } else { bgSound.Stop(); } 이렇게 하면 될줄 알았는데, 0Prologue에서 1MainMenu으로만 씬이 이동해도 음악이 중지되던데 왜 그런걸까요?
내용 깔끔하고 이해가 정말 잘 되네요 감사합니다!
오디오 믹서의 존재를 찾고 있었습니다.
감사합니다.
필요했던 강의!! 항상 간단하게 알려주셔서 좋습니다
ㅎㅎ 감사합니다! :D
입문하는데 있어 쉽게 설명해주셔서 이해가 잘됩니다 감사합니다!
정말 정말 잘 보고 있습니다.
오디오야 말로 게임 몰입감을 높히는 요소중 하나죠! 효과음에서 큰 도움 됬습니다 앞으로도 좋은 영상 기대할게요! 곰바~~
공감합니다! 음향까지 완벽하면 정말 몰입도가 배로 올라가는 것 같습니다! ㅎ 감사합니다! :D
사운드에 대해 찾아보다가 영상을 보게 되었습니다. 엄청 깔끔하게 잘 설명해 주시는군요! 댓글로 사람들이 질문하는 것에도 하나하나 친절하게 답해주시는 것을 보고 멋있다고 느꼈습니다. 혼자서 프로젝트를 해보는데 도움이 많이 되었습니다. 감사합니다.
부족한 영상인데 좋은 말씀까지! 감사합니다! :D
수능 6일 남았는데 유튜브를 보고있다니...ㅠ 사운드 관련해서 궁금한건 거의 다 들어가있어서 알차네요 수능 끝나고 곰님 영상 정주행 갑니다 댓글 알림으로 혼내드리죠 흐으으..
수능 화이팅입니다! 코로나 조심하시고 컨디션 유지해서 좋은 결과 있길 빕니다! ㅎㅎ 댓글 알림으로 혼내주신다니... 언제나 환영입니다!ㅎ 감사합니다! :D
와 사운드 끝판왕이네 ㄷㄷ
이 강의.. 맛있다...
와~덕분에 도움 많이 되었습니다. 감사합니다.
ㅎㅎ 감사합니다! :D
감사합니다 ^^
잘봤습니다~ 👍
감사합니다 ! :D
이런 강의를 원하고 있었어...!
ㅎㅎ 감사합니다! :D
자신만의 사운드매니저
오브젝트매니저(풀링) 을 만들고 발전시키는 과정을 보는게 가장 뿌듯한 결과물이지 않나 생각합니다
맞아요! 하나 둘 만들어 놓으면 나중에 다시 사용하기도 좋고요! ㅎㅎ 감사합니다! :D
사운드까지!! 게임이 완성된것 같아요 ㅋㅋ
ㅎ 얀곰님은 올해 게임 출시 계획있으신가요??
간단한 모바일 게임 만들고는 있는데 게을러서 하루에 코드 한줄씩만 진도가 나가네요 ㅠ... ㅎㅎㅎ
ㅋㅋㅋ 올해는 우리모두( 저, 얀곰님, 고라니님) 멋진 겜을 출시해 보아요!!
ㅋㅋ 저도 한줄씩 하고 있거든요 ㅋ
@@gamedev.1166 출시까지 화이팅!! :D
메인카메라 포지션을 바꾼 이후로 유니티에서 플레이 버튼을 눌렀을때 오디오 소스의 소리가 전혀 들리질 않습니다.
게임 탭의 뮤트 오디오를 건드린 적도 없는데 원인이 무엇인지 모르겠습니다.
오디오 소스의 스페셜 블렌드를 2D로 해도 소리가 안나는데 왜그런걸까요
SoundManager의 Awake 함수 안에 Destroy(gameobject)를 넣으신 이유가 뭔가요?
어떤 이유로 오류가 계속 발생하는데 이것과 관련이 있는 것 같아 질문합니다.
사운드매니저를 하나만 존재하게 만드는 코드입니다. 싱글톤패턴에 관한 자료를 찾아보시면 됩니다.
@@DevGomDal 근데 씬을 왔다갔다 하다가 어느 순간에 사운드매니저의 AudioSource가 파괴되어서 음악 재생이 안 되더라고요.....ㅠ
음....원래 컴포넌트는 스크립트로 파괴해도 인스펙터에서는 컴포넌트가 사라졌다고 실시간으로 나타나지 않는 건가요?
DontDestroyOnLoad 를 사용하면 강제로 파괴하지 않는한 오브젝트가 씬 전환에서도 파괴되지가 않게 됩니다. 이 코드를 적으면 하이어라키 창에 DontDestroyOnLoad 항목으로 따로 빠지게 됩니다. docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html
궁금한게 있습니다.
UI 버튼 누를때 소리를 출력하고싶은데 다른 씬에는 실행전에는SoundManager이 없으니까
SoundManager를 프리펩으로 만들고 해당 UI버튼에 이벤트를 설정하고
SoundManager스크립트는 public void SFXPlay(AudioClip clip)로 매개변수를 수정해서 사용해도 문제가 없을까요?
SoundManager가 씬 이동에도 파괴되지 않게 만들어주고 버튼에서 스크립트를 추가 여기에 메서드를 만들고 sfxplay를 호출해주게 만들고 onclick 이벤트에 버튼에 추가한 스크립트의 메서드를 연결해주면 될 것 같습니다.
씬이 바뀌어도 배경음이 끊기지 않고 연속으로 재생되게 할 수 있나요?
클립 하나 더 추가하고 싶은데 어떻게 하면 되나여?
스크립트 입력 후 Bglist 에 음악을 넣고 실행을 시켰는데 AudioClip은 계속 None 상태입니다 ㅠㅠ 어디를 손봐야할까요?
씬 이름과 음악의 이름을 똑같이 맞춰주셨나요?
@@DevGomDal 헉 그러네요 감사합니다!!
믹서추가할때 굳이 스크립트내에서 추가해줄 필요있나요? 인스펙터상에서 마무리 지어도 되지않나요
영상에서 효과음은 동적으로 생성하기에 인스펙터 상에서 추가를 할 수 없습니다. 또 영상은 정보 전달이 목적이기에 하나라도 더 넣어서 알려드리는 것이 좋다고 생각합니다.
@@DevGomDal 아 이편만 보다보니 제가 몰랐네요 ㅎㅎ 답변 감사합니다
UnassignedReferenceException: The variable mixer of Sound has not been assigned.
You probably need to assign the mixer variable of the Sound script in the inspector.
Sound.SFXPlay (System.String sfxname, UnityEngine.AudioClip clip) (at Assets/script/Sound.cs:56)
Player.Atk () (at Assets/script/Player.cs:238)
이런 오류가 뜨는데 해결 방법을 모르겠습니다 public AudioSource bgSound도 같은 오류가 나왔는데 bgsound = gameObject.GetComponent(); 이걸 awake에 넣으니 해결됬습니다 audiomixer는 컴포넌트가 아니라서 안되는거 같은데 뭐가 문제일까요..
SoundManager 스크립트 inspector창에 mixer를 안넣어서 그렇내요;; 진짜 개멍청하내
오디오 믹서할때 코드 안하고 그냥 오브젝트에 넣었는데 실행이 되네요.. 꼭 코드 안해도 되는부분인가요?
네 코드, 인스펙터 상에서 직접 연결은 편하신 방법을 사용하시면 됩니다. 단, 동적 생성을 할 경우에 코드를 사용하여 추가하는 방법 밖에 없어서 전부 다루고 있을 뿐입니다.
Dev GomDol 감사합니다! 혹시 질문 하나 해도 될까요? 하신거처럼 브금 노래랑 캐릭터 효과음이랑 같이 넣어서 게임 비슷하게 만들었는데 캐릭터가 죽었을때나 게임이 끝났을때 노래가 끝나게 하려면 그거는 어떻게 또 따로 코드를 짜야하나요?
구독 누르고 갑니다 ㅎㅎ
감사합니다! :D
혹시 똥피하기 사운드 넣는것도 알려주실수 있나요..ㅠ
이 영상으로 모든 게임에서 적용 가능합니다.
02:05 사운드 매니저 - 효과음
부분에서 사용한 것을 이용하시면 됩니다.
똥이 터지는 소리를 넣고 싶다면
똥이 부딪히는 부분인 oncollisionenter2d 함수에서
SFXPlay() 함수를 호출하면서 재생할 클립을 인자값으로 넘겨주기만 하면 됩니다.
@@DevGomDal ㅠ 말씀하신대로 했는데
private void OnCollisionEnter2D(Collision2D collision)
{
Soundmanager.instance.SFXPlay("Poop", clip);
if (collision.gameObject.tag == "Ground")
{
GameManager.Instance.Score();
animator.SetTrigger("poop");
}
if (collision.gameObject.tag == "Player")
{
GameManager.Instance.GameOver();
animator.SetTrigger("poop");
}
}
}
이렇게 했는데 자꾸 오류가 뜨네요 뭐가 문제인거죠 ㅠㅠ 코딩 초보라서..ㅠ 조금 어렵네요 ㅠㅠ
@@moonsungcho5065 코드는 정확하게 적으신것 같습니다. clip 을 변수로 설정하고 인스펙터에 효과음 파일을 넣어줬는지 확인해보세요. 그래도 에러가 난다면 프로젝트 폴더에서 Assets , ProjectSettings 폴더를 압축해서 메일로 보내주시면 확인 후 답장드리겠습니다. giggles.yhg@gmail.com
@@DevGomDal 메일 보냈습니다 ㅠㅠ 도와주셔서 너무 감사합니다..ㅠ
배속안해도 될거 같아요
감사합니다. 졸업 프로젝트로 유니티 게임 개발중인데 많은 도움 받고 있습니다 ㅠ
한가지 궁금한점이 0Prologue -> 1MainMenu -> 2Stage -> 3Boss 순으로 씬이 이동중이고,
그에 맞춰서 사운드 이름도 0Prologue -> 1MainMenu -> 2Stage 으로 만들고 3번째까지 넣었는데, boss 스테이지에서는 배경음을 안나오게 하려면 어떻게 해야할까요?
한가지 더 질문이, 제가 생각했을땐
if (arg0.name == bglist[i].name)
{
BGSoundPlay(bglist[i]);
}
else
{
bgSound.Stop();
}
이렇게 하면 될줄 알았는데, 0Prologue에서 1MainMenu으로만 씬이 이동해도 음악이 중지되던데 왜 그런걸까요?
if( SceneManager.GetActiveScene().name == "3Boss") bgSound.Stop(); 을 사용해 보세요