fix: inputs
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								Content/Blueprints/BP_MainPlayerController.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Blueprints/BP_MainPlayerController.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Input/IMC_UI.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Input/IMC_UI.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/UI/WBP_SkillNode.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/UI/WBP_SkillNode.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/UI/WBP_SkillTree.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/UI/WBP_SkillTree.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -195,12 +195,29 @@ void AUTAD_UIPlayerController::ShowSkillTree() | ||||
| 	{ | ||||
| 		SkillTreeWidget->AddToViewport(1); | ||||
|  | ||||
| 		// Set input mode to Game and UI | ||||
| 		FInputModeGameAndUI InputMode; | ||||
| 		// Switch to UI-only input mode to block gameplay actions (like click-to-move) | ||||
| 		FInputModeUIOnly InputMode; | ||||
| 		InputMode.SetWidgetToFocus(SkillTreeWidget->TakeWidget()); | ||||
| 		InputMode.SetLockMouseToViewportBehavior(EMouseLockMode::DoNotLock); | ||||
| 		SetInputMode(InputMode); | ||||
| 		bShowMouseCursor = true; | ||||
|  | ||||
| 		// Switch input mapping context from gameplay to UI | ||||
| 		if (UEnhancedInputLocalPlayerSubsystem* Subsystem = | ||||
| 				ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>( | ||||
| 					GetLocalPlayer())) | ||||
| 		{ | ||||
| 			// Remove gameplay context | ||||
| 			if (DefaultMappingContext) | ||||
| 			{ | ||||
| 				Subsystem->RemoveMappingContext(DefaultMappingContext); | ||||
| 			} | ||||
| 			// Add UI context with higher priority | ||||
| 			if (UIMappingContext) | ||||
| 			{ | ||||
| 				Subsystem->AddMappingContext(UIMappingContext, 1); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @@ -210,14 +227,29 @@ void AUTAD_UIPlayerController::HideSkillTree() | ||||
| 	{ | ||||
| 		SkillTreeWidget->RemoveFromParent(); | ||||
|  | ||||
| 		// Set input mode back to game and UI for top-down gameplay | ||||
| 		// This allows mouse clicks to work for character movement | ||||
| 		// Restore game and UI input mode for top-down gameplay | ||||
| 		FInputModeGameAndUI InputMode; | ||||
| 		InputMode.SetLockMouseToViewportBehavior(EMouseLockMode::DoNotLock); | ||||
| 		InputMode.SetHideCursorDuringCapture(false); | ||||
| 		SetInputMode(InputMode); | ||||
| 		// Keep mouse cursor visible for top-down game | ||||
| 		bShowMouseCursor = true; | ||||
|  | ||||
| 		// Switch input mapping context back from UI to gameplay | ||||
| 		if (UEnhancedInputLocalPlayerSubsystem* Subsystem = | ||||
| 				ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>( | ||||
| 					GetLocalPlayer())) | ||||
| 		{ | ||||
| 			// Remove UI context | ||||
| 			if (UIMappingContext) | ||||
| 			{ | ||||
| 				Subsystem->RemoveMappingContext(UIMappingContext); | ||||
| 			} | ||||
| 			// Restore gameplay context | ||||
| 			if (DefaultMappingContext) | ||||
| 			{ | ||||
| 				Subsystem->AddMappingContext(DefaultMappingContext, 0); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -43,11 +43,16 @@ public: | ||||
| 	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input) | ||||
| 	UNiagaraSystem* FXCursor; | ||||
|  | ||||
| 	/** MappingContext */ | ||||
| 	/** Gameplay Mapping Context (for movement and game actions) */ | ||||
| 	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, | ||||
| 			  meta = (AllowPrivateAccess = "true")) | ||||
| 	UInputMappingContext* DefaultMappingContext; | ||||
|  | ||||
| 	/** UI Mapping Context (for UI-specific actions like closing menus) */ | ||||
| 	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, | ||||
| 			  meta = (AllowPrivateAccess = "true")) | ||||
| 	UInputMappingContext* UIMappingContext; | ||||
|  | ||||
| 	/** Jump Input Action */ | ||||
| 	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, | ||||
| 			  meta = (AllowPrivateAccess = "true")) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user