這裡我們需要做的是把滑鼠座標轉換成Unity內UI物件的2D座標,也就是把Input.mousePosition轉換成RectTransform下的anchoredPosition。
上網爬了一下文發現有名為RectTransformUtility類別可以用,方法如下:
首先我們需要將滑鼠座標轉換成螢幕座標,這裡的Camera就看你的UI是哪一個攝影機,我是直接用主攝影機。
Vector2 screenPoint = RectTransformUtility.WorldToScreenPoint(Camera.main, Input.mousePosition);接著把轉換出來的螢幕座標screenPoint轉換成UI物件的座標,第一個值需要一個RectTransform,就看該UI是在哪一個canvas下。
Vector2 Pos; RectTransformUtility.ScreenPointToLocalPointInRectangle (canvas.GetComponent<RectTransform>(), screenPoint, Camera.main, out Pos);而輸出的Pos就是我們要的結果,實際將Pos值帶入UI後結果如下。
這次就到這裡。
沒有留言:
張貼留言