private void NewHintWindowController_OnEndCreate(object sender, NewHintWindowController.WindowDataEventArgs eventArgs) { // Create hint model: HintModel hintModel; if (eventArgs.HintType == HintType.Text) { hintModel = StepModel.CreateHint(TextHintModelPrefab); } else if (eventArgs.HintType == HintType.Image) { var imageHintModel = StepModel.CreateHint(ImageHintModelPrefab); imageHintModel.ImageHintType = (ImageHintType)eventArgs.HintTypeID; hintModel = imageHintModel; } else if (eventArgs.HintType == HintType.Geometry) { var geometryHintModel = StepModel.CreateHint(GeometryHintModelPrefab); geometryHintModel.ModelID = eventArgs.HintTypeID; hintModel = geometryHintModel; } else { throw new NotSupportedException(); } hintModel.Name = eventArgs.Name; // Orient hint to camera: { var selectedCamera = CameraManager.SelectedCamera; var worldPosition = CameraUtilities.InFrontOfCameraPosition(selectedCamera); hintModel.LocalPosition = Application.View.SceneRoot.transform.InverseTransformPoint(worldPosition); if (hintModel.Type != HintType.Geometry) { hintModel.LocalRotation = CameraUtilities.ParallelToCameraRotation(selectedCamera); } } // Get hint controller: var hintController = _hints[hintModel.ID]; if (Showing) { hintController.Edit(); } }