Unity判斷指定物體是否在屏幕範圍內

Transform camreatra = Camera.main.transform;
        Vector3 viewPos = Camera.main.WorldToViewportPoint(target.transform.position);
        Vector3 dir = (target.transform.position - camreatra.position).normalized;
        float dot = Vector3.Dot(camreatra.forward, dir);
        if (dot > 0 && viewPos.x > 0 && viewPos.x < 1 && viewPos.y > 0 && viewPos.y < 1)
        {}

先使用WorldToViewportPoint計算出指定物體的窗口座標值,之後計算出攝像機和物體的向量值,在通過Dot計算出點乘,得出角度,同時根據物體的屏幕座標信息判斷是否在窗口範圍內也就是(0,0)和(1,1)之間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章