3D 쿼터뷰 액션게임 - 피격 테스터 만들기 [유니티 기초 강좌 B46]

  Рет қаралды 25,839

Goldmetal

Goldmetal

Күн бұрын

Пікірлер: 189
@류흠냥
@류흠냥 2 жыл бұрын
좋은 강좌 잘 보고 있습니다. 감사합니다. 뒤로 때리면 데미지가 들어가는 것 해결방법 : Swing 코루틴에서 맨위의 waitforSeconds를 0.4초 정도로 하면 됩니다. 아마 애니메이션과 딜레이가 좀 안맞아서 그런것 같습니다. 저는 0.45 /0.1/ 0.3으로 했습니다
@LuKaion77
@LuKaion77 Жыл бұрын
와 개추ㅋㅋㅋㅋ 이러니깐 박스 높이 낮아도 타격이 들어가네ㅎㄷㄷㄷ
@ReeperKuruRuke
@ReeperKuruRuke Жыл бұрын
공격범위 콜라이더를 무기가 아니라 플레이어 앞에 지정된 공간을 따로 두는 방법도 있을꺼에요
@날드-i9t
@날드-i9t 9 ай бұрын
감사합니다 덕분에 고쳤습니다.
@argolant
@argolant 3 ай бұрын
재밌습니다 감사합니다! 넉백 구현도 새로 배우고 얻어가는게 많아요ㅎㅎ 중력의 영향을 받는 총알이 바닥을 뚫고 가는 문제도 생겼는데 이것저것 실험해보다가 결국은 OnTriggerEnter에 floor검사 하는방법밖에 떠오르지 않네요 ㅠㅠ
@조화랑
@조화랑 2 ай бұрын
선생님 혹시, 적이 죽었을 때 피격되지 않도록 하기 위해 레이어를 추가하신 이유가 따로 있을까요? if(other.tag == "Melee" && curHealth > 0) { Weapon weapon = other.GetComponent(); curHealth -= weapon.damage; StartCoroutine(OnDamage()); Debug.Log("Enemy_HP:" + curHealth); } 저는 이렇게 했는데, 이게 나중에 어떤 문제가 생길수 있기에 레이어를 추가하신건지 궁금합니다!
@goldmetal
@goldmetal Ай бұрын
이미 사망해서 사망 로직이 실행되었는데 이때 또 피격당하면 사망 로직이 중복으로 실행될 수 있기 때문입니다.
@kimjongin4248
@kimjongin4248 3 жыл бұрын
밀리 무기 맨 처음 먹은 뒤 장착을 했을 때, 밀리 공격 범위(meleeArea)가 default로 해제가 안되어 있어서 target에 그냥 부딪히면 데미지 입혀짐 ㅋㅋㅋ 무기 장착할 때, 공격범위 초기화 필요한거 같아요.
@남윤호-e2x
@남윤호-e2x 2 жыл бұрын
와 ㅋㅋㅋㅋ 천천히 따라해보는중에.... 이거 따라하시는분들중 저같은 실수 하실까봐 진짜 혹시나해서 댓글올립니다. 피격 테스터의 높이가 케릭터가 발사하는 날아가는 총알의 높이에 닿아야 피격이 이루어집니다 .......정말 당연한 사실임에도 불구하고.... 마치 피격이 안 먹히는것처럼 보여서 내가 뭘 실수했나 계속 이것저것 뒤져보느라 시간을 허비했네요 카메라가 위에서 바라보는 시점이라서 '왜 근접무기는 공격이 먹히는데 총알은 그냥 통과하지?' 하면서 끙끙댔네요....
@enjoy301
@enjoy301 4 жыл бұрын
쉽게 설명 잘해주셔서 정독중입니다 ㅠ 보고 따라하다 궁금한점이 생겼는데, 마피아 게임처럼 낮->투표->밤->낮 이렇게 계속 반복되는 게임은 대충 어떤방법을 써서 만드나요..?
@goldmetal
@goldmetal 4 жыл бұрын
시간흐름함수, 낮함수, 투표함수,밤함수 이렇게 함수 별로 나누어 로직을 구성하고 시간흐름 함수에서 deltaTime을 계속 더해서 약속된 시간이 되면 차례에 맞게 낮,투표,밤 함수를 실행하면 될 것 같네요. if(actionTime == 'Day') { Vote(); }
@숙회지
@숙회지 2 жыл бұрын
B1부터 보면서 하니까 이제 오류는 손쉽게 수정할 수 있게 되었어요! 점점 똑똑해지는 것 같아서 기부니가 좋아요!
@MurlocGuy-om2wg
@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-r4f
@ButterCream12-r4f 2 ай бұрын
골드메탈님 영상 잘 보고 있습니다. 근데 이 영상을 따라가다 보니 enemy가 피격될 때 데미지가 두 번 적용되는 문제가 있었습니다. 어떻게 해결할까요? currentHealth을 Debug.Log을 해보면 Handgun 같은 경우에는 한 공격에 40이랑 20이라는 두 메세지가 뜹니다.
@goldmetal
@goldmetal 2 ай бұрын
발사 직후 일시 정지 하시고 하이어라키에서 총알이 2발 생성되었는지 확인이 필요하겠네요
@ButterCream12-r4f
@ButterCream12-r4f 2 ай бұрын
@@goldmetal 확인해보니 총알은 한발만 생성이되고요. 그리고 망치 데메지가 25인데 오브젝트를 한번 때리면 체력이 50 깍였더라고요.
@goldmetal
@goldmetal 2 ай бұрын
@@ButterCream12-r4f 프레임에 의해 함수가 두번 실행된 것 같네요. 일단 게임매니저의 Awake에서 Applicaion.targetFrameRate = 60;을 추가해주시는 것이 좋겠습니다.
@ButterCream12-r4f
@ButterCream12-r4f 2 ай бұрын
@@goldmetal 알고보니 SphereCollider가 두개있었네요. 참 바보같은 실수를 했네요. 감사합니다
@DragonMoney-t6z
@DragonMoney-t6z 11 ай бұрын
혹시 적을 다 죽일떄 까지 안끝나게 하는 방법이 있나요? 저가 만든거는 갑자기 몇초 후에 메인으로 돌아왔는데 그 스테이지에 있는 적들이 그대로 남아서 메인까지 따라 들어와서요
@goldmetal
@goldmetal 11 ай бұрын
반대로 스테이지를 끝내는 함수가 어디에 사용되었는지 추적해보시고 왜 그게 호출되었는지 살펴보시는 것을 추천드립니다. 혹시 시간 타이머 때문에 자동으로 끝난게 아닌지도 살펴봐주세요.
@I_am_jake1104
@I_am_jake1104 2 жыл бұрын
10:36 계속 망치로 내려치면 그 적은 평생 회색이고 망치로 맞으면서 살수있다는
@김대영-u2l
@김대영-u2l Жыл бұрын
강좌 보면서 열심히 공부하고 있는 사람입니다 ! 한 가지 질문이 있어서 댓글을 쓰는데요.. 근접무기를 E키로 선택한 다음 Cube를 때릴려고 다가가면 자동으로 Cube의 체력이 달아있어요 무슨 문제일까요 ㅠㅠ
@goldmetal
@goldmetal Жыл бұрын
이미 근접무기의 콜라이더가 활성화 된 상태가 아닐까 합니다. 플레이 모드 하기 전에 미리 근접무기 범위 콜라이더는 비활성화 해주세요
@김익-x7c
@김익-x7c 4 жыл бұрын
너무 재밌어요 ㅋㅋㅋㅋ
@김므름
@김므름 Жыл бұрын
안녕하세요 골드메탈님 강좌 잘 보고 있는데 막히는 곳이 있어서 질문 드립니다. 피격 테스터에 망치로 때리면 빨간색으로 변하고 지워지는 것 까지 되는데 총으로 때리면 데미지는 들어가는데 지워지는것도 안되고 빨간색으로 변하는 것도 안됩니다. 어떻게 해야 될까요? 오류도 없습니다
@김므름
@김므름 Жыл бұрын
아 골메님 제가 Bullet쪽에 StartCoroutine(OnDamage());을 안썼네요 쓰니까 정상작동 됩니다
@Joohyunsang
@Joohyunsang 3 жыл бұрын
골드메탈님 강좌 너무너무 재미있게 잘 보고 있습니다! 그런데 오늘도 질문이 있습니다 ^^; 제가 구현한 화면에서는 망치로 에너미 오브젝트를 공격할 때 골드메탈님 영상만큼 피격 판정이 잘 안 이뤄집니다. BoxCollider 1.2배 키워서 그나마 좀 되기는 하는데 화면 상으로는 분명 망치가 닿은 것 같은데 판정이 잘 안될 때가 많아요. 그리고 망치로 때리는 정면보다 오히려 뒤로 뺐을 때가 피격이 더 잘되는 것 같은데 혹시 어떤 식으로 수정을 하면 좋을까요? 망치의 BoxCollider를 키워야 할까요?
@goldmetal
@goldmetal 3 жыл бұрын
콜라이더 활성화 되는 시간이 너무 늦는가봅니다. Swing 함수에서 콜라이더 활성화 바로 앞의 WaitForSeconds() 시간을 좀 더 줄여보세요
@Joohyunsang
@Joohyunsang 3 жыл бұрын
@@goldmetal WaitForSeconds() 시간 조정해서 해결했습니다!! 감사합니다 :)
@danielchoi7108
@danielchoi7108 4 жыл бұрын
오늘도 즐겁게 배우겠습니다 감사합니다
@김치-o7l
@김치-o7l 4 жыл бұрын
갑자기 이런 말씀드리기가 좀 그렇지만 제가 유니티는 처음 시작해서 그러는데 프로젝트 창에서 스크립트를 더블클릭해서 편집기를 열어야 하는데 이게 열리지 않고 계속 이상한 문구가 떠요 찾아봐도 어떻게 해야 할지 모르겠어요 ㅜㅜ도와주세요
@goldmetal
@goldmetal 4 жыл бұрын
유니티 디버그 D1 영상 참고해보세요. kzbin.info/www/bejne/Y5uYfX6me89nhLM
@뚠뚠한고냥이
@뚠뚠한고냥이 Жыл бұрын
ㅋㅋ 시체매너...겟앰프드 하셨나요?....ㅋㅋㅋㅋㅋ
@김민석-f3g6b
@김민석-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
@goldmetal Жыл бұрын
14:08 처음에 근접, 총알 나눠서 하고 있으니 이걸 활용하시면 됩니다. OnDamage(Vector3 reactVec, bool isMelee) 로 매개변수 추가하시고 호출할 때도 StartCoroutine(OnDamage(reactVec, true)); 이런식으로 하시면 됩니다. 그럼 Addforce를 if(isisMelee) ~ else~로 나눠서 작성하실 수 있는 것이죠.
@ReeperKuruRuke
@ReeperKuruRuke Жыл бұрын
무기의 대미지에 따라 넉백을 다르게 준 사람입니다. OnDamage의 매개변수를 (Vector3 reactVec, float reactPower = 1)로 했으며 [매개변수를 정하는 곳에 특정한 값을 넣으면 그 매개변수는 전달하지 않아도 자동으로 그 값이 됩니다.] 호출할 땐 우선 총알을 삭제하기 전에 float reactPower = bullet.m_damage * 0.5f; 로 전달할 reactPower값을 저장하고 StartCoroutine(OnDamage(reactVec, reactPower)로 호출했습니다.
@ReeperKuruRuke
@ReeperKuruRuke Жыл бұрын
다음은 코드 전문입니다 (강좌와 다른 변수명이 있어요 reactVec을 knockbackVec이라 하거나...) IEnumerator Coroutine_OnDamage(Vector3 knockbackVec, float knockbackPower = 1) { m_material.color = Color.red; yield return new WaitForSeconds(0.1f); if (m_healthCur > 0) m_material.color = Color.white; else { m_material.color = Color.gray; gameObject.layer = 11; knockbackVec = knockbackVec.normalized; knockbackVec += Vector3.up * 0.5f; m_rigid.AddForce(knockbackVec * knockbackPower, ForceMode.Impulse); Destroy(gameObject, 4); } } void OnHitMelee(Collider melee) { WeaponController weapon = melee.GetComponent(); m_healthCur -= weapon.m_damage; Vector3 knockbackVec = transform.position - melee.transform.position; StartCoroutine(Coroutine_OnDamage(knockbackVec, weapon.m_damage)); } void OnHitBullet(Collider ranged) { BulletController bullet = ranged.GetComponent(); m_healthCur -= bullet.m_damage; Vector3 knockbackVec = transform.position - ranged.transform.position; float knockbackPower = bullet.m_damage * 0.5f; Destroy(ranged.gameObject); StartCoroutine(Coroutine_OnDamage(knockbackVec, knockbackPower)); } void OnTriggerEnter(Collider other) { if (other.CompareTag("Melee")) OnHitMelee(other); else if (other.CompareTag("Bullet")) OnHitBullet(other); }
@김민석-f3g6b
@김민석-f3g6b Жыл бұрын
@@ReeperKuruRuke 와 감사합니다
@gim-ori
@gim-ori Жыл бұрын
코루틴은 개념이 생소해서 아직도 잘 모루겠네요 허허 익숙해져야할게 너모 만타
@DungeonsSlimes
@DungeonsSlimes 2 жыл бұрын
"최고의 강의"
@pyeongmin1231
@pyeongmin1231 4 жыл бұрын
오늘도 좋은 강의 감사드려요.ㅎㅎ
@Dudud1283
@Dudud1283 3 жыл бұрын
피격 테스트를 망치나 총으로 쏘는데 NullReferenceException: Object reference not set to an instance of an object Enemy.OnTriggerEnter (UnityEngine.Collider other) (at Assets/Scripts/Enemy.cs:33) 이러한 오류가 뜨면서 색깔이 변하질않네요. 코드도 비교해보는데 다른점은 없는거같고.... 혹시 어떤 문제인지 알 수 있을까요?
@goldmetal
@goldmetal 3 жыл бұрын
OnTriggerEnter 는 함수입니다. OnTriggerEnter() { ...} 이런 형태가 되어야 하니 참고하세요. 괄호 뒤에 세미콜론; 이 있어도 안됩니다.
@TV-dd8cc
@TV-dd8cc 3 жыл бұрын
최고의 유니티 강의네요
@telun_project
@telun_project 4 жыл бұрын
존경합니다.
@날드-i9t
@날드-i9t 9 ай бұрын
16:28 총알 맞을시 삭제
@RimuruDev
@RimuruDev 3 жыл бұрын
Большое спасибо за материал!
@와비사비룸물질보다정
@와비사비룸물질보다정 11 ай бұрын
좋은 강의 입니다
@악땅
@악땅 4 жыл бұрын
골드메탈님 항상 영상 잘 보고 있습니다 !! 근데 몬스터한테도 벽에 일어나던 현상(2020버전 관통현상)이 일어나는데.. 몬스터한테도 Ray를 써서 충돌방지를 하는게 좋을까요?ㅠㅠ
@goldmetal
@goldmetal 4 жыл бұрын
벌서 몬스터 이동까지 구현하셨군요. 어떻게 이동시키셨는지 모르겠지만 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; 위에 와 같이 해서 앞에서 공격할 때 데미지가 안들어가는 부분은 해결했으나 여전히 등지고 공격할 때에는 데미지가 들어갑니다. 뭐가 잘못된 것일까요..
@goldmetal
@goldmetal 2 жыл бұрын
혹시 게임 시작전에 콜라이더가 미리 켜져있는지 확인해보시고 게임매니저 에서 게임 프레임을 60으로 고정해보시는 것이 좋겠습니다. docs.unity3d.com/ScriptReference/Application-targetFrameRate.html
@겜쟁이독사
@겜쟁이독사 2 жыл бұрын
@@goldmetal 답변 감사드립니다. 캐릭터에 연결되어 있는 해머의 박스콜라이더는 꺼져있습니다.그래도 여전히... 뒤에서 맞네요;;; 그리고 추가로 말씀해주신 게임매니저에서 게임프레임을 60으로 고정하는 것은 1. GameManager라는 스크립트를 만들고 2. hierachy에 빈 오브젝트 생성 시킨 후 이름을 GameManager라고 한후 3. 위 오브젝트에 스크립트를 연결했습니다. 그리고 스크립트에 스타트에 말씀해주신 함수를 추가하였습니다. void Start() { Application.targetFrameRate = 60; } 이런 식으로 했는데 맞게 한 걸까요? ㅎㅎ;; 그래도 여전히 등 뒤에서 맞는 것은 여전하네요;;;
@goldmetal
@goldmetal 2 жыл бұрын
@@겜쟁이독사 네 프레임 고정은 맞습니다. GAme창 오른쪽 위에 Stat 눌러보시면 프레임 확인하실 수 있습니다. 해머가 자꾸 뒤에 맞는다면 Y축과 Z축고 과감하게 앞으로 당겨보시는것이 좋겠습니다. 얇게 줄이는 것도 좋구요.
@겜쟁이독사
@겜쟁이독사 2 жыл бұрын
​@@goldmetal 공격 애니에서 망치를 뒤로 드는 순간 콜라이더가 켜져있어서 그 콜라이더가 몬스터 콜라이더와 닿기 때문에 생기는 문제 같은데... 해머의 콜라이더 축을 수정하는 것이 맞을까요;;; 아님 제가 이해를 잘 못하는건지 ㅎㅎ;; 제가 그래서 게임화이랑 신화면 나란히 놓고 캐릭터가 망치를 뒤로 드는 순간 콜라이더가 어떤 상태인지를 볼라고 하는데 공격 애니 자체가 워낙 빨라 신 화면에서 퍼즈를 걸어 보려고 하는데 쉽지 않네요. 혹시 이런 부분을 디버깅하고나 상황을 파악할만한 방법이 있을까요? 매번 답변 해주심에 정말 감사드립니다. ㅜㅜ
@goldmetal
@goldmetal 2 жыл бұрын
@@겜쟁이독사 Scene 창과 Game 창을 나란히 두시고 아무데서나 첫 시작 때 Time.timeScale = 0.2f; 로 해두면 슬로우같이 됩니다. 그럼 타이밍을 눈으로 확인하실 수 있어요. 올해에 새로 리뉴얼할 때 이 부분은 좀 더 쉽게 바꿔보도록 하겠습니다.
@ratG
@ratG 4 жыл бұрын
깔려는데 영상이랑 좀 달라져서 잘 안되네요😅😅
@goldmetal
@goldmetal 4 жыл бұрын
겉모습만 조금 다를 뿐이지 기능은 동일합니다. 해당 강좌는 2019.4 LTS 로 진행되었으니 이 버전으로 설치해보세요
@김수-k2s
@김수-k2s Жыл бұрын
메탈님 이번 영상도 잘 보고있습니당. 이번 코드는 따라 하면서 안 되는 것들이 좀 많았는데요 1. 망치를 들고 때리면 정면에서는 적이 안 맞지만, 적을 캐릭터 뒤쪽으로 향해서 때리면 때리는 게 가능한데 이거는 뭐가 잘못된걸까요..? 2. 총들을 적과 벽에 공격하는 것은 총알들이 사라지지만 바닥에 총알이 닿으면 사라지지 않습니다. 이거는 상관 안 해도 괜찮을까요? 3. 무기를 들고 총을 쓰면 마우스가 캐릭터한테 가까이 있을 때 캐릭터가 위쪽으로 다 돌아가는데 이거는 괜찮을까요?
@김수-k2s
@김수-k2s Жыл бұрын
3번은 또 코드를 안쓴게있어서 쓰니 고쳐졌네용
@ReeperKuruRuke
@ReeperKuruRuke Жыл бұрын
테스트를 하다보니 간헐적으로 망치가 한 번 휘두르는데 순식간에 2대를 때리는 오류가 있는데 공격범위 콜라이더가 대상의 피격범위에 닿았다 - 떨어졌다 - 닿았다가 순식간에 일어나서 발생하는 오류 같습니다. 제가 공격속도를 빠르게 하기 위해 망치 휘두르는 애니메이션 재생 속도를 2배로 하다보니 이런 오류가 더 발생하기 쉬워진 것 같네요. 공격범위를 망치가 아니라 플레이어 앞 일정한 공간에 별도로 두는 것이 이 문제에서 조금은 더 자유로울 것 같지만 완전히 해결해주진 않을 것 같고... 어디선가 "대상은 이미 근접공격에 맞았다!"라는 플래그를 세워줘야 할 것 같은데...
@goldmetal
@goldmetal Жыл бұрын
네 그래서 Enemy 스크립트에 bool isHit 변수 추가해주고 맞았을 때 if (isHit) return; 을 더 추가해서 맞고 잇는 중이라면 건너뛰게 합니다. 이후 바로 아래에는 isHit = true; 를 두어 맞지 않은 상태면 맞도록 플래그를 올려주지요. Invoke 혹은 코루틴으로 일정 시간 이후에 다시 isHit = false;로 바뀌도록 하면 됩니다.
@정여눈
@정여눈 2 жыл бұрын
골드메탈님.. ㅠㅠㅠㅠ 넉백추가 해서 성공은 했는데 제가 때릴때마다 넉백이 되게하고싶어서 IEnumerator OnDamage(Vector3 reactVec) { mat.color = Color.red; yield return new WaitForSeconds(0.1f); reactVec = reactVec.normalized; reactVec += Vector3.up; rigid.AddForce(reactVec * 0.5f, ForceMode.Impulse); if (curHealth > 0) { mat.color = Color.white; } else { gameObject.layer = 6; mat.color = Color.grey; Destroy(gameObject, 1.5f); } } else문 안에 안넣고 저기다가 넣었는데 cube가 넉백은되는데 계속 날라가네요 ㅠㅠ 왜죠?? 해결방법알수 있을까요?
@goldmetal
@goldmetal 2 жыл бұрын
여기서는 버그가 될만한 코드는 없는 것 같습니다. OnDamage가 계속 실행되는지 rigid.AddForce(reactVec * 0.5f, ForceMode.Impulse); 아래에 Debug.Log("피격!"); 추가해서 테스트 해보시는 것이 좋겠습니다.
@Funbox_admin
@Funbox_admin Жыл бұрын
질문이 있습니다 3d정면으로 레이케스트 출력은 되는데 레이케스트를 360도 회전을 어떻게 해야 될지 모르겠습니다.
@goldmetal
@goldmetal Жыл бұрын
시간 차를 두면서 회전하는게 아니라면 구체형태의 캐스팅인 Spherecast를 쓰시면 됩니다. wergia.tistory.com/m/102
@김태영-s2w
@김태영-s2w 9 ай бұрын
골든메탈님 여기 밑에 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' 뜹니다. 이게 왜 이럴까요?
@goldmetal
@goldmetal 9 ай бұрын
그 아래 코루틴 선언 부 IEnumerable OnDamage() 이것이 잘못되었습니다. IEnumerator 으로 바꾸어주세요!
@김태영-s2w
@김태영-s2w 9 ай бұрын
@@goldmetal아핳ㅎ 감사합니다. 자동완성을 잘 봐야겠네요.
@김태영-s2w
@김태영-s2w 9 ай бұрын
​@@goldmetal 골든메탈님 Bullet SubMachineGun(Clone) Bullet HandGun(Clone) 이 안 없어져요 6:10 했는데요. 떨어지기만하고 밑으로요. 그리고 마지막까지 다 하고 15:53 이게 넉백되고 멈추지않고 스무스 하게 움직이다 없어져요.
@goldmetal
@goldmetal 9 ай бұрын
@@김태영-s2w 혹시 콜라이더만 지운건지 봐야겠네요. 게임오브젝트를 비활성화 .SetActive(false); 혹은 제거 Destroy(gameObject); 해야 하니 참고 바랍니다.
@김태영-s2w
@김태영-s2w 9 ай бұрын
@@goldmetal 잘은 모르겠지만 rigid바디 y축을 고정하여 일단 없어지게 해결 했습니다.
@아직안늦었다
@아직안늦었다 2 жыл бұрын
총알이 몬스터에 피격될시 파괴를 Bullet 스크립트 OnTriggerEnter 구문에 넣어도 상관은 없나요? 총알이 파괴되는거니 보기편하게 Bullet에다가 넣고 싶은데
@goldmetal
@goldmetal 2 жыл бұрын
피격자 (몬스터)가 총알의 정보를 얻어오기 전에 파괴될 수 있습니다. 피격 오브젝트에 정보를 넘기는 함수를 먼저 해주는 로직이 있다면 말씀하신대로 하셔도 됩니다.
@콩콩이-e6g
@콩콩이-e6g 4 жыл бұрын
유니티를 깔고 싶은데 32비트라서 못 깔아요ㅠㅠ
@goldmetal
@goldmetal 4 жыл бұрын
32비트는 어쩔 수 없네요..😥
@상민아재
@상민아재 3 жыл бұрын
안녕하세요~ 골드메탈님 강좌 잘 보고 있는데 막히는 곳이 있어서 질문 드립니다. 몬스터 AI 가 캐릭터쪽으로 다가 오고 마주보는순간 바로 데미지가 들어가는 현상이 있는데 어느부분에서 수정을해야 똑바로 근접무기를 휘둘렀을때 데미지가 들어갈까요?
@goldmetal
@goldmetal 3 жыл бұрын
시작 전에는 망치의 근접범위 콜라이더는 꺼주셔야 합니다.
@상민아재
@상민아재 3 жыл бұрын
@@goldmetal 망치 콜라이더를 껐는데 캐릭터가 때리는 시늉만 하고 데미지는 들어가지가 않네요~ 무기 박스 콜라이더 체크가 켜지고 꺼지고 해야하는데 그게 실행자체가 되질 않네요.
@goldmetal
@goldmetal 3 жыл бұрын
@@상민아재 Swing() 함수 안에 Debug.Log("휘두르기"); 추가하고 실행해보세요. 콘솔창에 로그가 나오지 않는다면 무기 스크립트 Use함수가 호출이 안되는건지 의심해봐야합니다.
@0146-k6h
@0146-k6h 4 жыл бұрын
골드메탈님 전에거는 고쳤는데 세 가지가 궁금합니다 (1)전에 물리엔진 고치기편에서 초록색 선 안나오게 하는 방법 알려주세요 ㅠㅠ (2)망치 때릴때 앞으로 때릴때는 안때려지고 뒤를보고 때려야지 때려져요 ㅠㅠ (3)Q/A 하실생각 있으신가요?
@goldmetal
@goldmetal 4 жыл бұрын
1. Debug.DrawRay()함수를 지워주시면 됩니다. 2. 망치 콜라이더를 때리는 부분쪽으로 옮겨주세요. 3.막히실때마다 그 영상에 이렇게 질문 올려주시면 됩니다.
@0146-k6h
@0146-k6h 4 жыл бұрын
@@goldmetal 아, 그 의미의 Q/A가 아닙니다 ^^;; 그냥 다른 유튜버들도 하는 그런 평범한 Q/A말입니다.
@goldmetal
@goldmetal 4 жыл бұрын
@@0146-k6h 아직 계획은 없지만 나중에 한번 할 수 있도록 고려해보겠습니다~
@0146-k6h
@0146-k6h 4 жыл бұрын
@@goldmetal 그럼 기대해볼게요!
@초코맛누룽지
@초코맛누룽지 4 жыл бұрын
와 이번 강좌가 제일 재밌당
@jchoe3107
@jchoe3107 2 жыл бұрын
왜 제가 박스를 dead시키면, addforce에 의해서 공중으로 뜨고 바닥밑으로 꺼져 사라질까요..흠;;
@goldmetal
@goldmetal 2 жыл бұрын
콜라이더까지 비활성화 하는지 확인해보셔야 할 것 같아요
@hihi0_0hi
@hihi0_0hi Жыл бұрын
혹시 fbx 캐릭터는 단순 색변형이 안되는거 같은데 방법이있을까요?
@goldmetal
@goldmetal Жыл бұрын
새로운 메테리얼 만드셔서 장면의 메쉬렌더러에 넣어주고 메테리얼 조절해주시면 됩니다
@MurlocGuy-om2wg
@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
@goldmetal Жыл бұрын
mat 변수가 비어있는 듯 하네요. 8:20 처럼 Awake에서 초기화 중인지 확인해주세요.
@MurlocGuy-om2wg
@MurlocGuy-om2wg Жыл бұрын
답변 감사합니다 Awake 함수에 오타가 있었네요!
@muhadojun
@muhadojun 2 жыл бұрын
Weapon Hammer로 피격할때 Test Enemy 앞에서 하면.. 피격이 안되고.. 뒤돌아선 위치에서 피격하면 그때 되는데...;;;; Weapon Hammer의 Box Collider 트리거 되어있고 수치고 봤는데.. 특이사항이 없어 보이는데... 먼가 반대로 적용되어있는거 같은데.. 어디를 봐야 할까요? (총은 잘 됩니다.) 05:16 기준으로보면 동일하게 적용되어 있습니다. ;;;
@muhadojun
@muhadojun 2 жыл бұрын
아.. Weapon Hammer의 Box Collider Z값을 높여주니 되네요.. 음.. 약간.. 이해가 안가긴 하지만. 일단은 해결됐습니다. ~
@goldmetal
@goldmetal 2 жыл бұрын
타이밍 문제나 해결하신 방법대로 위치문제일 수도 있습니다. 많은 분들이 여기서 많이 헤메셔서 다음 리뉴얼 강좌에서는 다른 방식을 사용해볼까 합니다.
@Husk-u3l
@Husk-u3l 3 жыл бұрын
항상 좋은 강좌 올려주셔서 감사합니다!. 총알 발사 와 피격을 2D에서 구현하려고 하는데 몬스터에 OnTriggerEnter2D를 하고 총알을 isTrigger로 했는데 인식을 못하고 있네요. 이런 경우 무엇이 잘못되었는지 알 수 있을까요..?
@goldmetal
@goldmetal 3 жыл бұрын
혹시 오브젝트에 넣어져있는 콜라이더가 3D인지 확인해보세요. 트러거가 2D라면 콜라이더도 2D여야 합니다.
@Husk-u3l
@Husk-u3l 3 жыл бұрын
@@goldmetal 일단 2d, 3d는 문제가 없습니다. 일단 피격자 중심보다 공격자 중심으로 해서 코드를 짜면 실행이 잘 되는데 이러면 나중에 문제가 있을려나요?
@goldmetal
@goldmetal 3 жыл бұрын
@@Husk-u3l 원하는대로 잘 흘러가면 딱히 상관은 없습니다.
@Husk-u3l
@Husk-u3l 3 жыл бұрын
@@goldmetal 넵 감사합니다!
@삼이-p8r
@삼이-p8r 3 жыл бұрын
골드메탈님 망치로 때릴 때 콘솔창에 계속 GameObject가 이미 파괴되었는데 제가 접근하려고 한다면서 오류가 뜨네요 Debug.Log("Melee : " + curHealth)는 출력도 안되구요 뭐가 문제일까요 총알은 출력이 잘 됩니다 망치만 문제네요
@goldmetal
@goldmetal 3 жыл бұрын
망치의 콜라이더 오브젝트에 Bullet 스크립트의 isMelee 체크 하셨는지 확인해보세요.
@Nheung-bs9cy
@Nheung-bs9cy Жыл бұрын
안녕하세요! 총은 잘 피격이되는대 망치는 안돼요ㅜㅜ 휘두르는건 되는데 콘솔창에 체력이 뜨지도 않고 적이 색깔도 안변하네요ㅜ 어떻게 고칠수있을까요?
@Nheung-bs9cy
@Nheung-bs9cy Жыл бұрын
박스 콜라이더의 크기를 3.5. 10 10 이렇게 엄청 크게 하니까 되는데 이래도 되나요?
@goldmetal
@goldmetal Жыл бұрын
네 일단 되는쪽으로 수정해주시면 됩니다.
@williamstark9994
@williamstark9994 2 жыл бұрын
에너미끼리 겹쳐있는상태에서 피격대상 체력이 소진되면 넉백이 되는데, 겹쳐지지 않은 상태에서는 넉백이 되지 않습니다.. 도대체 뭐가 문제일까요..
@williamstark9994
@williamstark9994 2 жыл бұрын
불렛에 중력을 제거하고보니 잘 되는데 이거 왜이런걸까요... 이해가 가질 않네요 구글링해도 안나오고.. ㅠㅠ
@goldmetal
@goldmetal 2 жыл бұрын
테스트할 때 콘솔 창에 에러 메세지가 나오는지부터 확인해보세요.
@bjp7279
@bjp7279 2 жыл бұрын
골드메탈님 혹시 넉백을 구현했는데 골드메탈님의 영상처럼 적이 위로 튀어올랐다가 멈추는게 아닌 바닥에 착지하고도 질질 끌리듯 뒤로 계속 움직이는 현상이 일어납니다. 어떤 문제인지 알 수 있을까요?
@goldmetal
@goldmetal 2 жыл бұрын
적 리지드바디의 Drag (저항값)을 올려주시거나 Physics Material을 추가해서 콜라이더의 Material 항목에 넣어주시면 됩니다. 이 때 Physics Material의 Friction이 마찰값이니 이걸 적절히 눌려주시면 됩니다.
@bjp7279
@bjp7279 2 жыл бұрын
@@goldmetal 바로 해결되었습니다 감사해요!
@taewookim4472
@taewookim4472 3 жыл бұрын
좋은영상 많이 만들어 주셔서 감사합니다 혹시 6:23초에 나오는 설정처럼 했음에도 불구하고 총알이 살아지지 않으면 어떻게 해야 하나요? (벽에는 잘 작동하지만 땅은 잘 작동 못합니다, 한번 debug를 이용해서 충돌문제가 있나 했는데 잘 작동 해서 충돌에는 문제가 없는거 같아요)
@goldmetal
@goldmetal 3 жыл бұрын
땅의 오브젝트 선택하고 인스펙터에 tag가 Floor인지 확인해보세요.
@taewookim4472
@taewookim4472 3 жыл бұрын
네 tag까지 바꿔가면서 해봤는데 안돼요.. 혹시 bullet에 자식으로 Light를 추가 했는데 이거때문에 오류를 일으키지는 않겠죠?
@goldmetal
@goldmetal 3 жыл бұрын
@@taewookim4472 그것과는 문제가 없습니다. 그리고 해당 강좌는 총알이 땅을 터치하기 보단 탄피가 땅에 닿기 때문이 이 탄피를 제거하기 위해서 로직을 작성한거니 참고하세요.
@taewookim4472
@taewookim4472 3 жыл бұрын
아! OnTriggerEnter 쪽에 Floor Tag 까지 추가해서 해결했습니다
@choko9674
@choko9674 3 жыл бұрын
감사합니다 저도 됬어요!
@황선우-z4i
@황선우-z4i 3 жыл бұрын
플레이어도 트리거되게 하려고 box collider 컴포넌트체크하고 isTrigger도 체크하면 바닥을 뚫고 떨어져요 ㅠ 어떻게 안떨어지면서 isTrigger를 켜나요?
@goldmetal
@goldmetal 3 жыл бұрын
트리거 전용 콜라이더 + 물리전용 콜라이더 이런 식으로 한 오브젝트에 두 개의 콜라이더를 두시면 됩니다. 이 내용은 이미 아이템 만들기에서 한번 다루었어요.
@황선우-z4i
@황선우-z4i 3 жыл бұрын
@@goldmetal 정말 감사합니다
@건우이-k7v
@건우이-k7v 3 жыл бұрын
메탈님 데미지가 2번씩 들어가는건 어떻게하나요..?
@goldmetal
@goldmetal 3 жыл бұрын
OnTriggerEnter 대신 OnTriggerExit로 바꾸어 해결할 수도 있고 bool isDamage; 전역 번수를 두고 맞을 때마다 isDamage = true; 아주 잠시 뒤(색이 돌아올 때) isDamage = false;로 되돌리고 맞는 로직에 if(!isDamage) 조건을 추가해도 됩니다.
@신서용-x4s
@신서용-x4s 2 жыл бұрын
넉백이 되질 않아요 어딜 수정해야하나요?
@goldmetal
@goldmetal 2 жыл бұрын
콘솔창에 에러 메세지가 있는지 확인이 필요하겠네요. 혹시 모르니 상대방 오브젝트에 Rigidbody가 있는지도 살펴보세요
@안대훈-o8q
@안대훈-o8q 3 жыл бұрын
망치를 들어 올릴때는 피격이 안되게 할수는 없나요?
@goldmetal
@goldmetal 3 жыл бұрын
Swing 코루틴에서 근접콜라이더 활성화 하시 전 Wait for Second를 늘려주시면 그만큼 늦게 공격 기능이 되니 참고하세요
@사이다-i8x5m
@사이다-i8x5m 3 жыл бұрын
와우!!!
@nana_0427
@nana_0427 3 жыл бұрын
땡큐!
@레어-z2u
@레어-z2u 4 жыл бұрын
골드메탈님 혹시 몬스터ai 강의는 계획에 있으신가요?
@goldmetal
@goldmetal 4 жыл бұрын
매의 눈을 가지셨군요. 유니티가 제공하는 AI 컴포넌트를 다다음 강좌(주말 예정)에 다룰 예정입니다.
@레어-z2u
@레어-z2u 4 жыл бұрын
@@goldmetal 오우 기대할께요
@오현준-x8w
@오현준-x8w 2 жыл бұрын
망치로 피격테스트를 할때 큐브 바로 앞에서 때리면 데미지가 안들어가는데 큐브 위에서;나 등지고 때리면 데미지가 들어갑니다... 근접공격 범위도 영상보면서 제대로 설정했습니다.. 다시 해보니 아래 댓글분들과 같은 증상인거 같던대 해결방법이 잘 이해가 가지 않아서요..
@goldmetal
@goldmetal 2 жыл бұрын
망치에 있는 근접범위 오브젝트를 좀 더 망치 앞쪽과 위쪽으로 올려주시면 괜찮아질겁니다.
@오현준-x8w
@오현준-x8w 2 жыл бұрын
그 swing부분의 waitforseconds를 증가시키니 해결이 됬습니다! 근데 등지고 때릴때 데미지를 안들어가게 할 수 있는 방법은 없나요?
@오현준-x8w
@오현준-x8w 2 жыл бұрын
​@@goldmetal 답변 감사합니다! 그리고 총알의 사거리를 좀 늘리고 싶은데 use gravity를 꺼버리니까 총알이 끝까지 그냥 날아가더라구요.. 그냥 사거리를 조금 더 늘릴 방법은 무엇이 있을가요?
@goldmetal
@goldmetal 2 жыл бұрын
@@오현준-x8w 총알에 스크립트를 새로 만들어주고 Destory(gameObject, 5f); 이런식으로 몇초 늦게 자동으로 자체 삭제하도록 가능합니다.
@goldmetal
@goldmetal 2 жыл бұрын
@@오현준-x8w 정 안되면 망치에서 근접공격 오브젝트를 떼어내고 플레이어 최상단 바로 아래에 옮겨 붙여서 근접 범위를 설정하는 방법도 있습니다. 망치가 아닌 플레이어 기준이 되므로 100% 지정된 위치에서 근접트리거가 이루어질겁니다.
@sangDu-park
@sangDu-park 3 жыл бұрын
총의 사거리를 늘린느법이 뭔가요? 저는 너무 짧네요;; ㅎㅎ
@sangDu-park
@sangDu-park 3 жыл бұрын
앗 총알에 유즈 그레비티로 고쳤네요! 요즘 고등학교 포폴 준비를 위해 연습하고있는데 너무너무 감사합니다 ㅠㅠ 항상 답글도 잘 달아주시고 정말정말 도움 많이 되고있습니다 감사합니다!
@sangDu-park
@sangDu-park 3 жыл бұрын
아 혹시 질문이 있는데요 ㅎㅎ;; 총을 쏘고 닷지를 하려는데 어쩔때는 점프가 나가기도 합니다 싸울때는 쏘고 구르면서 스피드한 게임을 만들고 싶은데 점프가 나가니까 조금 이상해서요 ㅎㅎ..
@goldmetal
@goldmetal 3 жыл бұрын
쏠 때는 정지하므로 velocity가 Vector3.zero 라서 그렇습니다. Move if조건에서 isFire조건을 빼면 움직이면서 쏘게 되니 닷지까지 가능해집니다. 다만 움직미션서 쏘면 왠지 모션이 이상해지므로 참고해주세요.
@강웅빈-p2x
@강웅빈-p2x 4 жыл бұрын
해머로 칠 때 어떨 때는 데미지가 들어가고 어떨 때은 안들어가요 ㅠ
@goldmetal
@goldmetal 4 жыл бұрын
해머의 공격범위 콜라이더는 좀 더 크게 해보세요
@강웅빈-p2x
@강웅빈-p2x 4 жыл бұрын
어느 정도의 크기로 해야할지 잘 모르겠어요 ㅜ 계속 수정해봤는데 잘 안되요
@goldmetal
@goldmetal 4 жыл бұрын
@@강웅빈-p2x 영상처럼 콜라이더 연두색 육면체가 해머보다 넘어가서 더 크도록 설정해보세요.
@강웅빈-p2x
@강웅빈-p2x 4 жыл бұрын
훨신 더 크게 했는데도 안되요 ㅠ
@goldmetal
@goldmetal 4 жыл бұрын
@@강웅빈-p2x 휘두를 때마다 콜라이더가 제대로 활성화 되고 있는지 휘두르는 로직 부근에 Debug.Log(meleeArea.enable); 로 검사해보세요
@intimeart8384
@intimeart8384 3 жыл бұрын
넉백이 안됩니다.. 코드도 계속 보고 하는데
@goldmetal
@goldmetal 3 жыл бұрын
몬스터 스크립트의 리지드바디 변수가 초기화 되어있는지 확인해보세요
@intimeart8384
@intimeart8384 3 жыл бұрын
삭제하고 다시 만들었더니 됐습니다..
@mobisseunghalee4744
@mobisseunghalee4744 3 жыл бұрын
C#도, Unity도 시작한지 10일밖에 안된 완전 초보입니다 ㅠ_ㅠ 물체를 등지고 때려야 딜이 박히는데, 이건 어떻게 해야 고칠 수 있을까요? ㅠㅠ 댓글에 보니까 망치 콜라이더를 때리는 부분으로 돌리라고 하셨는데, 어떻게 하는건지 이해가 되질않아서요.... 도움 좀 부탁드리겠습니다...
@goldmetal
@goldmetal 3 жыл бұрын
망치의 근접범위 오브젝트가 Z축으로 좀 더 이동시켜서 망치 앞부분으로 이동시키면 됩니다. 콜라이더의 Y축 크기고 늘려주면 좀 더 타격이 편할겁니다. 이건 인스펙터에서 콜라이더의 Size Y를 조절해주세요
@mobisseunghalee4744
@mobisseunghalee4744 3 жыл бұрын
@@goldmetal 답변 정말 감사합니다 ㅠ_ㅠ 제가 다른 좀 더 쉬운 프로젝트로 더 공부해서 다시 도전하도록 하겠습니다 ㅠ_ㅠ 골드메탈님 영상들 너무 좋습니다!
@mobisseunghalee4744
@mobisseunghalee4744 3 жыл бұрын
@@goldmetal 골드메탈님 영상 외에 질문이 있습니다! 추격전 같은 걸 만들고 싶은데요, player가 지나간 좌표를 enemy가 몇 초 뒤에 그대로 쫓아가게 만들고 싶은데 방법이 없을까요? 알고있던 방식으로 했더니, 벽을 낀 커브길이 나왔을 때, 벽쪽으로 기대면서 쫓아가게되는 현상이 있어서 벡터가 아닌, Player가 지나갔던 좌표를 그대로 쫓아가게 하려고 하는데 검색해도 모르겠습니다 ㅠ_ㅠ 도와주실수있으신가요?
@goldmetal
@goldmetal 3 жыл бұрын
@@mobisseunghalee4744 플레이어의 이동 좌표를 저장해두고 몬스터가 이걸 가져와서 NavAgent의 SetDestination() 으로 목표지점 설정하면 되지 않을까 하네요. 다만 플레이어 좌표 저장은 코루틴으로 몇초 뒤에 저장하도록 하면 좋겠네요.
@꿀빵-m1i
@꿀빵-m1i Жыл бұрын
@@goldmetal 골드메탈님!! 안녕하세요. 망치의 근접범위 오브젝트가 어떤건가요??? 망치가 가지고 있는 오브젝트는 메쉬오브젝트랑 이펙트인데.. 아무리 만져봐도 어느 방향이 안바뀌네요ㅠㅠ
@AwSoMeFactOry
@AwSoMeFactOry 3 жыл бұрын
거리를 두고 총을 쏘니까 박스에 맞기도 전에 바닥으로 사라져요
@goldmetal
@goldmetal 3 жыл бұрын
총알이 발사되는 방향이 아래쪽인지 발사 위치 오브젝트의 각도를 한번 봐야겠네요.
@AwSoMeFactOry
@AwSoMeFactOry 3 жыл бұрын
@@goldmetal 오브젝트 각도는 0,0,0 인데 -10,0,0 하니까 더 멀리 총알이 나라가네요.
@ponix1004
@ponix1004 3 жыл бұрын
총알에 리지드바디있는지와 그래비티가 켜져있는지 보세요
@AwSoMeFactOry
@AwSoMeFactOry 3 жыл бұрын
@@ponix1004 총알에 그래비티가 켜져있었네요
@안혜원-n8p
@안혜원-n8p 3 жыл бұрын
골메님...! 망치로 테스터를 때리면 콘솔창에 문구가 안뜹니다ㅜㅜ 총알은 되는데..... 무엇이 잘못된건가요??
@goldmetal
@goldmetal 3 жыл бұрын
망치가 가지고 있는 근접범위 오브젝트의 태그 설정하셨는지 확인해보세요.
@안혜원-n8p
@안혜원-n8p 3 жыл бұрын
@@goldmetal weapon Hammer의 태그는 Melee로 되어있습니다!!
@안혜원-n8p
@안혜원-n8p 3 жыл бұрын
@@goldmetal 땅에 있는 Hammer는 태그가 weapon이고, 오른손에 장착될 hammer는 태그가 Melee입니다.
@goldmetal
@goldmetal 3 жыл бұрын
@@안혜원-n8p 휘두를 때 근접범위 콜라이더가 Swing() 함수에 의해 활성화 되어야합니다. 정 모르겠으면 아예 처음부터 근접 범위 콜라이더를 켜고 실행해서 휘둘러보세요
@안혜원-n8p
@안혜원-n8p 3 жыл бұрын
@@goldmetal 골메님, 다시해보니 플레이어가 테스터를 보고 때릴때는 피격효과가 안 나타나는데, 테스터를 등지고 때릴때는 피격효과가 나타납니다! 이럴 때는 무엇을 수정해야되나요??
@boxplus8609
@boxplus8609 3 жыл бұрын
총알이 피격 테스터에 맞으면 사라지는데 안맞고 벽으로 가면 사라지지가 않습니다.
@goldmetal
@goldmetal 3 жыл бұрын
벽 태그가 Wall로 되어있는지 확인해보세요. Bullet 스크립트에서 Wall과 충돌하면 Destroy되도록 작성되어 있습니다. 이 내용은 B44의 7:15 참고하세요
@boxplus8609
@boxplus8609 3 жыл бұрын
@@goldmetal 벽 태그도 Wall이고 스크립트도 public class Bullet : MonoBehaviour { public int damage; void OnCollisionEnter(Collision collision) { if (collision.gameObject.tag == "Floor") { Destroy(gameObject, 3); } else if (collision.gameObject.tag == "Wall") { Destroy(gameObject); } } } 이렇게 되어있는데 뭐가 문제인가요? void OnCollisionEnter 앞에 private가 있길래 그것을 수정했는데도 이렇습니다.
@goldmetal
@goldmetal 3 жыл бұрын
@@boxplus8609 총알에 Bullet스크립트가 있는지 확인해보세요
@boxplus8609
@boxplus8609 3 жыл бұрын
@@goldmetal Prefab 에 있는 총알에 들어가 있습니다
@goldmetal
@goldmetal 3 жыл бұрын
@@boxplus8609 그럼 총알 스크립트에서 OnCollisionEnter에 Debug.Log("충돌"); 추가하고 벽에다 쏴보세요. 일단 충돌이벤트가 실행되는지 살펴봅시다
@전승원-x7u
@전승원-x7u 4 жыл бұрын
시체매너 ㅋㅋㅋㅋㅋ 서든 좀 하셨군요
@kuarxi
@kuarxi 4 жыл бұрын
이거보면서 따라하는 잼민이 나밖에 없나...?
@choko9674
@choko9674 3 жыл бұрын
저도 초3입니다!
@so_oh6
@so_oh6 3 жыл бұрын
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); } }
@goldmetal
@goldmetal 3 жыл бұрын
총알은 바닥에 떨어지면 안되서 리지드바디의 Use Gravity를 체크해제합니다. 그냥 두시려면 OnTriggerEnter에도 Floor 조건을 추가해주시면 됩니다. 총알의 콜라이더는 IsTrigger에 체크되어 있기 때문이죠
Spongebob ate Patrick 😱 #meme #spongebob #gmod
00:15
Mr. LoLo
Рет қаралды 19 МЛН
Officer Rabbit is so bad. He made Luffy deaf. #funny #supersiblings #comedy
00:18
Funny superhero siblings
Рет қаралды 13 МЛН
Bike Vs Tricycle Fast Challenge
00:43
Russo
Рет қаралды 102 МЛН
Поветкин заставил себя уважать!
01:00
МИНУС БАЛЛ
Рет қаралды 7 МЛН
1인 미니 게임 개발 후기 [Mini game development review]
11:53
후뢰시곰 [Flashbear Games]
Рет қаралды 1,6 М.
50% 할인할 때 사둬야 할 유니티 필수 에셋들
10:53
조연2 게임 작업실
Рет қаралды 6 М.
Spongebob ate Patrick 😱 #meme #spongebob #gmod
00:15
Mr. LoLo
Рет қаралды 19 МЛН