Esempio n. 1
0
        void HandleInput(Event guiEvent, VoiceOverrideDoor voiceOverrideDoor)
        {
            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, voiceOverrideDoor);
            }
        }
Esempio n. 2
0
 void HandleLeftMouseDown(Vector3 mousePosition, VoiceOverrideDoor voiceOverrideDoor)
 {
     if (Utilities.IsValid(voiceOverrideDoor.voiceOverrideRoom))
     {
         var roomGuiPosition =
             HandleUtility.WorldToGUIPoint(voiceOverrideDoor.voiceOverrideRoom.transform.position);
         var mouseGuiPosition           = HandleUtility.WorldToGUIPoint(mousePosition);
         var clickCloseToRoomGameObject = Vector2.Distance(roomGuiPosition, mouseGuiPosition) < 10f;
         if (clickCloseToRoomGameObject)
         {
             Selection.SetActiveObjectWithContext(voiceOverrideDoor.voiceOverrideRoom.gameObject,
                                                  voiceOverrideDoor.voiceOverrideRoom);
             EditorGUIUtility.PingObject(voiceOverrideDoor.voiceOverrideRoom);
         }
     }
 }
Esempio n. 3
0
        public static void DrawDoorInfo(VoiceOverrideDoor voiceOverrideDoor)
        {
            if (!voiceOverrideDoor)
            {
                return;
            }

            var doorTransform = voiceOverrideDoor.transform;
            var doorPosition  = doorTransform.position;
            var exitDirection = doorTransform.TransformDirection(voiceOverrideDoor.exitDirection).normalized;


            Handles.color = Color.red;
            Handles.DrawDottedLine(doorPosition, doorPosition + exitDirection, 2);

            GUI.color = Color.red;
            Handles.Label(doorPosition + exitDirection, "Outside");

            Handles.color = Color.green;
            Handles.DrawDottedLine(doorPosition, doorPosition - exitDirection, 2);

            GUI.color = Color.green;
            Handles.Label(doorPosition - exitDirection, "Inside");
        }