점프 할땐 오브젝트 뛰어넘는 몹을 만들라했는데
콜라이더 세팅 인게임에서 바꿀 수 있으면
몬스터와 오브젝트 콜라이더 체크만 풀었다 잠궜다 해주면 되잖아
근데 인게임에선 변경 못하는거지?
그럼 비행 몬스터 레이어 가진 하위 오브젝트랑
지상 몬스터 레이어 가진 하위 오브젝트에 콜라이더 하나씩 생성해서
점프할땐 1번 켜주고 땅에 있을땐 2번 켜주고 해야하나 흠..
점프 할땐 오브젝트 뛰어넘는 몹을 만들라했는데
콜라이더 세팅 인게임에서 바꿀 수 있으면
몬스터와 오브젝트 콜라이더 체크만 풀었다 잠궜다 해주면 되잖아
근데 인게임에선 변경 못하는거지?
그럼 비행 몬스터 레이어 가진 하위 오브젝트랑
지상 몬스터 레이어 가진 하위 오브젝트에 콜라이더 하나씩 생성해서
점프할땐 1번 켜주고 땅에 있을땐 2번 켜주고 해야하나 흠..
https://learn.unity.com/tutorial/enabling-and-disabling-components
해당 댓글은 삭제되었습니다.
아하 몬스터 자체의 레이어를 바꿔줘도 되네? 감사
왜 못함 Collider col 이라고 선언한 뒤 스크립트에서 col.enable = true/false로 껐다 켰다 가능함
그거말구 Project Settings에 레이어간 충돌체크 있자너 그거를 인게임에서 조작할 수 있냐는 뜻이었는데 레이어를 바꾸는게 낫겠다
https://docs.unity3d.com/ScriptReference/Physics.IgnoreLayerCollision.html
레이어
매트릭스도 런타임상에서 스크립트로 변경 가능함
헐 ㄳㄳㄳ 이거도 나중에 쓸일 있을지도 모르겠다 너무 고마워 저번에 찾아봤다가 못찾은것 같은데 있었네 감사감사
근데 점프 시점과 컬라이더 시점에서 다른 콜라이더를 가져야 하는 이유를 모르겠음 그게 무슨 의미인건지..
원래 생각했던 방식은 A 레이어 오브젝트(콜라이더와 충돌판정 스크립트) B 레이어 오브젝트(똑같은 콜라이더와 충돌판정 스크립트) 근데 이걸 Project Settings-Physics에서 A레이어는 C레이어 돌멩이와 충돌하고 B레이어는 C레이어 돌멩이와 충돌판정 제외 설정을 해두면 점프상태일때 A레이어 서브오브젝트 끄고 B레이어 서브오브젝트 켜기, 점프 안하고 있을때 A레이어 서브오브젝트 키고 B레이어 서브오브젝트 끄기. 코드 넣어두면 점프할때만 특정 오브젝트를 통과하는 2D 플랫포머 게임에 넣을 수 있으니깐 근데 레이어를 변경하는것도 나쁘지 않은듯
콜라이더 크기를 바꾸거나 지형오브젝트를 나눠서 구분하거나 레이어 바꾸는게 나을듯한데. 콜라이더끄면 공격당할때는 어떡할건데? 그리고 점프를했어 그럼 어느타이밍에 다시 콜라이더가 생기는데? 바닥에 닿아야 점프가끝나는데 충돌지점이 없으니 무한점프모드로 추락할듯...
사실 바닥에 닿는다-> 수직축 속도벡터가 음수라는 뜻이니까 수직축 벡터 양수일땐 꺼주고 음수일땐 켜줘도 되긴하는데 님말처럼 다른 더 좋은 방법이 많은듯!
나는 점프할때 뛰어넘어지는 오브젝트가 벽같은 지형이라고 가정을했었는데 만약 벽을 넘고있는데 벡터가 음수가되어서 벽에끼인다면? 넘을수있는 오브젝트/못넘는오브젝트 구분한뒤 레이어 바꾸는게 젤 편한것같긴해
플랫폼 이펙터로 원웨이 체크하는거 말고 이런 방법을 쓰는 이유가 있음?