天天看點

ARFoundation - touch point坐标點測試

ARFoundation - touch point坐标點測試

本文目的是為了看一下Android手機上touch之後,對應的點相關資訊,主要包括:

  • 點的螢幕坐标,以左下角為原點;
  • 點的viewport坐标系下的坐标,以左下角為原點;
  • 點的世界坐标系下的坐标;

螢幕坐标系和viewport坐标系,均如下所示:

ARFoundation - touch point坐标點測試

代碼如下:

void Update()
{
    if (Input.touchCount > 0)
    {
        Debug.Log("TouchTest touch number is: " + Input.touchCount);
        for (int i=0; i<Input.touchCount; ++i)
        {
            Touch touch = Input.GetTouch(i);
            Debug.Log("TouchTest touch" + Convert.ToString(i) + 
                      " screen position is: " + touch.position);
            Debug.Log("TouchTest touch" + Convert.ToString(i) + 
                      " viewport position is: " + Camera.main.ScreenToViewportPoint(touch.position));
            Debug.Log("TouchTest touch" + Convert.ToString(i) + 
                      " world position is: " + Camera.main.ScreenToWorldPoint(touch.position));
        }
    }
}
           
手機螢幕的位置描述 Screen Position Viewport Position World Position
中間 (743.0, 1654.0) (0.5, 0.5, 0.0) (0.1, 0.0, 0.0)
左上角 (69.0, 2906.0) (0.0, 1.0, 0.0) (0.0, 0.0, -0.1)
右上角 (1388.0, 2960.0) (1.0, 1.0, 0.0) (0.0, 0.0, 0.0)
右下角 (1390.0, 190.0) (1.0, 0.1, 0.0)
左下角 (89.0, 217.0) (0.1, 0.1, 0.0)

因為目前的投影方式是透視投影,所謂的轉換得到的世界坐标系的位置是,相機位于世界坐标系中的位置。

版權說明

作者: grassofsky

出處: http://www.cnblogs.com/grass-and-moon

本文版權歸作者,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出, 原文連結 如有問題, 可郵件([email protected])咨詢.