2018年3月14日 星期三

將滑鼠座標轉換至UI座標的方法

如題,最近剛好遇到所以做個紀錄。
這裡我們需要做的是把滑鼠座標轉換成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後結果如下。
這次就到這裡。

沒有留言:

張貼留言

【自製小遊戲】水平思考猜謎(海龜湯)

遊戲連結 海龜湯的玩法是由出題者提出一個難以理解的事件,參與猜題者可以提出任何問題以試圖縮小範圍並找出事件背後真正的原因。但出題者僅能以「是」、「不是」或「沒有關係」來回答問題。 本遊戲蒐集各種論壇、平台的42個題目,提供給想玩海龜湯卻愁找不到題目的你們。 ...