사소한 실수 하나 올려봅니다. 코루틴 부분에 IEnumerator 로 해야 됩니다 IEnumerable 로 하면 코루틴이 동작 안하니 주의하세용
@이성의4 ай бұрын
감사합니다
@deuklyoungko58833 жыл бұрын
유니티 강의 중에는 골드메탈님 유튜브가 가장 좋은 것 같아요.
@goldmetal3 жыл бұрын
감사합니다!
@kamisato33635 ай бұрын
다시금 느끼는거지만 골메님 스크립트에는 객체화가 너무 잘 되어있어서 많이 배우고 있습니다
@goldmetal5 ай бұрын
솔직히 말씀드리면 이것도 정리가 덜 된 스크립트입니다 ㅠ 다음 리뉴얼 때는 정말 멋진 캡슐화 스크립트로 찾아오겠습니다.
@이양-k7e4 жыл бұрын
항상 고맙습니다 ㅎㅎ 자료들이 준비되 있어서 무척 편해요 골메님 항상 응원합니다
@뿌언-아무거나4 жыл бұрын
와... 진도가 아직 여기까지 안오긴 했는데 엄청 재밌을 것 같네요 빨리 공부해서 여기까지 와야겠어요
@devruby29044 жыл бұрын
엌ㅋㅋㅋㅋ
@김미경-x4m4c4 жыл бұрын
ㅇㅈ
@tillakisea5540 Жыл бұрын
휴 여러 오류가 많이 났지만 오히려 코드를 해석하고 공부하게 되는 계기가 된 것 같아서 너무 좋았습니다 감사합니다!!
@여지호-l6f4 жыл бұрын
많은 도움이 되고 있습니다 골드메탈님 꾸준히 저같은 초보 학생들을위해 올려주셔서 감사합니당~~😇😇
@와비사비룸물질보다정 Жыл бұрын
좋은 강의 입니다 코루틴 굿굿
@사하노라6 ай бұрын
구독하고 갑니다. 좋은 하루 되시길 바랍니다! 감사합니다!!
@pyeongmin12314 жыл бұрын
오늘도 좋은강의 감사합니다.
@치키차-p4i Жыл бұрын
void OnTriggerStay(Collider other)에 있는 디버그 로그 없애니까 무기를 잘 휘두르네요!
@jun2ram22 жыл бұрын
많은 도움이 되고 있어요 너무너무 좋은강의 감사해요
@홍이-w7n2 жыл бұрын
좋은 강의 잘 들었습니다 감사합니다!
@gim-ori Жыл бұрын
동시에 실행한다길레 스레드 개념 같은건가했는데 코루틴 이게 신기하게 작동하네요 와오 신개념이여
@intb6533 жыл бұрын
골드메탈님 강의도 0.75배 하니 딱이네요 잘 들립니다.
@DDRSDS07054 ай бұрын
골드메탈님 항상 잘 보고 있습니다. 제가 문제가 하나 생겨서 그런데 무기나 이런 걸 줍지 않고도 기본적으로 펀치 하나를 가지고 있게 만들고 싶습니다. 제가 원하는 건 망치나 이런 것 없이 그냥 스윙 애니메이션만 재생하고, 마우스 클릭으로 주먹을 휘둘러서 상대를 공격하는 시스템입니다. 아직 중1이다 보니 확실히 어려워서 여쭤봅니다. 아 그리고 B-45 에서 물리엔진 고칠 때 벽 통과만 따로 어떻게 하고 싶은데 방법이 없나요?
@goldmetal4 ай бұрын
무기가 없으면 더 쉬워집니다. 현재는 equipWeapon에 데이터가 있어야지 Attack이 되지만 이 if문을 빼도 되고 그냥 공격키 (여기서는 Fire1)를 누르면 바로 공격 기능을 실행하고 주먹 공격 파라메터를 애니메이터에 전달해주면 됩니다. 물론 애니메이터에는 캐릭터의 주먹 공격 애니메이션 상태를 추가하고 Transition으로 연결해주셔야 해요. 두번째 질문은 제가 이해를 잘 못했습니다. 1번 문제 해결하시고 마음속으로 질문은 정리하신 후에 다시 질문주시면 좋겠어요
@DDRSDS07054 ай бұрын
@@goldmetal 아 그럼 무기가 없을때엔 box collider가 어디에 들어가나요? 그리고 두번째는 혹시 무기가 없어도 B-45 강좌에서 나온 물리엔진 버그를 고칠 수 있나요?
@goldmetal4 ай бұрын
@@DDRSDS0705 네 무기와는 상관없고 공격 범위는 캐릭터 부모 오브젝트 바로 아래 자식 오브젝트로 하나 추가해주시고 약간 몸통 앞쪽에 배치해두시면 됩니다.
@안혜원-n8p3 жыл бұрын
골메님 좋은 강의 감사합니다!!
@llamear4 жыл бұрын
골드메탈님 항상 감사합니다 ㅎㅎ
@김재현-v3f2 жыл бұрын
저번에 리뷰해주신 3인칭 캐릭터 컨트롤 에셋을 이용해 강좌를 다시 리뉴얼하면 엄청날 것 같네요 ㄷㄷ
@gamesoft25044 жыл бұрын
어제 학원에서 코루틴 배웠는대 유튜브가 이 영상 추천해주네 ㅋㅋ
@user-qx6qr6wk8p4 жыл бұрын
조회수가 1천회인데 싫어요가 1개도 없는 유튜버
@beyondmyself1.113 жыл бұрын
내가 함
@B6jePV612 ай бұрын
Trail Renderer 컴포넌트를 껐어야 했는데 컴포넌트가 달린 Effect 게임 오브젝트 자체를 꺼놓아버려서 Trail Renderer 컴포넌트는 껐다 켜지는데 게임 오브젝트는 꺼져 있는 그대로라 트레일이 안 나왔었네요 ㅋㅋ
@사이다-i8x5m3 жыл бұрын
최고에요!! 따라하고 있는데 너무 재밌어요!!
@DungeonsSlimes2 жыл бұрын
"최고의 강의"
@goldmetal2 жыл бұрын
감사합니다! 😄
@jin-r4f4 жыл бұрын
좋은 강좌 감사히 잘보고 있습니다 ^^ 다음 강좌는 언제 볼 수 있을까요?
@goldmetal4 жыл бұрын
다음 주에 올라갈 예정입니다. 조금만 기다려 주세요
@김태영-s2w11 ай бұрын
골든메탈님 저 4:09 박스 콜라이더의 모양 초록색 선이 안 보이는데 기즈모를 어떻게 켜야 하는 거죠?.
@goldmetal11 ай бұрын
하이어라키에서 오브젝트 선택하시고 인스펙터에서 컴포넌트를 펼치시면 됩니다. 컴포넌트 이름 왼쪽의 화살표를 눌러서 펼치세요. 안보인다면 Scene 창의 가장 오른쪽 위에 Gizmo 버튼 눌러서 활성화하시면 됩니다.
@김태영-s2w11 ай бұрын
@@goldmetal아~~ 정말 감사합니다. ㅎㅎ
@NB-up8fs3 жыл бұрын
잘 보고 있습니다 정말 감사합니다
@초코맛누룽지4 жыл бұрын
근데 공격할 때 멈추는걸로 설정하면 점프하면서 때리는게 어색해서 조건을 if (isSwap || (!isFireReady && !isJump)) 이렇게 설정하는게 나을 것 같아요
@이양-k7e4 жыл бұрын
코루틴 강좌 어느 동영상보다 쉽게 이해가 됐습니다. 항상 감사합니다. 근데 3d 애니메이션에선 콜라이더가 로직 없이도 움직이네요. 2d에서도 애니메이션에 콜라이더 이동을 끼울수 있나요?
@goldmetal4 жыл бұрын
네 오브젝트가 움직이면 그 안에 포함된 컴포넌트도 같이 움직입니다.
@user-pf8bc4xf5jКүн бұрын
저는 망치를 휘두를때 Trail Render가 매우 길게 늘어집니다. 망치를 휘두를때 계속 Trail Renderer가 누적되서 저 멀리서 휘두른 이펙트까지 보이게됩니다. Time도 줄여놨고 설정도 영상과 같이 설정하였는데 왜이러는걸까요...
@goldmetal11 сағат бұрын
일단 게임매니저 혹은 플레이어의 Awake에 Application.targetFrameRate = 60; 추가해주시고 다시 테스트해보시는 것이 좋겠습니다.
@pyeongmin12314 жыл бұрын
24:20 여기서 실행하고 아이템을먹어도 장착(스왑,공격도)이안돼요! NullReferenceException: Object reference not set to an instance of an object Player.Swap () (at Assets/Scripts/Player.cs:174) Player.Update () (at Assets/Scripts/Player.cs:65) 이렇게 나옵니다 65번 Swap(); 174번 equipWeapon.gameObject.SetActive(true);
@@goldmetal 딱 이문제에서 헤메고있는데 어디를 확인해야하는 건지를 모르겠어요;;;; 퍼블릭으로 인스펙터창에 있는 항목에 빈칸은 없는거처럼 보이는데 뭔가를 놓친건가요 아님 제가 엉뚱한 곳을 보고있는건지도 모르겠어요;;;
@goldmetal3 жыл бұрын
@@남윤호-e2x 에러 메세지 더블클릭하면 에러난 위치로 안내해줍니다. 그 줄에서 사용된 변수가 무엇인지 파악하시고 왜 Null인지 확인해야합니다. 한번 어떤 변수인지 확인해보세요
@최승원-t3u Жыл бұрын
안녕하세요! 이번에도 정말 좋은 강의 감사드립니다! 질문이 있어서 또 댓글을 달았습니다! 동작 구현에는 아무 문제가 없는데 게임 플레이를 누르면 다음과 같은 창이 뜹니다! [Adaptive Performance] No Provider was configured for use. Make sure you added at least one Provider in the Adaptive Performance Settings. 혹시 어떤 문제를 이야기하는 건지 알 수 있을까요? 감사합니다! 좋은 하루 되세요!
@goldmetal Жыл бұрын
Mobile 템플릿으로 프로젝트를 생성하면 나타나는 에러입니다. Edit > Package Manager 가시면 Adaptive Performance가 있는데 이거 Remove해주시면 됩니다.
@최승원-t3u Жыл бұрын
@@goldmetal 해결했습니다. 감사합니다!
@kimmin369443 жыл бұрын
죄송합니다 애니메이션이 이상하게 보이더라도 전 이동하면서 공격하는건 안막겠습니다!! ㅎㅎ
@조폐 Жыл бұрын
player 스크립트에 GameObject weapon 이 부분을 사용하지 않고 작동할수는 없나요??
@goldmetal Жыл бұрын
지금 활성화된 무기가 어떤 것인지 플레이어 스크립트에서 정보를 가지고 있어야 하므로 필요합니다. 다른 형식 (int) 로도 충분히 바꿀 수 있습니다.
@김수-k2s Жыл бұрын
골드메탈님 이건 별거는 아닌데 혹시 비주얼 스튜디오 폰트를 어떤 거 쓰시는지 물어봐도될까요...? 영상보고 따라 할수록 메탈님이 쓰시는 폰트가 L과 I가 구분이 잘 돼 가지고 따라 쓰고 싶네요....
@goldmetal Жыл бұрын
Consolas 입니다! 제가 제일 좋아하는 코딩 폰트에요.
@김수-k2s Жыл бұрын
@@goldmetal 감사합니다!!
@유정여-g5k5 ай бұрын
항상 잘보고있습니다 근데 공격이 안돼요ㅠㅠ 이유도 없고 20번 돌려보아도 이유를 모르겠어요ㅠㅠ Unity 버젼 문제인가요 에러도 안떠요 ㅠㅠㅠ
@goldmetal5 ай бұрын
워낙 기초적 내용이라 버전과는 상관없습니다. 일단 실행하고 공격을 눌렀을 때 에디터 아래에 에러 메세지가 나오는지부터 확인해보세요
@bjklm385 ай бұрын
혹시 새로운 에니메이션을 추가하고 싶은데 어떻게 해야 할까요?
@goldmetal5 ай бұрын
아쉽게도 제 에셋은 휴머노이드 타입이 아니라서 직접 블렌더에서FBX 불러온 뒤 애니메이션을 추가해야합니다. 애니메이션 만드는 방법은 블로그에서 다루었어요. m.blog.naver.com/gold_metal/220488257312
@delightpal Жыл бұрын
감사합니다~! 영상 보고 많은 공부가 되었습니다. 츗현~ P.S: 기능 구현에는 문제없고 영상을 몇번을 돌려보며 확인했지만, 저는 해머를 휘두를 때에 "Box Collider"에 체크가 되지 않습니다. ㅠㅠ
@goldmetal Жыл бұрын
휘두를 때 에러메세지가 발생하는지 확인해보세요. 특히 meleeArea 변수가 초기화 되었는지 인스펙터에서 확인해보시는 것이 좋겠습니다.
@동네개님-m1q6 ай бұрын
공격을 넣으니까 ArgumentException: Input Button Firel is not setup. To change the input settings use: Edit -> Project Settings... -> Input Manager 이런 오류가 뜨는데 어떻게 하나요?
@goldmetal6 ай бұрын
오타나셔서 발생한 문제입니다. Firel -> Fire
@동네개님-m1q6 ай бұрын
아 감사합니다!
@alodi39633 жыл бұрын
항상 잘 배우고 있습니다. 감사합니다. 공격 모션 중에 멈추는게 아니라 관성으로 조금 나아가면서 공격하고 싶은데 어떻게 하는지 알 수 있을까요? 그리고 근접공격 중간에 trail renderer를 끝내려면 어떻게 해야하나요? 공격모션의 절반정도는 trail renderer 궤적이 있고 나머지 절반은 궤적이 없게 하고 싶어요.
@goldmetal3 жыл бұрын
GetAxisRaw 대신 GetAxis 로 바꾸시면 됩니다. 중간에 없애려면 trailRenderer를 변수에 담아두고 .enable = false; 하면 됩니다. 물론 공격모션이 완전히 끝나면 다음을 위해 다시 true로 돌려놔야 해요
@nog50783 жыл бұрын
좋은 강의 감사합니다!! 예전 강의지만 질문 하나 드려도 될까요..? 21:24 부분 119번째 if문 조건중에서 IsFireReady 때문에 if문이 안돌아가네요…저걸 빼고 돌리면 실행이 됩니다 117번줄 문제인 것 같은데 딱히 오타나 잘못선언한건 찾을 수가 없어서 여쭤봅니다 어디를 뜯어봐야할까요..?ㅠrate값도 넣어줬습니다..
@goldmetal2 жыл бұрын
Attack() 함수가 Update에서 호출 중인지 확인이 필요하겠습니다.
@nog50782 жыл бұрын
@@goldmetal감사합니다!! update문에서 호출을 잘못하고있었네요 답변감사합니다
@yfimm11853 жыл бұрын
안녕하세요 강의 영상 잘 보고있습니다. 25:32 이 부분에서 어색하게 움직이는 부분을 자연스럽게 움직이게 하려면 quad action 팩에 있는 플레이어 모델에서 애니메이터를 만들어줘야 하나요?
@goldmetal3 жыл бұрын
이를 위해서 각 신체부분을 나눠서 애니메이션을 줄 수 있는 휴머노이드 시스템이 있는데 아쉽게도 해당 에셋은 휴머노이드가 아니라서 적용이 어렵습니다. docs.unity3d.com/kr/2018.4/Manual/ConfiguringtheAvatar.html
@fgf11933 жыл бұрын
골드메탈님 ! 영상 잘보고있어요 강의 감사합니다. 마지막로직이 공격중에는 이동이 안되는로직인데 점프 공격중일때도 이동이 정지되네요 저는 점프공격일떄는 되게 하고 싶은데 if (!isFireReady) if (isJump) return; moveVec = Vector3.zero; 이런식으로 썻더니 똑같네요.. 어떻게 하면될까요?
@goldmetal3 жыл бұрын
if (isJump) return; 이걸 빼주시면 됩니다.
@DeRedAgent10 ай бұрын
골드메탈님 에러메세지안뜨고 잘 돌아가는데. 망치가 한번 공격할때 애니메이션이 끝나고 다시 휘둘러야하는데 마우스를 계속 클릭해보면 공격하던 중에 계속 새로 공격을합니다. 그리고 박스 콜라이더가 공격애니메이션끝나는 부분보다 먼저 사라져 타격이 안되고 뒤로 공격하면 박스콜라이더가 닿아 뒤로공격해야 타격이됩니다. 해결 방법이 있을까요?
@goldmetal10 ай бұрын
코루틴에서 지정한 wait 시간과 애니메이션 시간이 안맞아서 그렇습니다. 공격 딜레이를 담당하는 wait는 시간을 조금 더 길게주시면 어떨까합니다.
@DeRedAgent10 ай бұрын
@@goldmetal 감사합니다! 해결되었습니다!
@daesungsong81764 жыл бұрын
좋은 영상 정말 감사합니다! 근데 유니티에서 다국어 처리는 보통 어떻게 하나요?
@goldmetal4 жыл бұрын
모든 UI, 대사 데이터를 XML 혹은 JSON 파일로 저장해둡니다. 이 때 한국어, 영어 등등 각 언어별 파일로 저장하고 설정에서 정해진 언어에 따라 파일을 불러와 데이터를 읽어 화면에 표시하면 됩니다.
@유서연-n7c9 ай бұрын
안녕하세요! 강의 잘 보고있습니다! 강의 느린배속으로 보면서 글자 하나하나 확인까지 했을때 틀린글자가 하나도 없었는데 공격모션이 안나와요ㅠㅜㅜ 공격이 아예 안됩니다ㅜㅜ 도와주세요ㅜㅜㅜㅜ (개발에 아예 기초지식도 없는 사람입니다ㅜㅜ)
@goldmetal9 ай бұрын
일단 플레이하고 조작했을 때 에디터 아래에 빨간색 글씨로 에러가 나오는지부터 확인해주세요!
@유서연-n7c9 ай бұрын
@@goldmetal 빨간글씨는 안나옵니다ㅜㅜ
@유서연-n7c9 ай бұрын
방금 프로젝트셋팅을 스페이스바로 바꿔서 해봤는데 한번 실행되고 튕긴다음 다시 실행이 안될때는 어떻게 해야하나요?
@goldmetal9 ай бұрын
@@유서연-n7c 유니티 에디터가 안된다는 말씀일까요? 컴퓨터 재부팅 이후 다시 실행해보시는 것이 좋겠습니다.
@gyuchanchoi98994 жыл бұрын
안녕하세요 골메님. 개발자가 꿈은 아니지만 정말 순수한호기심으로 이것저것 유니티를 만져보고있는 대학생입니다 골메님의 영상을 통해서 정말 많은 도움이 되고있습니다. 질문드리고싶은게있는데요, 저는 원형입자를 10000개정도 쌓아서 정육면체안에 집어넣고 싶습니다 이때 3d object에서 sphere를 사용해서 10000번 복붙을 하는건 어리석은 짓인걸 알고있습니다. 다른 좋은 방법이 없을까요?
@goldmetal4 жыл бұрын
1. 원형입자를 프리펩으로 저장 2. 프리펩을 저장할 변수 하나 생성 후, 할당 3. for문과 Instantiate() 함수로 반복하여 오브젝트 생성 이렇게 하시면 됩니다. Instantiate()는 B28 챕터 3에서 다루었습니다. kzbin.info/www/bejne/gIaqYXqkqK97h9k
@노윤수-p1e2 жыл бұрын
강의 열심히 보고있는 학생입니다! 늘 감사합니다. 1. 21:37초에 왜 equipWeapon애 있는 use함수인지 모르겠습니다...use 함수는 Weapon에 있는 거 아닌가요..ㅠ 2. 컴파일은 되는데 공격이 되지 않습니다.. 인풋매니저, GetInput에 fire1 넣었고 attack 함수도 업데이트에 넣었고 중간에 Weapon형식 바꾸는 것도 했는데 뭐가 문제일까요.. void Attack() { if(equipWeapon==null) return; fireDelay+=Time.deltaTime; isFireReady= equipWeapon.rate
@goldmetal2 жыл бұрын
1. 선언부를 다시 확인해주세요. Weapon 타입의 equipWeapon 이름의 변수입니다. 실질적으론 Weapon 클래스가 맞습니다. 2. isSwap 앞에도 부정 ! 붙여주세요. 3.간헐적으로 무엇이 발생하는지 알려주세요. 점프가 잘 안된다면 점프 if문 조건 확인해주세요.
@노윤수-p1e2 жыл бұрын
@@goldmetal 해결헀습니다 감사합니다..
@Krispy_Donuts3 жыл бұрын
무기를 한번 휘두르고 나면 코루틴으로 자동으로 비활성화 되긴 하는데 무기를 처음 꺼냈을때 공격을 시도하기 전까진 게속 트리거 설정해둔 콜라이더가 켜져있습니다 무기를 꺼낼때 콜라이더가 자동으로 비활성화 되게 만드려면 어떻게 하죠
@goldmetal3 жыл бұрын
무기 스크립트에 void OnDisable() 생명주기 함수 추가하시고 망치일 때만 공격범위 콜라이더를 비활성화 시키면 되겠습니다.
@신중-v7f3 жыл бұрын
항상 영상 감사드립니다! 혹시 이 방법을 2D 횡스크롤게임에 적용해도 근접공격이 가능할까요?
@goldmetal3 жыл бұрын
2D 캐릭터가 본 애니메이션이면 가능하나 스프라이트 셀 애니메이션 방식이면 캐릭터 오브젝트가 고정된 공격범위 오브젝트를 자식으로 들고 있다가 공격할 때 콜라이더만 활성화 해주는 방식으로 하셔야합니다.
@신중-v7f3 жыл бұрын
@@goldmetal 앗 감사합니다!😀
@배문성-w4m2 жыл бұрын
잘 배우고 갑니다. 만약에 근접 공격을 콤보어택으로 구현을 하고 싶으면 애니메이터 의 어떤 부분을 어떻게 바꾸면 되나요?
@goldmetal2 жыл бұрын
Attack 애니메이션을 수정하면 되겠지만 이건 제가 블랜더에서 만든 거라 유니티에서 조정하기가 많이 힘들겁니다. 3D툴 블랜더에 FBX 파일을 불러와 애니메이션을 수정하시는걸 추천드립니다.
@배문성-w4m2 жыл бұрын
@@goldmetal 감사합니다.
@5juk3 жыл бұрын
18:28 골메님 근데요 Weapion이거 어디서 만들었죠..ㅠㅠ 네임스페이스가 없다고 뜨는것을 보니 선언을 않한거같은데...ㅠㅠ
@goldmetal3 жыл бұрын
Weapon 입니다. 중간에 i 가 들어가있네요
@5juk3 жыл бұрын
@@goldmetal 앗 오타네요 weapon어디서 ㅁ만들었죠인데 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
@goldmetal3 жыл бұрын
@@5juk 1:10 입니다
@5juk3 жыл бұрын
@@goldmetal 앜ㅋㅋ 오류가 뜬다는 내용을 않봤네욬ㅋㅋㅋ 감사합니다 정말 멋진 분이시당...ㅎ
@user-uw9lf4xw4l2 жыл бұрын
근접 공격 무기로는 enemy를 공격해도 enemy에게 데미지가 들어가지 않는 에레가 있습니다 혹시 해결방법아시나요? 손에 들려있는 근접무기의 box collider와 인스펙터 창에 Melee area에도 넣은 것을 확있했습니다! 감사합니다!
@goldmetal2 жыл бұрын
Swing 함수에서 Melee Area를 활성화 하는 것이 확인된다면 콜라이더를 좀 더 망치 위쪽, 앞쪽으로 이동시켜보는 것이 좋겠습니다. 활성화, 비활성화 타이밍도 확인해보세요.
@wochaomen2 жыл бұрын
15:44 여기서 스탑은 왜 넣어주는 건가요? 빼도 오류가 나지는 않던데 넣어주는 이유가 궁금합니다
@goldmetal2 жыл бұрын
중첩해서 실행되서 나중에 몬스터를 때릴 히트박스가 의도치않게 꺼진다거나 하는 경우가 발생할 수 있어서 그렇습니다.
@wochaomen2 жыл бұрын
@@goldmetal 감사합니다!
@조진호-u8w3 жыл бұрын
그 isJump와 isDodge는 만드시면서 isSwing은 왜 안 만드시는건가요? 단순히 취향 차이인가요??
@goldmetal3 жыл бұрын
Swing은 무기만의 함수라서 해당되지 않습니다. 플레이어 측면에서는 공격하는 것이므로 isFireReady를 사용합니다.
@조진호-u8w3 жыл бұрын
@@goldmetal 답변 감사합니다!!
@궁금증-g9v Жыл бұрын
혹시 public enum Type { Melee, Range}; 이걸 코드로 바꿀 수 있는 방법이 있나요..? 예를 들어, 1번을 누르면 Melee로 바뀌고 2번을 누르면 Range로 바뀌게.. Player 스크립트에서 사용할 때 어떻게 코드를 짜는지 궁금합니다...
@goldmetal Жыл бұрын
말씀하신 코드는 열거형 데이터의 선언부분입니다. 실제 사용은 바로 아래의 public Type weaponType; 변수에요. enum 뒤에 오는 이름이 타입이 되는거고 그걸 다시 사용하는겁니다. 그러니 스크립트에서 weaponType = Type.Melee; 이런식으로 변경 가능합니다
@wooju71113 жыл бұрын
'Weapon' does not contain a definition for 'Use' and no accessible extension method 'Use' accepting a first argument of type 'Weapon' could be found (are you missing a using directive or an assembly reference?) 라 뜨는데 뭐가 문젠지 알 수 있을까요..?
@goldmetal3 жыл бұрын
Weapon 스크립트의 Use 함수가 public으로 공개되어 있지 않거나 이름이 달라서 (특히 대소문자) 못찾을 것일 수 있습니다.
@@wooju7111 당연히 써주어야 호출이 됩니다. Use() 함수 안에 Debug.Log("무기"); 추가하고 실행해보세요. 콘솔창에 메세지가 나오지 않으면 equipWeapon.Use() 위쪽 if문 조건에 걸려서 실행이 안되는겁니다.
@sangDu-park3 жыл бұрын
끝까지 강좌를 보고 시크립트를 실행하니 Assets\scripts\Player.cs(122,25): error CS1061: 'Weapon' does not contain a definition for 'Use' and no accessible extension method 'Use' accepting a first argument of type 'Weapon' could be found (are you missing a using directive or an assembly reference?) 이라며 실행이 안됩니다 ㅠㅠ 왜 이런건가요?
@goldmetal3 жыл бұрын
Use 함수가 public 지시자가 붙어서 공개되어있는지 확인해보세요 public 키워드가 없으면 공개되지 않아서 다른 스크립트에서 접근할 수 없습니다
trail render를 망치 오브젝트에 add component 하는거랑 망치에 빈 오브젝트(effect) 만들어서 effect 오브젝트에 trail render 컴포넌트를 추가하는거랑 차이점 알 수 있을까요?
@goldmetal2 жыл бұрын
차이점은 별로 없습니다. 딱 하나 있다면 자식 오브젝트로 만들어 둔다면 이펙트 시작 위치를 조절할 수 있다는 정도겠네요.
@LLodin2 жыл бұрын
골드메탈님! 열심히 보며 배우고 있습니다. 궁금한게 있어 댓글 남기는데요. 7:33 에 보면 Weapon Hammer 오브젝트 W키인 Move Tool로 이동시 위쪽 방향으로 잘 되어있는데 제 Weapon Hammer는 아랫방향, 대각선을 가리키고 있네요 B41 강좌를 보니까 부모 오브젝트인 Right Hand 에서부터 영향을 받아 하위 오브젝트도 로테이션 값이 결정되어 있는것같은데, 받은 프리펩 파일임에도 영상에서 와는 달리 W 이동으로 오브젝트를 움직이려 할때 기본이 아래 대각선으로 되어있네요. 혹시 무엇이 문제인지 알 수 있을까요? 그리고 중심점도 Box Collider 조정하면서 망치 머리쪽으로 이동한것 같은데 저는 여전히 손쪽에 중심점이 있습니다 ㅠㅠ
@goldmetal2 жыл бұрын
이건 월드 좌표계와 지역 좌표계 차이 때문인데요, Scene 창 왼족 위를 보시게 되면 조그만 박스모양 기즈모 버튼이 있을겁니다. 이걸 누르면 월드 기준과 지역 기준으로 바꿀 수 있으니 한번 눌러보세요. (오브젝트의 Rotation과 상관없이 XYZ 수직으로 일정한 것이 월드 기준)
@LLodin2 жыл бұрын
@@goldmetal Gizmos 버튼이 활성화 되있을때랑 안되있을때랑 Move Tool 에서 xyz방향이 똑같다면 설정이 잘못된 걸까요?..
@goldmetal2 жыл бұрын
@@LLodin docs.unity3d.com/kr/current/Manual/PositioningGameObjects.html 여기에서 중간쯤 기즈모 핸들 포지션 토글 항목을 참고하세요. Local을 눌러서 World로 바꾸셔야 합니다.
@LLodin2 жыл бұрын
@@goldmetal 앗 드디어 ㅠㅠㅠ 감사합니다!
@迷途-u3d Жыл бұрын
마우스를 클릭했을 때 망치가 공격하지 않았습니다. 어떻게 해야 하나요?
@goldmetal Жыл бұрын
GetInput 함수에서 Attack 버튼이 잘 적용되었는지 확인해보세요. 대소문자도 정확히 같아야 합니다. Edit > Project Settings > Input Manager
@김주현-g8w3 жыл бұрын
항상 좋은 영상 감사합니다. 질문이 있어서 댓글 남깁니다. 플레이시 Assertion failed on expression: 'task.rasterData.vertexBuffer == NULL' UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) 라는 에러가 뜨는데 플레이어에 WeaponPoint에 있는 해머의 이펙트 트레일렌더러에서 발생한 오류 같습니다. 구글링해보았는데 라인렌더러나 파티관련에서 나오는 오류같던데 이유가 무엇인지 알고싶습니다.
안녕하세요 골드메탈님 강의는 잘 보고 따라 하고 있습니다 오류가 뜨는데 왜그런지좀 알려주실수 있나여 오류는 NullReferenceException: Object reference not set to an instance of an object Player.Attack () (at Assets/Script/Player.cs:119) Player.Update () (at Assets/Script/Player.cs:63) 뜹니다
@goldmetal3 жыл бұрын
플레이어 119번째 줄에 사용 중인 변수가 비어있다는 이야기입니다. public 변수라면 인스펙터 창에서 비어있는지 잘 확인해보세요
@김찬영-s9n3 жыл бұрын
골드메탈님 강의 잘보고있는데 해머 휘두르고 난뒤에 캐릭터가 이동하면 move 애니메이션을 실행시키지 않고 이동합니다 그냥 이동 모션없이 앞으로만 이동해서요.. 따른거 누르면 풀리긴 하는데 찾아봐도 어떻게 해야할지 감이안잡히는데 혹시 아시는거 계신지요.. ㅠㅠ
@goldmetal3 жыл бұрын
애니메이터와 게임창 동시에 띄워 두시고 플레이어 선택 후 망치 휘두르고 나면 애니메이션 흐름이 어떻게 되는지 확인해보세요. 휘두르는 상태에서 탈출은 제대로 하는지 확인이 필요합니다.
선생님,,, 그냥 휘두르면 괜찮은데 그런데 점프를 하면서 해머를 휘둘러보니까 MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. UnityEngine.Object.get_name () (at ...... 이런 빨간색 오류가 도중에 한번 생기네요ㅠㅠ 어떻게해야 오류가 안나오는지 알려주시면 감사하겠습니다!!
@goldmetal2 жыл бұрын
망치의 근접공격에 붙어있는 Bullet 스크립트의 Destory 함수 때문입니다. 망치는 근접공격이니까 타입이 melee 일때는 Destory 실행되지 않도록 if 추가해주세요
@강백호-q3x4 жыл бұрын
골드메탈님 질문이 있는데요, 아이템을 수급하는 걸 구현중인데 캐릭터가 아이템의 트리거 콜라이더에 들어오면 아이템을 destroy 해주는 방식인데 아이템 2개가 있을때 캐릭터가 2개의 트리거에 동시에 들어가 버리면서 한번에 2개의 아이템을 수급하게 되더라구요 어떻게 해야 아이템을 하나씩 수급할수 있을 까요? 답변 부탁드립니다ㅠㅠ
@goldmetal4 жыл бұрын
아이템 먹는 것에 쿨타임을 주면 어떨까합니다. 동시에 콜라이더에 닿아도 미세한 차이는 분명히 있기 때문에 첫 트리거이벤트에 아이템 먹는 쿨타임 변수의 값을 0으로 만든 뒤 Update()에서 델타타임을 계속 더해줍니다. 쿨타임을 1초라고 하면 트리거 이벤트에 > 1 조건을 추가해주면 1초 간격으로 차례대로 아이템을 수급할겁니다.
@강백호-q3x4 жыл бұрын
@@goldmetal 친절한 답변 정말 감사합니다ㅠㅠ!!!
@조민석-h6l2 жыл бұрын
코인이나 헤머를 들기만 하면 OnTriggerStay에 Debug.Log에 오류 메세지가 뜨는데 무시해도되나요?
@goldmetal2 жыл бұрын
어떤 에러인지 확인이 필요합니다. 잘 모르시겠다면 여기에 메세지 붙여주세요.
@이종윤-i3s3 жыл бұрын
골드메탈님 항상 답변 감사합니당. 궁금한점이 또 생겼는데요. boxcollider인 swordArea를 is trigger를 통해 벽을 부수려고 합니다만.. 벽앞에서 swordArea.enabled=true로 바꿔주고 벽을 공격시 swordArea가 destroy되네요... 벽이 아닌 enemy를 공격할땐 문제가 없는데. 왜 그런지 알 수 있을까요?
@goldmetal3 жыл бұрын
Destory 하실 때 상대방을 파괴해야 하므로 Destroy(collision.gameObject); 해주셔야 합니다.
@이종윤-i3s3 жыл бұрын
@@goldmetal 벽에도 롤의 포탑처럼 체력이 있어서 0이될때까지 때려야되는데용.특정 조건만족시 활성화된 캐릭터의 swordArea가 벽의 콜라이더와 충돌하여 자기맘대로 destroy되는듯 합니다. Enemy공격할땐 문제 없는데 벽에만 그러네요 ㅠㅠ
@goldmetal3 жыл бұрын
@@이종윤-i3s 벽에 스크립트가 있나요? 그렇다면 체력감소와 그로 인해 파괴되는 로직을 가진 피격함수 하나 만들어두시고 OnTriggerEnter에서 swordArea를 if문으로 체크해서 맞다면 방금만든 피격함수를 실행시키면 간단해집니다. swordArea는 벽에게 아무것도 할 필요가 없어지구요.
@미스따유3 жыл бұрын
해머 공격속도를 낮추려면 어떻게해야하나요? animator에서 speed 파라미터 만들고 animation.SetFloat("speed", 0.6f)하니깐 캐릭터가 뒤로돈상태에서 때려야 오브젝트가 공격을 당하고 오브젝트를 본상태에서 공격을하면 공격이안맞내요 ㅜㅜ..
@goldmetal3 жыл бұрын
애니메이터에서 공격상태 누르시고 인스펙터 보시면 Speed가 있습니다. 이걸 낮추시면 속도가 느려집니다.
isFireReady = equipWeapon.rate < fireDelay; 이 줄 아래에 Debug.Log(fDown + " / " + isFireReady); 넣고 테스트 해보세요 둘다 true가 나와야 합니다. false가 나온다면 원인을 파악해보셔야 겠네요.
@하철우3 жыл бұрын
골드메탈님 저번에는 벽에 정상적으로 움직임이 막혔는데 지금은 갑자기 벽이 통과가 되는데 어떻게 해야하죠 >??
@goldmetal3 жыл бұрын
B45에서 문제해결을 다루었으니 일단은 그냥 진행해주시면 됩니다.
@aidenjung62762 жыл бұрын
골메님 갑자기 무기스왑이 안되는데 어떻게해야하나요? 망치를 먹고 스왑을 누르면 NullReferenceException: Object reference not set to an instance of an object Player.Swap () (at Assets/QuarterView 3D Action BE5/ReadMe/Scripts/Player.cs:166) Player.Update () (at Assets/QuarterView 3D Action BE5/ReadMe/Scripts/Player.cs:63) 이렇게 뜹니다
@goldmetal2 жыл бұрын
플레이어 166 번째줄에 사용된 변수가 왜 비어있는지 확인해보셔야 할 것 같네요. 초기화가 빼졌는지 잘 살펴봐주세요
@ashess8052 жыл бұрын
옛날 강의에 질문드려 죄송합니다 ㅠㅠ 현재 공격버튼을 누르지 않아도 망치에 트레일 이펙트와 콜라이더가 켜져있고 공격할 때마다 껐다 켜졌다를 하지 않습니다. 트레일 이펙트는 움직일때마다 0.5초길이로 반복하는 것 같고 콜라이더는 항상 켜져있습니다. 애니메이션과 딜레이가 작동하는걸 봐서는 if문은 제대로 작동하는 것 같습니다. 코루틴에 문제가 있는걸까요?... public void Use() { if(type == Type.Melee) { StartCoroutine("Swing") StopCoroutine("Swing") } } IEnumerator Swing() { yield return new WaitForSeconds(0.1f); meleeArea.enabled = true; trailEffect.enabled = true; yield return new WaitForSeconds(0.3f); meleeArea.enabled = false; yield return new WaitForSeconds(0.3f); trailEffect.enabled = false; } ----------------------------------------------------------------------------------------------------- if (fDown && isFireReady && !isDodge && isSwap) { equipWeapon.Use(); //작동 안함 anim.SetTrigger("doSwing") //작동함 fireDelay = 0; //작동함 } 타입 설정, 밀리 에리어, 트레일 이펙트에 제대로 할당시켰습니다. 무엇이 문제일까요 ㅠㅠ...
@goldmetal2 жыл бұрын
StartCoroutine("Swing") StopCoroutine("Swing") 두 개의 함수 위치가 바뀌었습니다.
@ashess8052 жыл бұрын
@@goldmetal 답변 감사합니다 잘 해결됐어요!!
@MSlan4 жыл бұрын
금철이형 이거 베이식 강좌에 옮겨주면 안될까?
@goldmetal4 жыл бұрын
기초 강좌 채널에 등록되어 있는 상태입니다
@MSlan4 жыл бұрын
!
@황선우-z4i3 жыл бұрын
혹시 무기를 회전시키는 애니메이션을 만들때 회전방향을 스크립트로 설정하는법없나요..ㅜ
@goldmetal3 жыл бұрын
애니메이션 창에서 아래 Curve로 조절 가능합니다.
@황선우-z4i3 жыл бұрын
@@goldmetal와 정말 감사합니다
@khyun17773 жыл бұрын
궁금한게있어요!! 1. 플레이어를 안움직이고 있으면 몇 초뒤에 스스로 45도 정도 기울인 상태에서 회전을 하는데 혹시 캡슐콜라이더 때문에 이런가요?? 플레이어에 박스콜라이더를 추가해서 확인해보니 문제점은 사라지긴 했어요.. 2. 플레이어로 무기를 밟으면 주워지지도 않고 돌맹이마냥 굴러다니는데 어떻게 해결하면 될까요??
@goldmetal3 жыл бұрын
1. 리지드바디의 Freeze Rotation X, Z 체크해주시면 됩니다. 2. B45에서 물리에 대한 문제점을 모두 다루었으니 일단 그냥 진행해주셔도 됩니다.
@khyun17773 жыл бұрын
@@goldmetal 말씀해주신대로 Freeze Rotation X, Z 를 체크해도 움직이면 어떻게 하면 될까요??
무기의 콜라이더 크기를 무기 크기보다 크게 하지 않고 무기 크기만큼 하는건 비효율적인가요?
@goldmetal4 жыл бұрын
그렇게 하셔도 되지만 제가 만들어드린 망치는 짧아서 나중에 전투시 바짝 붙어 때려야 하므로 난이도가 어려울 수 있습니다.
@박건영-k3u4 жыл бұрын
@@goldmetal 아 그렇군요 감사합니다
@moonsungcho50652 жыл бұрын
equip weapon 없이 trail renderer를 껏다 켰다 할려면 어떻게 로직을 짜야하나용?ㅠㅠ
@goldmetal2 жыл бұрын
Trail 컴포넌트가 장착된 망치에 있는 거라 equip Weapon을 필수입니다. 이게 아니면 아예 public TrailRenderer 변수를 하나 만들어서 인스펙터에 직접 담으시면 컨트롤하실 수 있어요.
@moonsungcho50652 жыл бұрын
@@goldmetal 감사합니다 ㅠ 해결했습니당!! 항상 영상 잘보고 있습니다 !!
@AwSoMeFactOry4 жыл бұрын
공격키 빠르게 누르면 공격 애니매이션 끝나기 전에 공격을 다시 하는데 공격 애니매이션을 거의 끝날때 다시 공격할수있게 하는방법이 있나요?
@goldmetal4 жыл бұрын
애니메이션 시간만큼 손에 들린 망치의 rate값을 올려주시면 됩니다. 애니메이션 길이는 직접 Assets 창에서 선택하고 인스펙터 창에서 보실 수 있습니다.
@AwSoMeFactOry4 жыл бұрын
@@goldmetal 에니메이터 에서 속도가 시간 나누기 애니매이션 (속도 1의 시간) 하니까 애니매이션을 다 볼수있네요
@aidenjung62762 жыл бұрын
망치를 먹었는데 element 2 핸드건이 체크되는 문제는 뭘까요?
@goldmetal2 жыл бұрын
망치 아이템의 ID가 0인지 확인해주세요
@오현준-x8w2 жыл бұрын
안녕하세요 애니메이션 부분에서 문제가 생겨 질문 드려요 ㅜㅜ. swing애니메이션을실행시킬때 그 동작이 앞부분 (망치를 내리치기 위해 팔을 위로 드는 동작)만 나오고 뒷부분(망치 내려찍기)가 나오기 전에 애니메이션이 끝나버립니다.. 무엇이 문제일가여
@goldmetal2 жыл бұрын
애니메이터에서 23:39 처럼 Transition duration 값을 0으로 해주셨는지 확인해보세요. 오고가는 화살표 두개 모두 해주셔야 합니다. 이 값은 두 애니메이션을 부드럽게 연결해주기 위한 믹스타임같은거라 값이 있으면 그만큼 공격애니메이션이 빨리 끝나게됩니다.
@오현준-x8w2 жыл бұрын
@@goldmetal 정말 죄송합니다.. 그 exit time에 0.1을 넣어버렸네요..ㅜ.ㅜ
@goldmetal2 жыл бұрын
@@오현준-x8w 0.1도 충분히 짧은 시간입니다. 해결되었으면 다행이고 아니면 다른 부분에 문제가 있는지 봐야겠네요.
@오현준-x8w2 жыл бұрын
@@goldmetal 해결이 되었습니다 감사합니다
@rateof13 жыл бұрын
Trail Rendererderer의 크기는 어떻게 조절하나요?
@goldmetal3 жыл бұрын
Time 값을 조절하시면 됩니다.
@구름구름름 Жыл бұрын
안녕하세요 골드메탈님. 항상 좋은 강의 잘 보고 있습니다. 18:30 쯤부터 GameObject 타입에서 script인 Weapon으로 타입을 변경하면서 궁금한 것이 생겼습니다 Weapon equipWeapon; -> 이 부분입니다. if (equipWeapon != null) { equipWeapon.gameObject.SetActive(false); } ↑위에서 equipWeapon가 GameObject type일때는 equipWeapon != null이 이미 gameObject가 있어서 비활성화 - SetActive(false) 한다고 이해했습니다. 그런데 Weapon script type으로 바꾸게 되면서 equipWeapon != null 부분도 ‘equipWeapon.gameObject != null’로 바뀌어야한다고 생각했는데 이렇게 바꾸면 무기를 먹고 swap키를 눌렀을 때 에러가 나더라고요. ‘equipWeapon != null’ 부분을 어떻게 이해하면 좋을까요??
@goldmetal Жыл бұрын
클래스타입은 언지든지 null 값이 가능합니다. Weapon 컴포넌트 타입인 equipWeapon에 값을 넣지 않으면 자연스럽게 null이 된다라고 생각해주시면 됩니다. 그리고 if 조건과 그 안의 코드로직이 서로 꼭 같을 필요도 없다는 점, 참고 바랍니다. 예시 : 조건과 로직이 연계되는 코드 -> if(플레이어에게 사과가 있다) { 사과를 먹는 로직; } 조건과 로직이 연계되지 않지만 개발자가 필요한 상황을 구현한 코드 -> if (플레이어가 정지해 있다) { 사과를 먹는 로직; }
@jchoe31072 жыл бұрын
Weapon equipWeapon 선언했는데, player에서 equipWeapon사용하면 왜 null에러가 날까요... public으로 equipWeapon 선언하고, player에 무기 드래그로 집어넣고하면 에러는 안 나지만, SetActive(true)도 반응이 없는 것 보면 뭔가 잘 못한 것 같은데...흠;
@jchoe31072 жыл бұрын
Weapon을 싱클톤으로 해도, 오브젝트 활성화가 일어나지 않습니다. 디버그로그로 Weapon.instance.gameObject 읽어보면, 정확히 플레이어가 손에 걸어둔 무기이름이 나오는데도 활성화는 안 되네요. 대신 아무런 오류는 나지 않습니다. 싱클톤 or public으로 직접 집어넣기가 아닌 경우는, equipWeapon관련 모든 호출에서 NullReferenceException에러가 뜹니다. 분명 간단한 실수일 것 같은데, 뭔 지 몇시간 째 못찾겠네요 .. (추가)활성화가 안 됐던 건, 메쉬 랜더러를 꺼놔서 그랬네요;;; Weapon을 싱클톤으로 잡은 경우에는 에러없이 잘 됩니다.
Translate 안에 넣는 값에 * Time.deltaTime 해주시면 됩니다. 대신 그만큼 속력 값을 올려주어야 해요.
@goldmetal Жыл бұрын
@@아이조아라-r1w 코루틴은 딱 1프레임이다 가 아닌 1프레임이 지나고 다시 진입하는 과정이라 말씀드릴 수 있겠습니다 (그 키워드가 yield return) while과 for 때문에 deltaTime이 달라지는게 아닌 서브루틴에 의해 실제로 달라진 1프레임의 시간이 흐르고 코루틴으로 진입한거라고 보시면 됩니다. 코드의 구성이 코루틴만 있는게 아니라 장면에 여러 스크립트가 있다면 이런 환경적인 측면까지 생각해주세요.
@purin0319 Жыл бұрын
25:40 까지 따라갔는데 테스트해보니 공격키를 누르면 망치를 머리뒤로 휙 넘기는 순간 에러가 납니다 MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. UnityEngine.Object.get_name () (at /Users/bokken/buildslave/unity/build/Runtime/Export/Scripting/UnityEngineObject.bindings.cs:194) Player.OnTriggerStay (UnityEngine.Collider other) (at Assets/Scripts/Player.cs:247) 보니까 댓글에 저같은 에러가 나는 분이 몇분 계신데 달아주신 답글로 해결이 안되어 저도 질문 드립니당 ㅠㅠ 참고로 weaponPoint>weapon hammer 박스 콜라이더, 이펙트의 트레일 렌더러 둘다 활성화는 됩니다(그러고 바로 에러가 나는듯해요) player.cs>void Attack()에서 equipWeapon.Use();를 빼고 실행하면 잘 휘두릅니다. 물론 이렇게 하면 효과가 안뜨지만요ㅠㅠ 어디를 확인해보면 좋을까요? Player.cs:247는 } 입니다,,,,(아래는 player.cs 239~247 코드입니다) void OnTriggerStay(Collider other) { if (other.tag == "Weapon") nearObject = other.gameObject; else if (other.tag == "Item") nearObject = other.gameObject; Debug.Log(nearObject.name); }
@goldmetal Жыл бұрын
망치의 근접 범위인 콜라이더 오브젝트에 붙어있는 Bullet 스크립트에 문제가 있습니다. 근접이라면 Destroy가 되지 않도록 조건을 걸어주셔야 해요.
@purin0319 Жыл бұрын
@@goldmetal 이해가 잘 되지 않는데요ㅠㅠ 에러가 처음 난것은 아직 bullet 스크립트를 만들기 전인데 bullet 스크립트의 영향을 받나요?? 우선 아래와 같이 수정했는데 아직 문제가 해결되지 않았습니다 혹시 조건이 잘못되었을까요? 1. 먼저 bullet 스크립트에 Weapon equipWeapon; 추가하고 2. if (collision.gameObject.tag == "Floor" && equipWeapon.type != Weapon.Type.Melee) Destroy(gameObject, 3); 이와 같이 조건 수정
@purin0319 Жыл бұрын
@@goldmetal 해당 영상 18:32 지점에서 '게임오브젝트'였던 equipWeapon을 'Weapon스크립트' equipWeapon으로 변경하는데 이때 생기는 오류가 아닐까 생각했는데요 이건 아닌건가요?ㅠㅠ
@@purin0319 망치에 달려있는 근접범위 오브젝트에 있는 bullet 스크립트를 비활성화 하고 한번 테스트해보세요. 에러가 나지 않으면 Bullet스크립트가 범인이고 에러가 난다면 다른 스크립트의 문제입니다. 보통 에러메세지 더블클릭하면 해당 스크립트가 펼쳐지니까 확인해보세요.
@user-cs1kx8ct2q2 жыл бұрын
안녕하세요 골드메탈님 공격을 연타했더니 캐릭터가 쓰러져버리는데 해결방법이 있을까요..
@goldmetal2 жыл бұрын
리지드바디의 Freeze Rotation X, Z 체크해주세요
@user-cs1kx8ct2q2 жыл бұрын
@@goldmetal 와 감사합니다!!
@Teriro. Жыл бұрын
망치를 휘둘러도 박스 콜라이더가 안 켜져요
@goldmetal Жыл бұрын
망치 휘둘렀을 때 유니티 아래에 에러가 발생하는지 확인해주세요. 혹시 모르니 망치의 Weapon 스크립트에서 MeleeArea 변수가 초기화 되어있는지 인스펙더도 확인해주세요.
@Teriro. Жыл бұрын
@@goldmetal 감사합니다 덕분에 해결했어요
@정주은-r9r3 жыл бұрын
안녕하세요!! 마우스 왼쪽 클릭을 하면서 근접 공격을 할 때마다 오류가 뜨는데 해결 방법을 몰라 댓글 달아요!! MissingReferenceException: The object of type 'GameObject' has destroyed but you are still trying to access it. You script should either check if it is null or you shoul not destroy the object. UnityEngine.Object_name () (at :0) Player.OnTriggerStay (UnityEngine.Collider other) (at Assets/02 Script/Player.cs:16)
@goldmetal3 жыл бұрын
근접 공격할 때 바닥이나 벽에 닿으면 콜라이더가 삭제되는 경우가 있습니다. 삭제되지 않도록 망치의 Bullet 스크립트에서 isMelee를 꼭 체크해주세요
@정주은-r9r3 жыл бұрын
bullet 스크립트가 없는데 Item 스크립트를 말씀하신건가요..?
@goldmetal3 жыл бұрын
@@정주은-r9r 아이고 죄송합니다. 다른 질문과 헷갈렸네요. 에러메세지를 더블 클릭하면 안내해주는데 그 위치의 변수를 확인해보는 좋겠습니다. 여기 답글에 붙여주시면 확은해볼께요
@bkay78763 жыл бұрын
망치를먹고망치를손에들면 2 번이랑 3전을눌러도 총으로 스왑이안돼요
@goldmetal3 жыл бұрын
총 아이템도 다 먹은 상태인가요? 총에 해당하는 hasWeapon 변수값이 true로 되어있어야 스왑이 됩니다.
@bkay78763 жыл бұрын
@@goldmetal 네 총먹고스왑은되는대 갑자기 근접무기로바꾸면 스와이안돠요
@bkay78763 жыл бұрын
@@goldmetal 아 헤결됩습니다 감사합니다
@hothotpizza2 жыл бұрын
안녕하세요 질문있습니다! 갑자기 점프 후 착지가 안돼서 공중에 떠있습니다 어떻게 해결해야 할까요? 일단 isJump를 3곳에 찍어보았습니다. 1. Update문에 디버그를 찍어볼때 - 점프 전: isJump false, 점프 모션 중: isJump true 이후 착지가 안됩니다. 2. Jump 함수 : if문 전 false, if문 후 true 3. OnCollisionEnter 함수 (착지구현): 디버그가 찍히지 않음 다 맞게 쓴 것 같고 Tag도 Floor을 했는데 어디가 문제일까요?
@goldmetal2 жыл бұрын
3번에서 문제네요. 디버그가 찍히지 않았으니 플레이어와 바닥이 모두 리지드바디 + 콜라이더가 있는지 확인해주세요. 바닥에 리지드바디가 없다면 추가해주시고, IsKinematic 체크해주세요. 그리고 바닥의 태그도 OnCollisionEnter 함수 안의 if 조건대로 설정되어 있는지도 확인이 필요합니다.
망치 주변에 가서 E키 눌러보셨나요? E키 눌러도 반응이 없다면 nearObject에 망치가 들어가 있는지 Interaction 함수에 Debug.Log(nearObject.name); 으로 확인해보세요
@lmn79544 жыл бұрын
@@goldmetal 네 nearObject에서 망치 인식을 하긴합니다 근데 이렇게 console에 오류로 이렇게 뜨네요 IndexOutofRangeException: Index was out of the bounds of array
@goldmetal4 жыл бұрын
@@lmn7954 장착하고 숨겨둔 무기 3종을 weapons 배열에 넣어두어야 합니다. 인스펙터 창에서 배열 변수 확인해보세요
@lmn79544 жыл бұрын
@@goldmetal 네 숨긴 무기도 배열에 있습니다 그런데 코드를 봐도 오류는 없다고 하고 project settings에서 interation을 e라고 해도 안 됩니다 ㅠㅠ
@MIN0707_DEV2 жыл бұрын
열심히 공부하고있습니다! 근데 코루틴으로 게임을 만들고 있었는데 프레임이랑 ms가 바뀔때 기다리는시간 그런것들이 너무 다릅니다 이게 무슨일일까요
@MIN0707_DEV2 жыл бұрын
코드는 for (var i = 0; i < 300; i++) { var position = stick.transform.position; position.x += 1; stick.transform.position = position; yield return new WaitForSeconds(0.002f); } 이렇습니다 이게 프레임마다 반복속도가 달라지네요
@goldmetal2 жыл бұрын
0.002f 면 1초에 500회 수준인데 너무 짧은게 아닌가 합니다. 유니티에서 돌리고 있는 프레임 주기보다 더 짧으면 제대로 수행할 수 없을 수 있으니 시간대를 조절하셔야겠습니다.
@MIN0707_DEV2 жыл бұрын
@@goldmetal 그렇군요 근데 1f 로 해놔도 느려지는게 똑같아요 혹시 application.targetframerate이 영향이 있을까요?
@goldmetal2 жыл бұрын
@@MIN0707_DEV 적당한 수치라면 크게 상관은 없습니다. 혹시 부하가 일어나서 느려지는건지 프로파일러로 검사해보시는 것이 좋겠네요
@warfD-hd9bs Жыл бұрын
제가 23:00 쯤에 swing 에니메이션 대신 다른 에니메이션을 넣어서 해봤는데 Transition 'AnyState -> Attack 01' in state 'AnyState' doesn't have an Exit Time or any condition, transition will be ignored (Attack 01은 에니메이션 이름) 이런 오류가 뜨면서 Debug.Log(fDown + " / " + isFireReady);를 했을때 False/True가 계속 뜹니다. 이건 어떻게 고쳐야 할까요? ㅠㅠ
@goldmetal Жыл бұрын
AnyState -> Attack 01 가는 화살표에 조건 Condition이 없다는 이야기입니다. 애니메이션 상태를 변경하기 위해 꼭 Parameter를 사용한 조건을 Transition에 만들어야하니 한번 확인해보세요.
@warfD-hd9bs Жыл бұрын
@@goldmetal Transition에 파라미터도 달았는데 똑같네요 ㅠㅠ
@warfD-hd9bs Жыл бұрын
@@goldmetal Debug로 해봤을떄는 fDown이 계속 False가 나오는거 같습니다.
@goldmetal Жыл бұрын
@@warfD-hd9bs 동일한 에러가 있다면 모든 Transition 눌러보시면서 Coditino 빠진게 있는지 살펴봐주셔야 할거 같아요. 혹은 다른 애니메이터도 있는지 에셋 확인해보세요
@안대훈-o8q3 жыл бұрын
근데 저 계속 Assets\2Scripts\Player.cs(35,10): warning CS0414: The field 'Player.isSwap' is assigned but its value is never used이게 경고로 뜨는데 문제는 없는거죠?
@안대훈-o8q3 жыл бұрын
아 그리고 따라서 했는데 Assets\2Scripts\Player.cs(173,48): error CS0428: Cannot convert method group 'GetComponent' to non-delegate type 'Weapon'. Did you intend to invoke the method?이것도 뜨네요
GetComponent 는 함수라서 뒤에 괄호 () 붙이셔야 합니다. isSwap의 경우는 if문 조건으로 사용하시다보면 자연스럽게 사라질겁니다.
@BB332244 жыл бұрын
안녕하세요 골드메탈님 영상 잘 보고 있습니다! 근데 따라해보는 도중에 오류가 발생했는데요, 무기를 입수하고 장착하는 것까진 완벽한데 좌클릭을 아무리 눌러도 반응이 없습니다. 콘솔창에서 오류도 뜨지 않습니다.. 뭐가 잘못된걸까요 ㅠㅠ +) 다음 강의에서 나오는 총에서도 입수와 장착은 되는데 총알이 안 나가네요.. +)그 다음 강의에서 나오는 클릭에 따라 캐릭터가 돌아가는 부분에서는 클릭을 인식을 하네요
@goldmetal4 жыл бұрын
isFireReady 계산하는 줄 바로 아래에 Debug.Log(isFireReady); 를 두고 실행해봅시다. 만약 좌클릭을 했는데 로그가 뜨지도 않는다면 equipWeapon이 없다는 것이고 false가 떳다면 equipWeapon.rate값을 인스펙터 창에서 확인해보셔야 합니다.