if (vDist.magnitude > 0.1) // 순수 이동량
{
if (m_bJumpWait == false)
{
if (m_nJumpcount == 0)
{
// this.gameObject. 궂이 안붙여도 됨
//GetComponent<Rigidbody2D>().AddForce(Vector3.up * m_fJump);
//m_nJumpcount++;
StartCoroutine(Jump());
}
else
//순수 방향값
this.gameObject.transform.Translate(vDist.normalized * m_fSpeed * Time.deltaTime);
}
}
else //추적대상과 가까워 졌을때는 다음위치로 변경한다.
{
if(m_objTarget.name != "Player")
NextPatrol();
}
현상태에서 vDist.magnitude > 0.1의 값을 0또는 0.001 등의 이동값보다 낮은수로 변경시
개구리가 정찰을 하지않고 직진후 제자리에서 뛰기만합니다. 그래서 오늘 강사님의 파일과 여러번 비교해보았으나 이 숫자값을 바꾼것 말곤 차이가 없습니다. 그래서 강사님의 파일로 실행을 해보았는데 이 파일또한 더미1 포인트로 이동 후 제자리뛰기만 하는 상태입니다.
이에 여러시도 끝에
if (vDist.magnitude > 0.1) // 순수 이동량
{
if (m_bJumpWait == false)
{
if (m_nJumpcount == 0)
{
// this.gameObject. 궂이 안붙여도 됨
//GetComponent<Rigidbody2D>().AddForce(Vector3.up * m_fJump);
//m_nJumpcount++;
StartCoroutine(Jump());
}
else
//순수 방향값
this.gameObject.transform.Translate(vDist.normalized * m_fSpeed * Time.deltaTime);
}
}
else if (vDist.magnitude < 1 || vDist.magnitude >= 11)
{
if(m_bJumpWait == true)
NextPatrol();
if (m_nJumpcount == 0)
{
// this.gameObject. 궂이 안붙여도 됨
//GetComponent<Rigidbody2D>().AddForce(Vector3.up * m_fJump);
//m_nJumpcount++;
StartCoroutine(Jump());
}
}
else //추적대상과 가까워 졌을때는 다음위치로 변경한다.
{
if (m_objTarget.name != "Player")
NextPatrol();
}
위 방법으로 개구리가 공중에서 튕겨 반대쪽으로 튀어나가는 것을 해결하였으나, 반대쪽으로 갈시 첫점프가 과도하게 높게 점프가 됩니다.
플레이어와 정찰더미가 같은 처리 로직으로 처리되어 문제가 발생합니다.
이부분은 수업시간에 상세하게 다루겠습니다.