Пример #1
0
        void HandleInput(Event guiEvent, VoiceOverrideRoomEnterButton voiceOverrideRoomEnterButton)
        {
            Ray     mouseRay        = HandleUtility.GUIPointToWorldRay(guiEvent.mousePosition);
            float   drawPlaneHeight = 0;
            float   dstToDrawPlane  = (drawPlaneHeight - mouseRay.origin.y) / mouseRay.direction.y;
            Vector3 mousePosition   = mouseRay.GetPoint(dstToDrawPlane);

            if (guiEvent.type == EventType.MouseDown && guiEvent.button == 0 &&
                guiEvent.modifiers == EventModifiers.None)
            {
                HandleLeftMouseDown(mousePosition, voiceOverrideRoomEnterButton);
            }
        }
Пример #2
0
 void HandleLeftMouseDown(Vector3 mousePosition, VoiceOverrideRoomEnterButton voiceOverrideRoomEnterButton)
 {
     if (Utilities.IsValid(voiceOverrideRoomEnterButton.voiceOverrideRoom))
     {
         var roomGuiPosition =
             HandleUtility.WorldToGUIPoint(voiceOverrideRoomEnterButton.voiceOverrideRoom.transform.position);
         var mouseGuiPosition           = HandleUtility.WorldToGUIPoint(mousePosition);
         var clickCloseToRoomGameObject = Vector2.Distance(roomGuiPosition, mouseGuiPosition) < 10f;
         if (clickCloseToRoomGameObject)
         {
             Selection.SetActiveObjectWithContext(voiceOverrideRoomEnterButton.voiceOverrideRoom.gameObject,
                                                  voiceOverrideRoomEnterButton.voiceOverrideRoom);
             EditorGUIUtility.PingObject(voiceOverrideRoomEnterButton.voiceOverrideRoom);
         }
     }
 }