Unity 3 D UGUIコンポーネントマウスの動きに従う

961 ワード

初志
プロジェクトのニーズにより、作成中にUGUIのコンポーネントをマウスの動き軌跡に追従させる必要がある.個人が以前使用していたUGUIの座標系についてよく知らなかったため、使用中にいくつかの問題が発生し、ここでUGUIの座標系について簡単な記録をして、後でクエリに備える.
説明
Unity 3 DはInputを採用する.MousePositionでは現在のマウスの位置を取得し、取得した位置はスクリーン座標系に対しているが、UGUIで使用されている座標系とスクリーン座標系は同じ座標系ではなく、UGUIでコンポーネントで使用されている座標はいずれも2 DのRectでの相対座標であるため、実際の使用では変換が必要である.

public class test : MonoBehaviour
{
public RectTransform myRectTransform; //
public Canvas myCanvas; //
// Update is called once per frame
void Update ()
{
Vector2 vT = Vector2.zero;
// , , , UGUI
RectTransformUtility.ScreenPointToLocalPointInRectangle(myCanvas.transform as RectTransform, Input.mousePosition, myCanvas.worldCamera, out vT);
myRectTransform.localPosition = vT;
}
}
#######################################################################showCursor(旧バージョン)、UnityEngine.Cursor.Visibleでマウスを表示および非表示にする