좋은 강좌 잘 보고 있습니다. 감사합니다. 뒤로 때리면 데미지가 들어가는 것 해결방법 : Swing 코루틴에서 맨위의 waitforSeconds를 0.4초 정도로 하면 됩니다. 아마 애니메이션과 딜레이가 좀 안맞아서 그런것 같습니다. 저는 0.45 /0.1/ 0.3으로 했습니다
@LuKaion77 Жыл бұрын
와 개추ㅋㅋㅋㅋ 이러니깐 박스 높이 낮아도 타격이 들어가네ㅎㄷㄷㄷ
@ReeperKuruRuke Жыл бұрын
공격범위 콜라이더를 무기가 아니라 플레이어 앞에 지정된 공간을 따로 두는 방법도 있을꺼에요
@날드-i9t9 ай бұрын
감사합니다 덕분에 고쳤습니다.
@argolant3 ай бұрын
재밌습니다 감사합니다! 넉백 구현도 새로 배우고 얻어가는게 많아요ㅎㅎ 중력의 영향을 받는 총알이 바닥을 뚫고 가는 문제도 생겼는데 이것저것 실험해보다가 결국은 OnTriggerEnter에 floor검사 하는방법밖에 떠오르지 않네요 ㅠㅠ
@조화랑2 ай бұрын
선생님 혹시, 적이 죽었을 때 피격되지 않도록 하기 위해 레이어를 추가하신 이유가 따로 있을까요? if(other.tag == "Melee" && curHealth > 0) { Weapon weapon = other.GetComponent(); curHealth -= weapon.damage; StartCoroutine(OnDamage()); Debug.Log("Enemy_HP:" + curHealth); } 저는 이렇게 했는데, 이게 나중에 어떤 문제가 생길수 있기에 레이어를 추가하신건지 궁금합니다!
@goldmetalАй бұрын
이미 사망해서 사망 로직이 실행되었는데 이때 또 피격당하면 사망 로직이 중복으로 실행될 수 있기 때문입니다.
@kimjongin42483 жыл бұрын
밀리 무기 맨 처음 먹은 뒤 장착을 했을 때, 밀리 공격 범위(meleeArea)가 default로 해제가 안되어 있어서 target에 그냥 부딪히면 데미지 입혀짐 ㅋㅋㅋ 무기 장착할 때, 공격범위 초기화 필요한거 같아요.
@남윤호-e2x2 жыл бұрын
와 ㅋㅋㅋㅋ 천천히 따라해보는중에.... 이거 따라하시는분들중 저같은 실수 하실까봐 진짜 혹시나해서 댓글올립니다. 피격 테스터의 높이가 케릭터가 발사하는 날아가는 총알의 높이에 닿아야 피격이 이루어집니다 .......정말 당연한 사실임에도 불구하고.... 마치 피격이 안 먹히는것처럼 보여서 내가 뭘 실수했나 계속 이것저것 뒤져보느라 시간을 허비했네요 카메라가 위에서 바라보는 시점이라서 '왜 근접무기는 공격이 먹히는데 총알은 그냥 통과하지?' 하면서 끙끙댔네요....
@enjoy3014 жыл бұрын
쉽게 설명 잘해주셔서 정독중입니다 ㅠ 보고 따라하다 궁금한점이 생겼는데, 마피아 게임처럼 낮->투표->밤->낮 이렇게 계속 반복되는 게임은 대충 어떤방법을 써서 만드나요..?
@goldmetal4 жыл бұрын
시간흐름함수, 낮함수, 투표함수,밤함수 이렇게 함수 별로 나누어 로직을 구성하고 시간흐름 함수에서 deltaTime을 계속 더해서 약속된 시간이 되면 차례에 맞게 낮,투표,밤 함수를 실행하면 될 것 같네요. if(actionTime == 'Day') { Vote(); }
@숙회지2 жыл бұрын
B1부터 보면서 하니까 이제 오류는 손쉽게 수정할 수 있게 되었어요! 점점 똑똑해지는 것 같아서 기부니가 좋아요!
@MurlocGuy-om2wg Жыл бұрын
만약에 넉백 파워를 Player의 public 변수로 관리하고 싶으신 분들은 참고하세요 이렇게 하면 나중에 넉백 아이템이나 스킬 추가할때 편하게 관리할 것 같아서 검색해서 구현해봤습니다 Player 스크립트에서는 이렇게 해주세요 public class Player : MonoBehaviour { private static Player instance; public static Player Instance { get { if(null == instance) { return null; } return instance; } } (생략) Enemy 스크립트에서는 이렇게 해주세요 (생략) rigid.AddForce(reactVec * Player.Instance.knockbackPower , ForceMode.Impulse); (생략)
@ButterCream12-r4f2 ай бұрын
골드메탈님 영상 잘 보고 있습니다. 근데 이 영상을 따라가다 보니 enemy가 피격될 때 데미지가 두 번 적용되는 문제가 있었습니다. 어떻게 해결할까요? currentHealth을 Debug.Log을 해보면 Handgun 같은 경우에는 한 공격에 40이랑 20이라는 두 메세지가 뜹니다.
@goldmetal2 ай бұрын
발사 직후 일시 정지 하시고 하이어라키에서 총알이 2발 생성되었는지 확인이 필요하겠네요
@ButterCream12-r4f2 ай бұрын
@@goldmetal 확인해보니 총알은 한발만 생성이되고요. 그리고 망치 데메지가 25인데 오브젝트를 한번 때리면 체력이 50 깍였더라고요.
@goldmetal2 ай бұрын
@@ButterCream12-r4f 프레임에 의해 함수가 두번 실행된 것 같네요. 일단 게임매니저의 Awake에서 Applicaion.targetFrameRate = 60;을 추가해주시는 것이 좋겠습니다.
@ButterCream12-r4f2 ай бұрын
@@goldmetal 알고보니 SphereCollider가 두개있었네요. 참 바보같은 실수를 했네요. 감사합니다
@DragonMoney-t6z11 ай бұрын
혹시 적을 다 죽일떄 까지 안끝나게 하는 방법이 있나요? 저가 만든거는 갑자기 몇초 후에 메인으로 돌아왔는데 그 스테이지에 있는 적들이 그대로 남아서 메인까지 따라 들어와서요
@goldmetal11 ай бұрын
반대로 스테이지를 끝내는 함수가 어디에 사용되었는지 추적해보시고 왜 그게 호출되었는지 살펴보시는 것을 추천드립니다. 혹시 시간 타이머 때문에 자동으로 끝난게 아닌지도 살펴봐주세요.
@I_am_jake11042 жыл бұрын
10:36 계속 망치로 내려치면 그 적은 평생 회색이고 망치로 맞으면서 살수있다는
@김대영-u2l Жыл бұрын
강좌 보면서 열심히 공부하고 있는 사람입니다 ! 한 가지 질문이 있어서 댓글을 쓰는데요.. 근접무기를 E키로 선택한 다음 Cube를 때릴려고 다가가면 자동으로 Cube의 체력이 달아있어요 무슨 문제일까요 ㅠㅠ
@goldmetal Жыл бұрын
이미 근접무기의 콜라이더가 활성화 된 상태가 아닐까 합니다. 플레이 모드 하기 전에 미리 근접무기 범위 콜라이더는 비활성화 해주세요
@김익-x7c4 жыл бұрын
너무 재밌어요 ㅋㅋㅋㅋ
@김므름 Жыл бұрын
안녕하세요 골드메탈님 강좌 잘 보고 있는데 막히는 곳이 있어서 질문 드립니다. 피격 테스터에 망치로 때리면 빨간색으로 변하고 지워지는 것 까지 되는데 총으로 때리면 데미지는 들어가는데 지워지는것도 안되고 빨간색으로 변하는 것도 안됩니다. 어떻게 해야 될까요? 오류도 없습니다
골드메탈님 강좌 너무너무 재미있게 잘 보고 있습니다! 그런데 오늘도 질문이 있습니다 ^^; 제가 구현한 화면에서는 망치로 에너미 오브젝트를 공격할 때 골드메탈님 영상만큼 피격 판정이 잘 안 이뤄집니다. BoxCollider 1.2배 키워서 그나마 좀 되기는 하는데 화면 상으로는 분명 망치가 닿은 것 같은데 판정이 잘 안될 때가 많아요. 그리고 망치로 때리는 정면보다 오히려 뒤로 뺐을 때가 피격이 더 잘되는 것 같은데 혹시 어떤 식으로 수정을 하면 좋을까요? 망치의 BoxCollider를 키워야 할까요?
@goldmetal3 жыл бұрын
콜라이더 활성화 되는 시간이 너무 늦는가봅니다. Swing 함수에서 콜라이더 활성화 바로 앞의 WaitForSeconds() 시간을 좀 더 줄여보세요
@Joohyunsang3 жыл бұрын
@@goldmetal WaitForSeconds() 시간 조정해서 해결했습니다!! 감사합니다 :)
@danielchoi71084 жыл бұрын
오늘도 즐겁게 배우겠습니다 감사합니다
@김치-o7l4 жыл бұрын
갑자기 이런 말씀드리기가 좀 그렇지만 제가 유니티는 처음 시작해서 그러는데 프로젝트 창에서 스크립트를 더블클릭해서 편집기를 열어야 하는데 이게 열리지 않고 계속 이상한 문구가 떠요 찾아봐도 어떻게 해야 할지 모르겠어요 ㅜㅜ도와주세요
@goldmetal4 жыл бұрын
유니티 디버그 D1 영상 참고해보세요. kzbin.info/www/bejne/Y5uYfX6me89nhLM
@뚠뚠한고냥이 Жыл бұрын
ㅋㅋ 시체매너...겟앰프드 하셨나요?....ㅋㅋㅋㅋㅋ
@김민석-f3g6b Жыл бұрын
switch (tag) { case "Melee": reactVec = reactVec.normalized; reactVec += Vector3.up; rigid.AddForce(reactVec * 30, ForceMode.Impulse); break; case "Bullet": reactVec = reactVec.normalized; reactVec += Vector3.up; rigid.AddForce(reactVec * 1, ForceMode.Impulse); break; default: break; } 무기에 따라서 넉백을 설정하고 싶어서 코드를 작성을 했는데 저 스위치에 있는 tag에 뭘 넣어야 될지 잘 모르겠습니다. 잘 모르겠어서 현재 일단은 tag를 넣어 놓아봤습니다.
@goldmetal Жыл бұрын
14:08 처음에 근접, 총알 나눠서 하고 있으니 이걸 활용하시면 됩니다. OnDamage(Vector3 reactVec, bool isMelee) 로 매개변수 추가하시고 호출할 때도 StartCoroutine(OnDamage(reactVec, true)); 이런식으로 하시면 됩니다. 그럼 Addforce를 if(isisMelee) ~ else~로 나눠서 작성하실 수 있는 것이죠.
@ReeperKuruRuke Жыл бұрын
무기의 대미지에 따라 넉백을 다르게 준 사람입니다. OnDamage의 매개변수를 (Vector3 reactVec, float reactPower = 1)로 했으며 [매개변수를 정하는 곳에 특정한 값을 넣으면 그 매개변수는 전달하지 않아도 자동으로 그 값이 됩니다.] 호출할 땐 우선 총알을 삭제하기 전에 float reactPower = bullet.m_damage * 0.5f; 로 전달할 reactPower값을 저장하고 StartCoroutine(OnDamage(reactVec, reactPower)로 호출했습니다.
피격 테스트를 망치나 총으로 쏘는데 NullReferenceException: Object reference not set to an instance of an object Enemy.OnTriggerEnter (UnityEngine.Collider other) (at Assets/Scripts/Enemy.cs:33) 이러한 오류가 뜨면서 색깔이 변하질않네요. 코드도 비교해보는데 다른점은 없는거같고.... 혹시 어떤 문제인지 알 수 있을까요?
@goldmetal3 жыл бұрын
OnTriggerEnter 는 함수입니다. OnTriggerEnter() { ...} 이런 형태가 되어야 하니 참고하세요. 괄호 뒤에 세미콜론; 이 있어도 안됩니다.
@TV-dd8cc3 жыл бұрын
최고의 유니티 강의네요
@telun_project4 жыл бұрын
존경합니다.
@날드-i9t9 ай бұрын
16:28 총알 맞을시 삭제
@RimuruDev3 жыл бұрын
Большое спасибо за материал!
@와비사비룸물질보다정11 ай бұрын
좋은 강의 입니다
@악땅4 жыл бұрын
골드메탈님 항상 영상 잘 보고 있습니다 !! 근데 몬스터한테도 벽에 일어나던 현상(2020버전 관통현상)이 일어나는데.. 몬스터한테도 Ray를 써서 충돌방지를 하는게 좋을까요?ㅠㅠ
@goldmetal4 жыл бұрын
벌서 몬스터 이동까지 구현하셨군요. 어떻게 이동시키셨는지 모르겠지만 transform 이동이라면 해주는게 좋겠습니다. 참고로 이번 강좌에서 몬스터 이동은 transform 이동이 아닌 새로운 걸 사용할 겁니다. 😎 이번 주 주말에 업데이트 예정이에요.
@악땅4 жыл бұрын
@@goldmetal 감사합니다 !
@겜쟁이독사2 жыл бұрын
안녕하세요 강의 꾸준히 정말 감사하게 잘 보고 있습니다. 제가 해머로 공격하는 부분을 따라하던 중 등을 지고 때려야 데미지가 들어가는 것을 보고 댓글들을 좀 보니 Weapon 스크립트에서 USE 함수의 코루틴으로 구현 한 부분에서 박스를 너무 일찍 꺼버리는 것이 문제라고 이해했습니다. 그래서 박스 활성화 시간을 애니메이션의 타임을 보고 조절하려고 하는데 애니메이션의 10프레임에서 활성화하고 18프레임에서 비활성화하는 것으로 해 유니티가 60프레임이 1초하고 하여 아래와 같이 했습니다. yield return new WaitForSeconds(0.16f); -> 10프레임에 활성화 meleeArea.enabled = true; trailEffect.enabled = true; yield return new WaitForSeconds(0.3f); -> 18프레임에 비활성화 meleeArea.enabled = false; yield return new WaitForSeconds(0.33f); -> 이펙트는 그것보다 살짝 느리게 비활성화 trailEffect.enabled = false; 위에 와 같이 해서 앞에서 공격할 때 데미지가 안들어가는 부분은 해결했으나 여전히 등지고 공격할 때에는 데미지가 들어갑니다. 뭐가 잘못된 것일까요..
@goldmetal2 жыл бұрын
혹시 게임 시작전에 콜라이더가 미리 켜져있는지 확인해보시고 게임매니저 에서 게임 프레임을 60으로 고정해보시는 것이 좋겠습니다. docs.unity3d.com/ScriptReference/Application-targetFrameRate.html
@겜쟁이독사2 жыл бұрын
@@goldmetal 답변 감사드립니다. 캐릭터에 연결되어 있는 해머의 박스콜라이더는 꺼져있습니다.그래도 여전히... 뒤에서 맞네요;;; 그리고 추가로 말씀해주신 게임매니저에서 게임프레임을 60으로 고정하는 것은 1. GameManager라는 스크립트를 만들고 2. hierachy에 빈 오브젝트 생성 시킨 후 이름을 GameManager라고 한후 3. 위 오브젝트에 스크립트를 연결했습니다. 그리고 스크립트에 스타트에 말씀해주신 함수를 추가하였습니다. void Start() { Application.targetFrameRate = 60; } 이런 식으로 했는데 맞게 한 걸까요? ㅎㅎ;; 그래도 여전히 등 뒤에서 맞는 것은 여전하네요;;;
@goldmetal2 жыл бұрын
@@겜쟁이독사 네 프레임 고정은 맞습니다. GAme창 오른쪽 위에 Stat 눌러보시면 프레임 확인하실 수 있습니다. 해머가 자꾸 뒤에 맞는다면 Y축과 Z축고 과감하게 앞으로 당겨보시는것이 좋겠습니다. 얇게 줄이는 것도 좋구요.
@겜쟁이독사2 жыл бұрын
@@goldmetal 공격 애니에서 망치를 뒤로 드는 순간 콜라이더가 켜져있어서 그 콜라이더가 몬스터 콜라이더와 닿기 때문에 생기는 문제 같은데... 해머의 콜라이더 축을 수정하는 것이 맞을까요;;; 아님 제가 이해를 잘 못하는건지 ㅎㅎ;; 제가 그래서 게임화이랑 신화면 나란히 놓고 캐릭터가 망치를 뒤로 드는 순간 콜라이더가 어떤 상태인지를 볼라고 하는데 공격 애니 자체가 워낙 빨라 신 화면에서 퍼즈를 걸어 보려고 하는데 쉽지 않네요. 혹시 이런 부분을 디버깅하고나 상황을 파악할만한 방법이 있을까요? 매번 답변 해주심에 정말 감사드립니다. ㅜㅜ
@goldmetal2 жыл бұрын
@@겜쟁이독사 Scene 창과 Game 창을 나란히 두시고 아무데서나 첫 시작 때 Time.timeScale = 0.2f; 로 해두면 슬로우같이 됩니다. 그럼 타이밍을 눈으로 확인하실 수 있어요. 올해에 새로 리뉴얼할 때 이 부분은 좀 더 쉽게 바꿔보도록 하겠습니다.
@ratG4 жыл бұрын
깔려는데 영상이랑 좀 달라져서 잘 안되네요😅😅
@goldmetal4 жыл бұрын
겉모습만 조금 다를 뿐이지 기능은 동일합니다. 해당 강좌는 2019.4 LTS 로 진행되었으니 이 버전으로 설치해보세요
@김수-k2s Жыл бұрын
메탈님 이번 영상도 잘 보고있습니당. 이번 코드는 따라 하면서 안 되는 것들이 좀 많았는데요 1. 망치를 들고 때리면 정면에서는 적이 안 맞지만, 적을 캐릭터 뒤쪽으로 향해서 때리면 때리는 게 가능한데 이거는 뭐가 잘못된걸까요..? 2. 총들을 적과 벽에 공격하는 것은 총알들이 사라지지만 바닥에 총알이 닿으면 사라지지 않습니다. 이거는 상관 안 해도 괜찮을까요? 3. 무기를 들고 총을 쓰면 마우스가 캐릭터한테 가까이 있을 때 캐릭터가 위쪽으로 다 돌아가는데 이거는 괜찮을까요?
@김수-k2s Жыл бұрын
3번은 또 코드를 안쓴게있어서 쓰니 고쳐졌네용
@ReeperKuruRuke Жыл бұрын
테스트를 하다보니 간헐적으로 망치가 한 번 휘두르는데 순식간에 2대를 때리는 오류가 있는데 공격범위 콜라이더가 대상의 피격범위에 닿았다 - 떨어졌다 - 닿았다가 순식간에 일어나서 발생하는 오류 같습니다. 제가 공격속도를 빠르게 하기 위해 망치 휘두르는 애니메이션 재생 속도를 2배로 하다보니 이런 오류가 더 발생하기 쉬워진 것 같네요. 공격범위를 망치가 아니라 플레이어 앞 일정한 공간에 별도로 두는 것이 이 문제에서 조금은 더 자유로울 것 같지만 완전히 해결해주진 않을 것 같고... 어디선가 "대상은 이미 근접공격에 맞았다!"라는 플래그를 세워줘야 할 것 같은데...
@goldmetal Жыл бұрын
네 그래서 Enemy 스크립트에 bool isHit 변수 추가해주고 맞았을 때 if (isHit) return; 을 더 추가해서 맞고 잇는 중이라면 건너뛰게 합니다. 이후 바로 아래에는 isHit = true; 를 두어 맞지 않은 상태면 맞도록 플래그를 올려주지요. Invoke 혹은 코루틴으로 일정 시간 이후에 다시 isHit = false;로 바뀌도록 하면 됩니다.
여기서는 버그가 될만한 코드는 없는 것 같습니다. OnDamage가 계속 실행되는지 rigid.AddForce(reactVec * 0.5f, ForceMode.Impulse); 아래에 Debug.Log("피격!"); 추가해서 테스트 해보시는 것이 좋겠습니다.
@Funbox_admin Жыл бұрын
질문이 있습니다 3d정면으로 레이케스트 출력은 되는데 레이케스트를 360도 회전을 어떻게 해야 될지 모르겠습니다.
@goldmetal Жыл бұрын
시간 차를 두면서 회전하는게 아니라면 구체형태의 캐스팅인 Spherecast를 쓰시면 됩니다. wergia.tistory.com/m/102
@김태영-s2w9 ай бұрын
골든메탈님 여기 밑에 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Enemy : MonoBehaviour { public int maxHealth; public int curHealth; Rigidbody rigid; BoxCollider boxCollider; Material mat; void Awake() { rigid = GetComponent(); boxCollider = GetComponent(); mat = GetComponent().material; } private void OnTriggerEnter(Collider other) { if(other.tag == "Melee") { Weapon weapon = other.GetComponent(); curHealth -= weapon.damage; StartCoroutine(OnDamage()); } else if (other.tag == "Bullet") { Bullet bullet = other.GetComponent(); curHealth -= bullet.damage; StartCoroutine(OnDamage()); } } IEnumerable OnDamage() { mat.color = Color.red; yield return new WaitForSeconds(0.1f); if(curHealth > 0) { mat.color = Color.white; } else { mat.color = Color.gray; Destroy(gameObject, 4); } } } 에서 StartCoroutine(OnDamage()); ______________ 빨간줄로 Assets\Scripts\Enemy.cs(32,28): error CS1503: Argument 1: cannot convert from 'System.Collections.IEnumerable' to 'string' 뜹니다. 이게 왜 이럴까요?
@goldmetal9 ай бұрын
그 아래 코루틴 선언 부 IEnumerable OnDamage() 이것이 잘못되었습니다. IEnumerator 으로 바꾸어주세요!
@김태영-s2w9 ай бұрын
@@goldmetal아핳ㅎ 감사합니다. 자동완성을 잘 봐야겠네요.
@김태영-s2w9 ай бұрын
@@goldmetal 골든메탈님 Bullet SubMachineGun(Clone) Bullet HandGun(Clone) 이 안 없어져요 6:10 했는데요. 떨어지기만하고 밑으로요. 그리고 마지막까지 다 하고 15:53 이게 넉백되고 멈추지않고 스무스 하게 움직이다 없어져요.
@goldmetal9 ай бұрын
@@김태영-s2w 혹시 콜라이더만 지운건지 봐야겠네요. 게임오브젝트를 비활성화 .SetActive(false); 혹은 제거 Destroy(gameObject); 해야 하니 참고 바랍니다.
@김태영-s2w9 ай бұрын
@@goldmetal 잘은 모르겠지만 rigid바디 y축을 고정하여 일단 없어지게 해결 했습니다.
피격자 (몬스터)가 총알의 정보를 얻어오기 전에 파괴될 수 있습니다. 피격 오브젝트에 정보를 넘기는 함수를 먼저 해주는 로직이 있다면 말씀하신대로 하셔도 됩니다.
@콩콩이-e6g4 жыл бұрын
유니티를 깔고 싶은데 32비트라서 못 깔아요ㅠㅠ
@goldmetal4 жыл бұрын
32비트는 어쩔 수 없네요..😥
@상민아재3 жыл бұрын
안녕하세요~ 골드메탈님 강좌 잘 보고 있는데 막히는 곳이 있어서 질문 드립니다. 몬스터 AI 가 캐릭터쪽으로 다가 오고 마주보는순간 바로 데미지가 들어가는 현상이 있는데 어느부분에서 수정을해야 똑바로 근접무기를 휘둘렀을때 데미지가 들어갈까요?
@goldmetal3 жыл бұрын
시작 전에는 망치의 근접범위 콜라이더는 꺼주셔야 합니다.
@상민아재3 жыл бұрын
@@goldmetal 망치 콜라이더를 껐는데 캐릭터가 때리는 시늉만 하고 데미지는 들어가지가 않네요~ 무기 박스 콜라이더 체크가 켜지고 꺼지고 해야하는데 그게 실행자체가 되질 않네요.
@goldmetal3 жыл бұрын
@@상민아재 Swing() 함수 안에 Debug.Log("휘두르기"); 추가하고 실행해보세요. 콘솔창에 로그가 나오지 않는다면 무기 스크립트 Use함수가 호출이 안되는건지 의심해봐야합니다.
@0146-k6h4 жыл бұрын
골드메탈님 전에거는 고쳤는데 세 가지가 궁금합니다 (1)전에 물리엔진 고치기편에서 초록색 선 안나오게 하는 방법 알려주세요 ㅠㅠ (2)망치 때릴때 앞으로 때릴때는 안때려지고 뒤를보고 때려야지 때려져요 ㅠㅠ (3)Q/A 하실생각 있으신가요?
@goldmetal4 жыл бұрын
1. Debug.DrawRay()함수를 지워주시면 됩니다. 2. 망치 콜라이더를 때리는 부분쪽으로 옮겨주세요. 3.막히실때마다 그 영상에 이렇게 질문 올려주시면 됩니다.
@0146-k6h4 жыл бұрын
@@goldmetal 아, 그 의미의 Q/A가 아닙니다 ^^;; 그냥 다른 유튜버들도 하는 그런 평범한 Q/A말입니다.
@goldmetal4 жыл бұрын
@@0146-k6h 아직 계획은 없지만 나중에 한번 할 수 있도록 고려해보겠습니다~
@0146-k6h4 жыл бұрын
@@goldmetal 그럼 기대해볼게요!
@초코맛누룽지4 жыл бұрын
와 이번 강좌가 제일 재밌당
@jchoe31072 жыл бұрын
왜 제가 박스를 dead시키면, addforce에 의해서 공중으로 뜨고 바닥밑으로 꺼져 사라질까요..흠;;
@goldmetal2 жыл бұрын
콜라이더까지 비활성화 하는지 확인해보셔야 할 것 같아요
@hihi0_0hi Жыл бұрын
혹시 fbx 캐릭터는 단순 색변형이 안되는거 같은데 방법이있을까요?
@goldmetal Жыл бұрын
새로운 메테리얼 만드셔서 장면의 메쉬렌더러에 넣어주고 메테리얼 조절해주시면 됩니다
@MurlocGuy-om2wg Жыл бұрын
항상 좋은강의 감사드립니다 Test Enemy 공격시 NullReferenceException: Object reference not set to an instance of an object 에러가 뜹니다 mat.color = Color.red; mat.color = Color.white; mat.color = Color.gray; 이렇게 메테리얼 색깔 바꾸는 부분에서 에러가 나는거 같은데 어떻게 해야 할까요
@goldmetal Жыл бұрын
mat 변수가 비어있는 듯 하네요. 8:20 처럼 Awake에서 초기화 중인지 확인해주세요.
@MurlocGuy-om2wg Жыл бұрын
답변 감사합니다 Awake 함수에 오타가 있었네요!
@muhadojun2 жыл бұрын
Weapon Hammer로 피격할때 Test Enemy 앞에서 하면.. 피격이 안되고.. 뒤돌아선 위치에서 피격하면 그때 되는데...;;;; Weapon Hammer의 Box Collider 트리거 되어있고 수치고 봤는데.. 특이사항이 없어 보이는데... 먼가 반대로 적용되어있는거 같은데.. 어디를 봐야 할까요? (총은 잘 됩니다.) 05:16 기준으로보면 동일하게 적용되어 있습니다. ;;;
안녕하세요! 총은 잘 피격이되는대 망치는 안돼요ㅜㅜ 휘두르는건 되는데 콘솔창에 체력이 뜨지도 않고 적이 색깔도 안변하네요ㅜ 어떻게 고칠수있을까요?
@Nheung-bs9cy Жыл бұрын
박스 콜라이더의 크기를 3.5. 10 10 이렇게 엄청 크게 하니까 되는데 이래도 되나요?
@goldmetal Жыл бұрын
네 일단 되는쪽으로 수정해주시면 됩니다.
@williamstark99942 жыл бұрын
에너미끼리 겹쳐있는상태에서 피격대상 체력이 소진되면 넉백이 되는데, 겹쳐지지 않은 상태에서는 넉백이 되지 않습니다.. 도대체 뭐가 문제일까요..
@williamstark99942 жыл бұрын
불렛에 중력을 제거하고보니 잘 되는데 이거 왜이런걸까요... 이해가 가질 않네요 구글링해도 안나오고.. ㅠㅠ
@goldmetal2 жыл бұрын
테스트할 때 콘솔 창에 에러 메세지가 나오는지부터 확인해보세요.
@bjp72792 жыл бұрын
골드메탈님 혹시 넉백을 구현했는데 골드메탈님의 영상처럼 적이 위로 튀어올랐다가 멈추는게 아닌 바닥에 착지하고도 질질 끌리듯 뒤로 계속 움직이는 현상이 일어납니다. 어떤 문제인지 알 수 있을까요?
@goldmetal2 жыл бұрын
적 리지드바디의 Drag (저항값)을 올려주시거나 Physics Material을 추가해서 콜라이더의 Material 항목에 넣어주시면 됩니다. 이 때 Physics Material의 Friction이 마찰값이니 이걸 적절히 눌려주시면 됩니다.
@bjp72792 жыл бұрын
@@goldmetal 바로 해결되었습니다 감사해요!
@taewookim44723 жыл бұрын
좋은영상 많이 만들어 주셔서 감사합니다 혹시 6:23초에 나오는 설정처럼 했음에도 불구하고 총알이 살아지지 않으면 어떻게 해야 하나요? (벽에는 잘 작동하지만 땅은 잘 작동 못합니다, 한번 debug를 이용해서 충돌문제가 있나 했는데 잘 작동 해서 충돌에는 문제가 없는거 같아요)
@goldmetal3 жыл бұрын
땅의 오브젝트 선택하고 인스펙터에 tag가 Floor인지 확인해보세요.
@taewookim44723 жыл бұрын
네 tag까지 바꿔가면서 해봤는데 안돼요.. 혹시 bullet에 자식으로 Light를 추가 했는데 이거때문에 오류를 일으키지는 않겠죠?
@goldmetal3 жыл бұрын
@@taewookim4472 그것과는 문제가 없습니다. 그리고 해당 강좌는 총알이 땅을 터치하기 보단 탄피가 땅에 닿기 때문이 이 탄피를 제거하기 위해서 로직을 작성한거니 참고하세요.
@taewookim44723 жыл бұрын
아! OnTriggerEnter 쪽에 Floor Tag 까지 추가해서 해결했습니다
@choko96743 жыл бұрын
감사합니다 저도 됬어요!
@황선우-z4i3 жыл бұрын
플레이어도 트리거되게 하려고 box collider 컴포넌트체크하고 isTrigger도 체크하면 바닥을 뚫고 떨어져요 ㅠ 어떻게 안떨어지면서 isTrigger를 켜나요?
@goldmetal3 жыл бұрын
트리거 전용 콜라이더 + 물리전용 콜라이더 이런 식으로 한 오브젝트에 두 개의 콜라이더를 두시면 됩니다. 이 내용은 이미 아이템 만들기에서 한번 다루었어요.
@황선우-z4i3 жыл бұрын
@@goldmetal 정말 감사합니다
@건우이-k7v3 жыл бұрын
메탈님 데미지가 2번씩 들어가는건 어떻게하나요..?
@goldmetal3 жыл бұрын
OnTriggerEnter 대신 OnTriggerExit로 바꾸어 해결할 수도 있고 bool isDamage; 전역 번수를 두고 맞을 때마다 isDamage = true; 아주 잠시 뒤(색이 돌아올 때) isDamage = false;로 되돌리고 맞는 로직에 if(!isDamage) 조건을 추가해도 됩니다.
@@강웅빈-p2x 영상처럼 콜라이더 연두색 육면체가 해머보다 넘어가서 더 크도록 설정해보세요.
@강웅빈-p2x4 жыл бұрын
훨신 더 크게 했는데도 안되요 ㅠ
@goldmetal4 жыл бұрын
@@강웅빈-p2x 휘두를 때마다 콜라이더가 제대로 활성화 되고 있는지 휘두르는 로직 부근에 Debug.Log(meleeArea.enable); 로 검사해보세요
@intimeart83843 жыл бұрын
넉백이 안됩니다.. 코드도 계속 보고 하는데
@goldmetal3 жыл бұрын
몬스터 스크립트의 리지드바디 변수가 초기화 되어있는지 확인해보세요
@intimeart83843 жыл бұрын
삭제하고 다시 만들었더니 됐습니다..
@mobisseunghalee47443 жыл бұрын
C#도, Unity도 시작한지 10일밖에 안된 완전 초보입니다 ㅠ_ㅠ 물체를 등지고 때려야 딜이 박히는데, 이건 어떻게 해야 고칠 수 있을까요? ㅠㅠ 댓글에 보니까 망치 콜라이더를 때리는 부분으로 돌리라고 하셨는데, 어떻게 하는건지 이해가 되질않아서요.... 도움 좀 부탁드리겠습니다...
@goldmetal3 жыл бұрын
망치의 근접범위 오브젝트가 Z축으로 좀 더 이동시켜서 망치 앞부분으로 이동시키면 됩니다. 콜라이더의 Y축 크기고 늘려주면 좀 더 타격이 편할겁니다. 이건 인스펙터에서 콜라이더의 Size Y를 조절해주세요
@mobisseunghalee47443 жыл бұрын
@@goldmetal 답변 정말 감사합니다 ㅠ_ㅠ 제가 다른 좀 더 쉬운 프로젝트로 더 공부해서 다시 도전하도록 하겠습니다 ㅠ_ㅠ 골드메탈님 영상들 너무 좋습니다!
@mobisseunghalee47443 жыл бұрын
@@goldmetal 골드메탈님 영상 외에 질문이 있습니다! 추격전 같은 걸 만들고 싶은데요, player가 지나간 좌표를 enemy가 몇 초 뒤에 그대로 쫓아가게 만들고 싶은데 방법이 없을까요? 알고있던 방식으로 했더니, 벽을 낀 커브길이 나왔을 때, 벽쪽으로 기대면서 쫓아가게되는 현상이 있어서 벡터가 아닌, Player가 지나갔던 좌표를 그대로 쫓아가게 하려고 하는데 검색해도 모르겠습니다 ㅠ_ㅠ 도와주실수있으신가요?
@goldmetal3 жыл бұрын
@@mobisseunghalee4744 플레이어의 이동 좌표를 저장해두고 몬스터가 이걸 가져와서 NavAgent의 SetDestination() 으로 목표지점 설정하면 되지 않을까 하네요. 다만 플레이어 좌표 저장은 코루틴으로 몇초 뒤에 저장하도록 하면 좋겠네요.
@꿀빵-m1i Жыл бұрын
@@goldmetal 골드메탈님!! 안녕하세요. 망치의 근접범위 오브젝트가 어떤건가요??? 망치가 가지고 있는 오브젝트는 메쉬오브젝트랑 이펙트인데.. 아무리 만져봐도 어느 방향이 안바뀌네요ㅠㅠ
@AwSoMeFactOry3 жыл бұрын
거리를 두고 총을 쏘니까 박스에 맞기도 전에 바닥으로 사라져요
@goldmetal3 жыл бұрын
총알이 발사되는 방향이 아래쪽인지 발사 위치 오브젝트의 각도를 한번 봐야겠네요.
@AwSoMeFactOry3 жыл бұрын
@@goldmetal 오브젝트 각도는 0,0,0 인데 -10,0,0 하니까 더 멀리 총알이 나라가네요.
World Space에서 Wall과 Floor 모두 각각 태그가 되어있는데 벽에 박히는 총알은 사라지고 바닥에 떨어지는 총알은 사라지지 않아서 질문드립니다... ( 이게 문제인가 싶기도 해서 남겨용. Bullet 스크립트에서 if (collision.gameObject.tag == "Floor")에 붙어있는 gameObject는 GameObject collision.gameObject로 되어 있고 나머지 destroy와 other에 붙어있는 gameObject들은 GameObject Component.gameObject로 되있었습니다. ) 코드에도 문제가 있나 싶어서 코드도 남깁니다. void OnCollisionEnter(Collision collision) { if (collision.gameObject.tag == "Floor") { Destroy(gameObject, 3); } } void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Wall") { Destroy(gameObject, 3); } }
@goldmetal3 жыл бұрын
총알은 바닥에 떨어지면 안되서 리지드바디의 Use Gravity를 체크해제합니다. 그냥 두시려면 OnTriggerEnter에도 Floor 조건을 추가해주시면 됩니다. 총알의 콜라이더는 IsTrigger에 체크되어 있기 때문이죠