123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- 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;
- }
- }
- }
|