File size: 4,954 Bytes
18a519f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | namespace UnityEngine.EventSystems
{
/// <summary>
/// A hit result from a BaseRaycaster.
/// </summary>
public struct RaycastResult
{
private GameObject m_GameObject; // Game object hit by the raycast
/// <summary>
/// The GameObject that was hit by the raycast.
/// </summary>
public GameObject gameObject
{
get { return m_GameObject; }
set { m_GameObject = value; }
}
/// <summary>
/// BaseRaycaster that raised the hit.
/// </summary>
public BaseRaycaster module;
/// <summary>
/// Distance to the hit.
/// </summary>
public float distance;
/// <summary>
/// Hit index
/// </summary>
public float index;
/// <summary>
/// Used by raycasters where elements may have the same unit distance, but have specific ordering.
/// </summary>
public int depth;
/// <summary>
/// The sorting group ID when the hit object is influenced by a SortingGroup.
/// </summary>
/// <remarks>
/// For UI.Graphic elements will always be 0.
/// For 3D objects this will always be 0.
/// For 2D objects if a SortingOrder is influencing the same object as the hit collider then the renderers sortingGroupID will be used; otherwise SortingGroup.invalidSortingGroupID.
/// </remarks>
public int sortingGroupID;
/// <summary>
/// The sorting group order when the hit object is influenced by a SortingGroup.
/// </summary>
/// <remarks>
/// For UI.Graphic elements this will always be 0.
/// For 3D objects this will always be 0.
/// For 2D objects if a SortingOrder is influencing the same object as the hit collider then the renderers sortingGroupOrder will be used.
/// </remarks>
public int sortingGroupOrder;
/// <summary>
/// The SortingLayer of the hit object.
/// </summary>
/// <remarks>
/// For UI.Graphic elements this will be the values from that graphic's Canvas
/// For 3D objects this will always be 0.
/// For 2D objects if a 2D Renderer (Sprite, Tilemap, SpriteShape) is attached to the same object as the hit collider that sortingLayerID will be used.
/// </remarks>
public int sortingLayer;
/// <summary>
/// The SortingOrder for the hit object.
/// </summary>
/// <remarks>
/// For Graphic elements this will be the values from that graphics Canvas
/// For 3D objects this will always be 0.
/// For 2D objects if a 2D Renderer (Sprite, Tilemap, SpriteShape) is attached to the same object as the hit collider that sortingOrder will be used.
/// </remarks>
public int sortingOrder;
/// <summary>
/// The world position of the where the raycast has hit.
/// </summary>
public Vector3 worldPosition;
/// <summary>
/// The normal at the hit location of the raycast.
/// </summary>
public Vector3 worldNormal;
/// <summary>
/// The screen position from which the raycast was generated.
/// </summary>
public Vector2 screenPosition;
/// <summary>
/// The display index from which the raycast was generated.
/// </summary>
public int displayIndex;
/// <summary>
/// Is there an associated module and a hit GameObject.
/// </summary>
public bool isValid
{
get { return module != null && gameObject != null; }
}
/// <summary>
/// Reset the result.
/// </summary>
public void Clear()
{
gameObject = null;
module = null;
distance = 0;
index = 0;
depth = 0;
sortingLayer = 0;
sortingOrder = 0;
worldNormal = Vector3.up;
worldPosition = Vector3.zero;
screenPosition = Vector3.zero;
}
public override string ToString()
{
if (!isValid)
return "";
return "Name: " + gameObject + "\n" +
"module: " + module + "\n" +
"distance: " + distance + "\n" +
"index: " + index + "\n" +
"depth: " + depth + "\n" +
"worldNormal: " + worldNormal + "\n" +
"worldPosition: " + worldPosition + "\n" +
"screenPosition: " + screenPosition + "\n" +
"module.sortOrderPriority: " + module.sortOrderPriority + "\n" +
"module.renderOrderPriority: " + module.renderOrderPriority + "\n" +
"sortingLayer: " + sortingLayer + "\n" +
"sortingOrder: " + sortingOrder;
}
}
}
|