본문 바로가기
개발/코드

코드 ) 부채꼴 충돌

by 테샤르 2020. 1. 20.

부채꼴 충돌

간단히 보채골 충돌에 대한 판단을 하는 코드이다.

벡터의 지름을 계산해서 판단한다.

public class CirSector : MonoBehaviour
{
    public Transform m_Target;

    public float m_fAngle = 45f;
    public float m_fDistance = 10f;
    public bool m_bCollision = false;

    Vector3 direction;

    float dotValue = 0f;

    void Update ()
    {
        dotValue = Mathf.Cos(Mathf.Deg2Rad * (this.m_fAngle / 2));
        direction = this.m_Target.position - transform.position;
        if (direction.magnitude < this.m_fDistance)
        {
            if (Vector3.Dot(direction.normalized, transform.forward) > dotValue)
                this.m_bCollision = true;
            else
                this.m_bCollision = false;
        }
        else
            this.m_bCollision = false;

    }

    private void OnDrawGizmos()
    {
        Handles.color = this.m_bCollision ? Color.red : Color.blue;
        Handles.DrawSolidArc(transform.position, Vector3.up, transform.forward, (this.m_fAngle/2), this.m_fDistance);
        Handles.DrawSolidArc(transform.position, Vector3.up, transform.forward, -(this.m_fAngle/2), this.m_fDistance);

    }
}

 

반응형

 

 

★☆☆☆☆

 

 

반응형

댓글