유니티

[유니티] 오늘 공부 3가지(24.12.31)

유니티 게임 개발 2024. 12. 31. 17:51

요약

전체적인 기획부터 구상하기.

기획이 완료되면, 필요한 기능 나열해보기.

TriggerEnter에서 부딪히는 방향을 확인하기.

 

 

전체적인 기획부터 구상하기.

기획이 제대로 되지 않고, 무작정 구현을 시작하니까. 점점 확장 시킬 때 어려움이 있다.

어느정도 기획을 마무리하고 시작하는 것이 우선인 것 같다.

 

 

기획이 완료되면, 필요한 기능 나열해보기.

어느 정도 기획이 완료되면, 각 장면마다 필요한 기능을 나열해보고 어떻게 로직을 짤지 작성해보는 게 좋은 것 같다.

 

 

OnTrigger에서 부딪히는 방향 계산하기

 

private void OnCollisionStay2D(Collision2D collision)
{
    if (collision.gameObject.CompareTag("Ground"))
    {
        foreach (ContactPoint2D contact in collision.contacts)
        {
            if (contact.normal.y >= 0.8f)
            {
                isJump = false;
                anim.enabled = true;
                break;
            }
        }
    }
}

OnCollision 에서는 위처럼 ContactPoint를 사용하여 부딪히는 지점을 확인했지만,

OnTrigger에서는 직접적으로 부딪히는 게 아니기 때문에 Contact를 사용하지 못한다.

 

따라서 OnTrigger에서는 아래처럼 부딪히는 방향을 직접 계산에서 표시하는 것이 편하다.

private void OnTriggerEnter2D(Collider2D collision)
{
    if (collision.CompareTag("Player"))
    {
        Vector2 direction = (transform.position - collision.transform.position).normalized;

        if (direction.y > 0.5f)
        {
            spriter.enabled = true;
            collider.isTrigger = false;
        }
    }
}