Advertisement
Guest User

SOOQANAHOOIv2

a guest
Apr 23rd, 2017
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.99 KB | None | 0 0
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using UnityEngine.EventSystems;
  4. using System.Collections.Generic;
  5.  
  6. public class CustomRaycaster : MonoBehaviour
  7. {
  8.     [HideInInspector]
  9.     public GameObject hovered;
  10.     [HideInInspector]
  11.     public GameObject hitObject;
  12.     [HideInInspector]
  13.     bool isHit;
  14.  
  15.     public enum HoverState
  16.     {
  17.         Hover, None
  18.     };
  19.  
  20.     [HideInInspector]
  21.     public HoverState hover_state = HoverState.None;
  22.     [HideInInspector]
  23.     PointerEventData pointerData;
  24.     [HideInInspector]
  25.     RaycastHit hitInfo;
  26.     [HideInInspector]
  27.     Ray ray;
  28.  
  29.     [HideInInspector]
  30.     List<RaycastResult> results = new List<RaycastResult>();
  31.  
  32.     void Update ()
  33.     {
  34.         pointerData = new PointerEventData(EventSystem.current);
  35.         pointerData.position = Input.mousePosition;
  36.        
  37.         results.Clear();
  38.         EventSystem.current.RaycastAll(pointerData, results);
  39.        
  40.         if (results.Count > 0)
  41.         {
  42.             Debug.Log ("UI");
  43.             hitObject = results[0].gameObject;
  44.             isHit = true;
  45.         }
  46.         else
  47.         {
  48.             ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  49.             isHit = (Physics.Raycast(ray, out hitInfo));
  50.             if (isHit)
  51.             {
  52.                 Debug.Log ("Object");
  53.                 hitObject = hitInfo.collider.gameObject;
  54.             }
  55.         }
  56.         Hover(isHit);
  57.     }
  58.  
  59.     protected void Hover(bool isHit)
  60.     {
  61.         if (isHit)
  62.         {
  63.             if (hover_state == HoverState.None)
  64.             {
  65.                 hitObject.SendMessage("OnMouseEnterCustom", SendMessageOptions.DontRequireReceiver);
  66.                 hovered = hitObject;
  67.             }
  68.             else
  69.             {
  70.                 hovered.SendMessage("OnMouseExitCustom", SendMessageOptions.DontRequireReceiver);
  71.                 hitObject.SendMessage("OnMouseEnterCustom", SendMessageOptions.DontRequireReceiver);
  72.                 hovered = hitObject;
  73.             }
  74.             hover_state = HoverState.Hover;
  75.         }
  76.         else
  77.         {
  78.             if (hover_state == HoverState.Hover)
  79.             {
  80.                 hovered.SendMessage("OnMouseExitCustom", SendMessageOptions.DontRequireReceiver);
  81.                 hover_state = HoverState.None;
  82.             }
  83.         }
  84.         if (hover_state == HoverState.Hover)
  85.         {
  86.             hovered.SendMessage("OnMouseOverCustom", SendMessageOptions.DontRequireReceiver);
  87.         }
  88.     }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement