여기까지 잘 따라왔더니, 과일나무 수확 기능도 완성했어요! 혼자였다면 상상도 못할 진도입니다 ㅋㅋ 정말 감사해요. 다음 진도도 화이팅해서 진행하겠습니다
@sun12058 ай бұрын
감사합니다. 너무 재미있고 슬슬이해도 되기시작합니다.
@jamespark58232 жыл бұрын
강의가 정말 최고에요!!!!
@minjee_K3 жыл бұрын
늘 좋은 강의 감사합니당
@pyeongmin12314 жыл бұрын
오늘도 좋은 강의 감사합니다ㅎㅎ~
@pyeongmin12314 жыл бұрын
저 퀴드책션 팩에서 오브젝트를 불러오면 하얀색으로 바뀌는데 뭐땜에 그러는 건가요?
@pyeongmin12314 жыл бұрын
아닙니다 고쳤네요 ㅎㅎ
@muhadojun2 жыл бұрын
펑~~! 잘 터지고 리엑션 좋네요 ^^ .. 이런 기능까지 강좌를 감사합니다. ~
@simsimiMONSTER Жыл бұрын
Throw Grenade에 콜라이더랑 리지드바디 모두 있어도 굴러가지 않는 분들은 Mesh Object에도 콜라이더를 넣어보시길 바랍니다.
@Chogeulring4 жыл бұрын
광역공격이라니 응용만 잘하면 다른것도 구현가능하겠네요 감사합니다!
@minjee_K3 жыл бұрын
혹시 수류탄에서 out of index 에러가 나시는 분이 있다면! hasGrenades 는 최대 4까지 가능하기 때문에 hasGrenades = 4 일때 grenades[hasGrenades ].SetActive(true); 를 실행하면 out of index 오류가 납니다! 인덱스로 -1이 들어가면 어떻게 되는지는 잘 모르겠지만 grenades[hasGrenades -1].SetActive(true); 로 바꾸면 정상작동하네요!
@JCSong-eh1qm3 жыл бұрын
늦었지만 열심히 보고 있습니다~ 이렇게 지식을 나눠주셔서 감사합니다.
@argolant4 ай бұрын
점점 신경써야 하는 부분이 늘어나서 어렵지만 재밌네용
@NB-up8fs3 жыл бұрын
항상 감사히 잘 보고 있습니다.
@NB-up8fs3 жыл бұрын
주말 잘 보내세요
@Joohyunsang3 жыл бұрын
이번 회차도 정말 잘봤습니다!! 감사합니다:)
@와비사비룸물질보다정 Жыл бұрын
수류탄 피격을 Enemy 쪽에 넣어서 처리하는건 뭔가 범용성이랑 확장성이 떨어지는 느낌이 드네요 공격 피격을 따로 스크립트로 분리해내서, 범위피격넉백 함수로 좀더 제네릭하게 할 수 있을 것 같습니다
@BroK20252 жыл бұрын
영상 잘보고 있습니다!! 폭탄이 한번에 4개가 나가가서 당황 했었는데 GetButton 으로 해버렸더군요 ㅋㅋ
@DungeonsSlimes2 жыл бұрын
"최고의 강의"
@와비사비룸물질보다정 Жыл бұрын
수류탄 장착 및 인터렉션 부분 제작은 강의 내에 스킵되어 있어서 강의만 따라오신분들은 중간에 오류가 생기는데 잘 따라왔다면 스스로 해결하실 수 있습니다
@wgj57004 жыл бұрын
너무 멋있는 구현을 해주셔서 감사합니다
@ANDAMIR04 жыл бұрын
언제나 감사합니당
@날드-i9t11 ай бұрын
19:25 freezeroatation x축 z축 체크했을경우 이부분만 회전돌게 하는법
@안안-u5s3 жыл бұрын
영상 감사합니다.
@telun_project4 жыл бұрын
대단하십니다,.
@wowmedia21547 ай бұрын
Grenade는 value를 몆으로 해주어야 하나요? weapon이 아닌 grenade로 했는데 value가 weapon이랑 겹쳐서요
@goldmetal7 ай бұрын
태그로 구분되서 value는 0으로 두셔도 될겁니다
@초코맛누룽지4 жыл бұрын
하하 누구보다 빠르게 남들과는 다르게
@junghwanryu11884 жыл бұрын
영상 잘봤습니다. 우와 엄청 복잡하네요. 저기에 쓰이는 용어들은 다 외우고 쓰시는건가요?! 굉장하고 흥미롭네요! 혹시 2d도 저런식으로 만드는건가요?
@구조4 жыл бұрын
@Unknown 감사합니다!
@이세돌화이팅-p9o4 жыл бұрын
안녕하세요 열심히 시청중입니다. 여태 잘 되다가 Grenade() 만들고 실행을 하면 플레이어가 수류탄 투척하지않고 제자리에 수류탄을 놔둔 뒤에 플레이어가 공중으로 점프하여 날라갑니다ㅠ 공중으로 점프하여 날라갈때 Fire2 버튼을 눌리면 또 정상적으로 Raycast가 정상적으로 작동되며 수류탄 투척을 하네요ㅠ 스크립트를 눈 씻고 봐도 모르겠어요 디버그 로그 해도 정상적인 로그가 뜨긴해요
@goldmetal4 жыл бұрын
수류탄이랑 플레이어랑 서로 충돌해서 그렇습니다. 수류탄 레이어를 따로 만든뒤 Edit > Project Settings > Physics > Collision Matrix에서 서로 충돌하지 않도록 체크 해제해보세요
@이세돌화이팅-p9o4 жыл бұрын
@@goldmetal 아 그 방법을 생각못했네요! grenade가 발사 되는 위치를 플레이어의 위치에서 + 벡터3 포워드 *2f로 하니 해결됐어요 다음엔 골드메탈님 방법으로 해보겠습니다 답변 감사드려요
@겜쟁이독사2 жыл бұрын
ㅜㅜ 폭탄에 적이 안 맞아서 계속 찾는데 코드에 "Enenmy"라고 해놓은;; ㄷㄷ;; 이거 때문에 한 시간을 헤메는;;; ㄷㄷ;;;; 이놈의 "Enenmy"
@goldmetal2 жыл бұрын
게임 개발에는 항상 오타 함정이 도사리고 있지요 🥴
@날드-i9t11 ай бұрын
13:05 수류탄 안터진 이유 스크립트를 하이어키에 넣고 프리팹꺼 플레이어에 넣어서
@u.tube_ska4 жыл бұрын
너무 도움되고 있습니다! 도움되는 만큼 궁금한것도 많네용 이번 쿼터뷰강의에서 오브젝트 풀링을 안하시는 이유는 따로 있나요??
@goldmetal4 жыл бұрын
사실 오브젝트 풀링이 완전 기초단계에선 다루기엔 조금 그렇기도 하고 아직 프로젝트가 완성 단계가 아니라서 풀링을 바로 도입하기에도 타이밍이 맞지 않습니다.
@조커카드-k1u Жыл бұрын
9:52초 처럼 해놨는데 플레이어가 수류탄을 입수가 할수가업던데 어디가 문제인가여?
@goldmetal Жыл бұрын
수류탄 아이템 먹는 부분은 이전 강의 B40에서 끝나야 하는 부분입니다. kzbin.info/www/bejne/q2OnfYKXrpqihZo 안먹어진다면 IsTrigger가 있는 콜라이더가 있는지 그리고 Item 태그 체크되어있는지 확인해주세요.
@intimeart83843 жыл бұрын
수류탄이 하늘로 날라가고 안내려옵니다
@goldmetal3 жыл бұрын
수류탄의 리즈드바디에 Use Gravity 체크되어 있는지 확인해보세요
@enjoyingman14 жыл бұрын
내일 공부해야지~~
@송준호-r3y Жыл бұрын
수류탄을 모두 만들고 난 후 코드에도 오류가 없이 실행도 되고 똑같이 한글자씩 확인했는데도 불구하고 fire2로 마우스 우측키를 누르면 수류탄이 안 나타납니다. 혹시나 해서 input manager에서도 fire를 확인해 봤지만 잘 되있었고 gDown으로 코드 또한 적혀져 있는데 게임 실행 후 수류탄을 습득한 후 반응하는지 확인(hasGrenades)까지 했는데도 불구하고 마우스 우측키만 안 먹힙니다 어떻게해야 할까요?
@송준호-r3y Жыл бұрын
다음 날 마음을 다 잡고 다시 처음부터 적었더니 잘 됐습니다. 일시적인 오류였던 것 같습니다.다음에도 이런 일이 일어나면 안될텐데..
@goldmetal Жыл бұрын
원래 게임 개발이라는게 그렇습니다. 이런 경우를 스스로 잘 해결하시다보면 노하우가 쌓여서 나중에는 뚝딱해결하고 넘어가는 자신을 보실 수 있을거에요~
@B6jePV612 ай бұрын
휴 쉽지 않다..ㅋㅋㅋ
@nelnel0718 Жыл бұрын
안녕하세요! 최근에 영상 보기 시작해서 B47까지 무사히 따라왔습니다. 이번 B47 영상에서 알려주신 것도 큰 오류 없이 진행을 하였으나, 이상한? 궁금한 점이 생겨 질문 댓글 남깁니다. Player의 위치를 바꾼 후(Player만 이동) 수류탄을 획득하면(먹으면) 플레이어 몸 주변에서 수류탄이 공전하는 것이 아닌 떨어진 만큼의 거리?에서 공전을 하는데, Grenade Group을 Player에 고정시킬 수는 없을까요? 아니면 알려주셨는데 제가 놓친 것일까요? Player의 위치를 임의로 바꾸게 되면 그대로 임의의 위치 만큼 Grenade Group도 이동 되도록 하고 싶습니다. (문제없이 딱 붙여놓고 싶음) *Player와 Grenade Group 묶어서 함께 이동하면 변함없이 잘 공전 합니다. 혹시나 저의 문제일 것 같아 Orbits 스크립트의 내용도 함께 남깁니다. public class Orbit : MonoBehaviour { public Transform target; public float orbitSpeed; Vector3 offSet; void Start() { offSet = transform.position - target.position; } void Update() { transform.position = target.position + offSet; transform.RotateAround(target.position, Vector3.up, orbitSpeed * Time.deltaTime); offSet = transform.position - target.position; } } 좋은 영상 너무 감사드립니다. 최근에 뱀서라이크 영상도 올라오고 있는 것을 확인하고 있는데, 그것도 만들어 볼 생각에 너무 신나하고 있습니다!
@goldmetal Жыл бұрын
쉽게 하려면 Group만 Rotate() 사용하면 되긴 합니다. 이 강좌에서는 RotateAround의 사용법을 익히고자 내용이 복잡하게 구성되었으니 참고바랍니다. 참고로 Rotate() 방식과 RotateAround()방식을 겉으로 비교하면 조금 차이가 있습니다. (전자는 수류탄이 통째로 돌아가는 모양이라면 후자는 위치만 돌아가는 느낌)
@nelnel0718 Жыл бұрын
@@goldmetal 답변 감사합니다!
@HaroldKang77 Жыл бұрын
안녕하세요~ 골드메탈님~ 지금까지 잘 보면서 따라 왔는데 갑자기 문제가 발생하네요. 17분 쯤, RaycastHit 배열에 피격되는 enemy 정보를 저장해서 Enemy 스크립트의 HitByGrenade() 함수로 데미지를 주는 부분에서 막혔습니다. 외부 함수를 가져오는 것에서 에러가 발생 하는것 같습니다~ ㅜ.ㅜ 피격 후 rayHits[0] 배열 디버그 찍어보면 'object'라고 나오는 것 보니 정보는 들어간 것 같은데 잘 모르겠어요~ ㅜㅜ
@goldmetal Жыл бұрын
에러 메세지가 어떤 메세지인지 확인해보세요. 잘 모르시겠다면 구글번역기에 돌리셔도 되고, 에러메세지의 마지막 부분인 (00,00) 에러 위치를 확인하셔서 해당 변수를 살펴보시면 됩니다. 정모르시겠다면 여기에 붙여주시면 확인 드리겠습니다.
@HaroldKang77 Жыл бұрын
@@goldmetal 어제 그렇게 볼때는 안 보이더니 지긋지긋한 오타였어요 ㅜㅜ layermask가 작동 안 하길래 레이어 번호로 했는데 그것도 이상하더니, 오늘에서야 레이어 숫자를 비트연산자로 넣어야 한다는 걸 알았습니다. 이래저래 두 가지 방식 모두 작동하네요.. ㅎㅎ;; 감사합니다~
@bkay78763 жыл бұрын
Assets/5Script/Player.cs(70,9): error CS0103: The name 'Interation' does not exist in the current context void Update() { GetInput(); Movement(); FollowPlayer(); Jump(); Grenade(); Attack(); Reload(); Dodge(); Swap(); Interation(); } 이렇게 어택위에 수류탄로터함수를썼는대 갑자기 어택을포함한 장전 도지 스왑 먹기에 빨간색중이떠요
@goldmetal3 жыл бұрын
Interation 함수가 선언되지 않았답니다. 작성하신 함수 이름 대소문자 철자 같은지 확인해보세요
@bkay78763 жыл бұрын
@@goldmetal interation말고도다빨간줄이에요
@goldmetal3 жыл бұрын
@@bkay7876 문법상 문제가 있는겁니다 윗부분쪽으로 괄호 () 혹은 중괄호 {} 짝이 안맞는 부분이 있는지 확인하시고 세미콜론; 빠진 곳이 있는지도 살펴보세요
@klyiknopx9323 жыл бұрын
공부를 해보고 있는데 2챕터로 투척하는 것까지 만들어봤는데 여기에서 수류탄을 던지면 영상에선 일직선으로 쭉 가는데 저는 수류탄이 바닥을 뚫는 원형 패턴으로 빙글빙글 돌아가면서 앞으로 가네요. 어떤 것이 문제일까요 ㅠㅠ
@goldmetal3 жыл бұрын
수류탄 프리펩 만들 때 매쉬를 가지고 있는 자식 오브젝트의 지역위치(LocalPosition)이 (0,0,0)이 아닐 수 있습니다. 프리펩 여서서 확인해보세요.
@noble31382 жыл бұрын
질문입니다. 9:40 부분인데요. 프리펩에 던지는 수류탄을 저장을 했는데 프리펩의 수류탄을 배치해도 플레이어가 안먹고 심지어 관통도 합니다. 혹시나해서 이미 전시간에 배치한 수류탄 4개들을 먹어보고 마우스 우클릭을 사용했는데 던지지도 못하고 있습니다. 왜그런걸까요? (스크립트 에러는 없었습니다.)
@goldmetal2 жыл бұрын
수류탄 아이템의 영역담당 콜라이더가 Trigger로 되어 있는지 확인하시고 태그도 설정되어 있는지 확인해주세요
@noble31382 жыл бұрын
@@goldmetal 아 뭣땜에 그렇나 햇더니 업데이트 함수를 빼먹는 실수를 자꾸하네요 ㅠㅠㅠ 항상 업데이트 함수도 체크 해봐야하는 습관을 가져야겠어요 감사합니다
@작곡가보빈 Жыл бұрын
안녕하세요 구독하고 너무 감사히 잘 보고있습니다. 수류탄의 데미지를 스크립트 내에서가 아니라 수류탄 프리팹에서 퍼블릭 변수로 조정하고싶은데요, 이럴경우 에너미가 받는 수류탄데미지를 에너미 스크립트에 int gHit; 그리고 수류탄 스크립트에 public int gDamage; 이라고 선언해두고, 다시 애너미 스크립트로와서 void Awake(){ gHit = GetComponent().gDamage;} 로 초기화하고 데미지 숫자대신 gDamage를 썼는데 왜 작동을안하는지모르겠습니다ㅠ 혹시뭐가잘못되었을까요ㅠ
@goldmetal Жыл бұрын
int같은 Primary type은 값 복사입니다. gHit를 바꾼다고해도 gDamage는 변동이 없지요. 바꾸시려면 Grenade myG;이렇게 선언 후 초기화 하고 데미지를 변경할 때 myG.gDamage = 이렇게 하면 되니 참고 바랍니다
@작곡가보빈 Жыл бұрын
@@goldmetal 아직 코딩도 초보라 이해가 쉽진 않지만 방법을 알려주셔서 정말 감사합니다! 오늘 컨디션이 안좋다는 글 보았는데 빠른 회복 하시길 바래요 늘 감사합니다!
@user-uw9lf4xw4l2 жыл бұрын
안녕하세요 좋은 강의 감사합니다!! 다름이 아니라 수류탄을 던질 때 잘 던져지지만 폭발 이펙트가 나오지 않아서요.. 그냥 던저서 굴러가기하고 이펙트는 나오지 않습니다. 해결방법이 있나요?? 감사합니다
20:43에 Assets\QuarterView 3D Action BE5\Scripts\Grenade.cs(29,52): error CS0122: 'Enemy.HitByGrenade(Vector3)' is inaccessible due to its protection level 라고 오류가 떠요
@I_am_jake11042 жыл бұрын
아 public void인데 void만 썼네요 ㅎㅎ
@im.g56992 жыл бұрын
안녕하세요!! 영상 잘 보고 있습니다. 수류탄이 바닥에 닿으면 폭발하게 할 수는 없을까요?? 어렵네요.ㅠㅠ
@goldmetal2 жыл бұрын
Explosion 함수를 OnCollisionEnter 이벤트 함수에서 호출해주시면 됩니다.
@im.g56992 жыл бұрын
@@goldmetal 감사합니다!!
@하동윤-j4w3 жыл бұрын
마우스 클릭이 아닌 input manager에서 Throw를 만들고 g 로 바꿨습니다. 처음에는 투척되지 않고 제자리에서 터지며 캐릭터가 뜨길래 충돌하는 부분을 해제 했더니 Player가 grenade 를 투척 시 바라보고 있는 방향이 아닌 대각선 뒤쪽으로 던져집니다. 그래서 Player 위치에서 앞 쪽으로 날아가게 했는데 해결이 안 됩니다. 어떻게 해야될까요?
@goldmetal3 жыл бұрын
수류탄의 레이어를 설정해서 플레이어와 충돌하지 않게 설정하셔야 합니다. 이것은 Edit > Project Settings > Physics > Collision Matrix 에서 하실 수 있습니다.
@nana_04273 жыл бұрын
짱
@BB332244 жыл бұрын
안녕하세요 골드메탈님! 발견된 문제가 수류탄 관련이어서 이 영상에 댓글 남깁니다! 우클릭을 했더니 가지고 있는 수류탄을 전부 던지는데 혹시 어떻게 해결하는지 아실까요..!
@goldmetal3 жыл бұрын
우클릭 버튼 받는 방식이 Getbutton 이라면 GetButtonDown 으로 바꾸어주세요
@BB332243 жыл бұрын
@@goldmetal 감사합니다! ㅠㅠ 바로 해결되었어요
@건세동완 Жыл бұрын
안녕하세요 골드메탈님 영상 잘보고있습니다! 다름이 아니라 제가 수류탄을 완성하고 피격까지 완성하였는데요 수류탄을 맞춰도 Test Enemy의 색이 바뀌지도 않고 데미지도 들어가지 않습니다..오류라고 나오지도 않았습니다..분명 망치와 총도 데미지가 들어갔었는데 이젠 색만 바뀌고 데미지도 안들어가네요..나머진 다 구현이 됐습니다..! 어디가 문제인지 알수있을까요..?
@goldmetal Жыл бұрын
수류탘이 터질 때 나오는 콜라이더의 태그, 레이어를 확인해보셔야 할 것 같습니다.
@건세동완 Жыл бұрын
@@goldmetal 해결했습니다! 그냥 무시하고 Enemy 파트 하니까 해결되더라고요 Test Enemy한테 문제가 있었던듯 합니다.! 좋은 하루 보내세요~
@러퍼-f8v4 жыл бұрын
공전물체 제작에서 고정 댓글에서 코드를 새롭게 바꿔서 올려주셨습니다. 그런데 그대로 사용하니 수류탄 4개를 다먹고 던지면 수류탄이 1개가 돌기만 할뿐 던져지지 않습니다. 스크립트의 수정 부탁드립니다.
@@goldmetal If(hasGrenades == maxHasGranades)로 고쳐야 제대로 작동하네요. 앞으로도 좋은 영상 부탁 드리고 빠른 문제 해결 감사드립니다
@asdf-s9h3 жыл бұрын
수류탄을 던지고 폭발할때 NullReferenceException: Object reference not set to an instance of an object Grenade+d__4.MoveNext () (at Assets/Scripts/Grenade.cs:27) UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at :0) 위와 같은 에러거납니다 ㅠㅠ 몬스터한테 데미지도 안들어가구요 도와주시면 감사하겠습니다!
@goldmetal3 жыл бұрын
15:59 스피어캐스트 이후 결과가 없어서 그렇습니다. 몬스터의 레이어가 Enemy인지 인스펙터에서 확인해보세요
@BreadMeow8w82 жыл бұрын
보니까 maxdistance 도 설정해주니까 없어지네요. SphereCastAll(Vector3 origin, float radius, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal); 라고 되있는데 여기서 Physics.SphereCastAll(transform.position, 15, Vector3.up, 20, LayerMask.GetMask("GM_Enemy")); Vector3.up뒤에 float값을 더 추가해줘야 합니다. layer이름이 잘못된줄 알고 계속 반복해서 보다가 해결안되길래 float값 하나 더 추가하니까 됩니다. 15:46쯤에 보시면 골드메탈님은 0f를 쓰셨었네요. 그니까 이 값을 누락한게 맞는듯합니다.
@김세원-p1y4 жыл бұрын
게임프로그래밍쪽 관심있는데... 유니티먼저 시작해도 되나요?
@goldmetal4 жыл бұрын
C#과 병행하면서 시작하셔도 됩니다. 이 내용은 B4 강좌에서 다루었어요.
@민트초코-c8i5m3 жыл бұрын
수류탄을 5개이상 배치하고 다 먹으면 인덱스 초과했다고 오류뜨는대(null reference) 이후 강좌에서 이 부분 고치는것이 나오나요? 아니면 제가 뭔갈 잘못 작성했을까요 case Item.Type.Grenade: if (hasGrenades < maxHasGrenades) { grenades[hasGrenades].SetActive(true); hasGrenades += item.value; } if (hasGrenades > maxHasGrenades) hasGrenades = maxHasGrenades; break; 라고 if문 걸어서 현재수류탄이 최대수류탄을 넘지 않을때만 활성화,추가를 걸어서 null오류는 뜨지 않게 했습니다.
@goldmetal3 жыл бұрын
maxHasGrenades 를 5로 설정하셨다면 4로 바꿔주셔서 먹지 못하도록 해야 합니다.
@민트초코-c8i5m3 жыл бұрын
고쳤어요... 공전 구현부분에서 댓글 달으신거 보고 그대로 if(hasGrenades == maxHasGrenades) return; grenades[hasGrenades ].SetActive(true); hasGrenades += item.value; 라고 수정햇더니 문제가 없네요 답변갑사합니다
@정숙반숙백숙김숙3 жыл бұрын
void Start 실행 기준이 정확이 뭔가요? Explosion코루틴이 게임 시작됐을때 바로 시작이 안되나요?
@goldmetal3 жыл бұрын
게임 오브젝트가 활성화 되어있는 상태면 Update 실행 전에 한번 실행되는 단계입니다. 비활성화 되어있다가 활성화로 바뀌었을 때도 실행됩니다.
플레이어 154줄 의 Instantiate 매개변수가 잘못된 모양입니다. 첫번째는 프리펩 오브젝트, 두번째는 위치 Vector3, 세번째는 각도 Quaternion 타입이니 참고하세요. 각도의 경우 Quaternion .Identity 로 (0,0,0)을 줄 수 있습니다.
항상 잘보고있습니다. 제가 수류탄 폭발을 구현하려고 찾아보았는데요. 저는 일단 오류없이 잘 구현되었습니다. 저는 추가로 수류탄 위치에 따라 수류탄과 가까이 있는 적에게는 더 큰 힘을, 수류탄과 멀리 있는 적에게는 약한 힘을 주고 싶습니다. IEnumerator OnDamage(Vector3 reactVec) { yield return new WaitForSeconds(0.1f); //reactVec = reactVec.normalized; reactVec += Vector3.up * 3; rigid.freezeRotation = false; rigid.AddForce(reactVec * 200, ForceMode.Impulse); Destroy(gameObject, 4); } reactVec = reactVec.normalized; 이 코드를 사용하지 않으니 방향에 따라 힘의 크기는 달라졌습니다. 하지만 오히려 수류탄과 멀리있는 적에게 더 큰 힘이 작용합니다. 이것을 반대로 수류탄과 멀리있는 적은 가까이 있는 적보다 힘을 적게 주는 것으로 구현하고 싶은데 혹시 힌트가 있을까요?
@jamjam33792 жыл бұрын
여러 방법으로 계속 시도해 보다가 'AddExplosionForce'라는 함수를 발견하고 해결했습니다. 제가 초보라서 몇시간을 고민하다 머리 식힐겸 산책갔다와서 해봤는데 바로 해결을 했네요! public void HitByGrenade(Vector3 explosionPos) { StartCoroutine(OnDamage(explosionPos)); } IEnumerator OnDamage(Vector3 reactVec) { yield return new WaitForSeconds(0.1f); rigid.freezeRotation = false; rigid.AddExplosionForce(1000.0f, reactVec, 10, 5, ForceMode.Impulse); Destroy(gameObject, 4); }
안녕하세요 골드메탈님! 항상 좋은 영상 올려주셔서 감사합니다~ 궁금한게 있는데요, 수류탄이 폭발할때 데미지를 -100으로 설정했는데, Enemy가 피격될때 (Enemy hp는 200으로 설정) 100이 아닌 두배인 200으로 들어가서 바로 죽더라구요 혹시 몰라서 hp 감소 수치를 변경해도 똑같이 두배로 들어가는데, 이건 raycast의 Physics.SphereCastAll때문에 면적이 넓어서 그런건가요?
@goldmetal2 жыл бұрын
몬스터가 연속으로 두번 맞지 않도록 몬스터에게 bool isDamage; 을 추가해보시는 것이 좋겠습니다. HitByGrenade 함수 앞부분에 if(!isDamage) isDamage = true; 추가하고 OnDamage 끝부분에 isDamage = false; 추가하시면 됩니다.
Enemy.cs 에서 3가지 에러가 떠요. line 28,37 에서 false 를 넣어도 OnDamage가 빨강줄이 밑에 뜨네요 코드는 CS0103 line 47에서는 reactVec이 빨강줄이뜨네요 코드는 CS0136 drive.google.com/file/d/1cfFl-7WyKYvPO21KwqOlAaC8YGfxqcLQ/view?usp=sharing
@goldmetal4 жыл бұрын
첫번째는 OnDamage 코루틴을 찾을 수 없다는 이야기입니다. 스펠링이 다르거나 StartCoroutine()함수로 실행시키지 않아서 발생하는 문제입니다. 두번째는 reactVec에 public이 없어서 찾을 수 없는 것이니 확인해보세요.
@AwSoMeFactOry4 жыл бұрын
@@goldmetal 문재를 못 찾았어요 ㅠㅠ 여기 제 Enemy.cs 파일 drive.google.com/file/d/1nYHHe4l-GxzG8HpRqA4hdXm-tVpARrrG/view?usp=sharing 다운로드 해서 확인해주세요.
@goldmetal4 жыл бұрын
@@AwSoMeFactOry OnDamage 코루틴이 왜 HitByGrenade 함수 안에 들어가 있는지 모르겠지만, 함수처럼 따로 빼주세요.
@AwSoMeFactOry4 жыл бұрын
@@goldmetal 앗! 에러 부분만 봐서 함수는 못봣네요, 다음부터 에러뜨면 참고 할께요! 이제 에러가 없네요
@ShinSJ_084 жыл бұрын
4분전..
@KKKK-mk5it4 жыл бұрын
조아요 골드메탈 구독하기 골드메탈
@AwSoMeFactOry4 жыл бұрын
이번 영상 재미있게 봣습니다. drive.google.com/file/d/1InYmVBd-wwSCAITmtiFDECRbcNnMp-96/view?usp=sharing