본문 바로가기

만들고 싶은 QnA

Q. 플레이어를 따라오는 적 만들기 Unity, 2D, 플랫포머. Enemy, Player, Wall으로 구성되어 있을 때, Enemy는 Player를 쫓아가면서 Wall을 뛰어넘어서 Player에게 다가가고 싶다. private Rigidbody2D enemyRB; private SpriteRenderer enemySprite; Enemy, 즉 몬스터의 속도는 일정했으면 좋겠으므로, 움직이는 방식은 rigidbody의 velocity 값을 입력해서 구현해주도록 하자. 또, 왼쪽 오른쪽 움직일 때 스프라이트 방향이 달라지므로, SpriteRenderer도 받아와야 한다. private void Awake() { enemyRB = GetComponent(); enemySprite = GetComponent(); } Awake에서 이런 값들을.. 더보기
Q. Unity, 물체가 움직이다가 바닥에서 갑자기 튀어올라요. Unity에서 물체가 바닥 위를 지나가다가, 가끔 아무것도 없는 곳에서 퓽-하고 튀어오르는 경우가 있다. 이해를 위해 사진을 첨부하자면... 땅 1의 콜라이더(Collider)와 다른 땅 2의 콜라이더 경계선에서 AddForce()를 이용해 힘을 받고있는 물체가 튀어오르는 현상이다. (꼭 AddForce가 아니라 다른 것일지도 모른다!) 이는 속도가 빠를수록 더 심해진다. 아마 콜라이더 경계선이 바뀌면서 물체가 바닥으로 떨어지려고 하고, 조금 바닥으로 떨어진 물체가 땅2 콜라이더와 겹쳐지면서 위로 튀어오르는 것이 아닐까 추측한다. 땅 1과 땅 2의 콜라이더를 완벽히 겹쳐도 이 현상은 사라지지 않는다. 공의 물체 충돌 예측을 Continuous로 바꿔도 여전히 일어난다. 콜라이더의 길이를 좀 길게해서 콜라.. 더보기