using
UnityEngine;
using
UnityEngine.UI;
[ExecuteInEditMode]
public
class
RaycastCollider : Graphic
{
private
RectTransform rect;
public
override
void
SetMaterialDirty() {
return
; }
public
override
void
SetVerticesDirty() {
return
; }
protected
override
void
OnPopulateMesh(VertexHelper vh)
{
vh.Clear();
return
;
}
private
new
void
Awake()
{
base
.Awake();
rect = GetComponent<RectTransform>();
}
private
void
OnDrawGizmosSelected()
{
if
(rect !=
null
)
{
Vector3 scale = canvas.transform.localScale;
Vector3 pos = rect.transform.position;
Vector2 size = rect.sizeDelta;
float
xDist = (rect.rect.width * 0.5f) * scale.x;
float
yDist = (rect.rect.height * 0.5f) * scale.y;
Vector3 leftUp =
new
Vector3(pos.x - xDist, pos.y + yDist, pos.z
);
Vector3 rightUp =
new
Vector3(pos.x + xDist, pos.y + yDist, pos.z
);
Vector3 leftDown =
new
Vector3(pos.x - xDist, pos.y - yDist, pos.z
);
Vector3 rightDown =
new
Vector3(pos.x + xDist, pos.y - yDist, pos.z
);
Gizmos.color = Color.green;
Gizmos.DrawLine(leftUp, rightUp);
Gizmos.DrawLine(rightUp, rightDown);
Gizmos.DrawLine(rightDown, leftDown);
Gizmos.DrawLine(leftDown, leftUp);
}
}
}