您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
40 行
1.3 KiB
40 行
1.3 KiB
/*using Unity.UIWidgets.engine;
|
|
using UnityEngine;
|
|
|
|
namespace Unity.UIWidgets.engine.raycast {
|
|
[RequireComponent(typeof(RectTransform))]
|
|
public class UIWidgetsRaycastablePanel : UIWidgetsPanel, ICanvasRaycastFilter {
|
|
int windowHashCode;
|
|
|
|
protected override void InitWindowAdapter() {
|
|
base.InitWindowAdapter();
|
|
windowHashCode = window.GetHashCode();
|
|
RaycastManager.NewWindow(windowHashCode);
|
|
}
|
|
|
|
protected override void OnDisable() {
|
|
base.OnDisable();
|
|
RaycastManager.DisposeWindow(windowHashCode);
|
|
}
|
|
|
|
public bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera) {
|
|
if (!enabled) {
|
|
return true;
|
|
}
|
|
|
|
Vector2 local;
|
|
RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, screenPoint, eventCamera,
|
|
out local);
|
|
|
|
Rect rect = rectTransform.rect;
|
|
|
|
// Convert top left corner as reference origin point.
|
|
local.x += rectTransform.pivot.x * rect.width;
|
|
local.y -= rectTransform.pivot.y * rect.height;
|
|
local.x = local.x / devicePixelRatio;
|
|
local.y = -local.y / devicePixelRatio;
|
|
|
|
return !RaycastManager.CheckCastThrough(windowHashCode, local);
|
|
}
|
|
}
|
|
}*/
|